关键要点:
在这篇文章中,我们将探讨Open Universities Australia(OUA)如何通过 AWS 云开发工具包(Cloud DevelopmentKit)和 AWS Step Functions 来现代化其数据平台,成功降低了 ETL(抽取、转换和加载)的成本。
Open Universities Australia(OUA)通过使用 Amazon Web Services(AWS)服务,显著简化了其 ETL管道的构建与维护。凭借 AWS Glue、Amazon AppFlow 和 AWS Step Functions等服务,OUA能够有效地替换掉之前使用的第三方工具,提升了团队的生产效率,从而在运营成本上实现了显著的降低。
该迁移项目主要包括两个部分:构建新架构和将数据管道从现有工具迁移到新架构。通常情况下,我们会同时进行这两个任务,一边测试架构的一个组件,一边开发其他组件。
在迁移的早期阶段,我们开始定义一些指导原则,这些原则将在整个开发过程中发挥作用:
指导原则 | 描述 |
---|---|
简单和模块化 | 使用简单、可重用的设计模式,尽量减少移动部件。结构化代码库以便于开发人员使用。 |
成本效益 | 以高效、经济的方式使用资源,力求减少资源在等待其他过程时的闲置情况。 |
业务连续性 | 尽可能利用现有代码,减少重复开发。分阶段发布更新,以减少对现有业务流程的潜在干扰。 |
以下是解决方案的高层架构图。
删除)
架构中使用的 AWS 服务包括:
我们制定了一种实践,为我们的代码库文件结构定义资源。在 AWS CDK 中,我们设置了对特定目录内容的引用。
在上面的架构图中,我们展示了多种数据获取或卸载的流程。以下是四种在最终解决方案中使用的具体模式的详细信息。
我们的多个数据管道包含重要的数据转换步骤,主要通过 Amazon Redshift 执行的 SQL 语句来完成。为避免资源闲置,我们选择使用 AWSStep Functions 状态机来协调 SQL 执行任务。
删除)
在需要从第三方源复制数据时,我们使用 AWS Glue 运行脚本,从相关 API 获取数据。
![使用 AWS Glue 复制外部 API 数据到 删除)
在某些情况下,我们能够使用 Amazon AppFlow 流来替代 AWS Glue 作业,从而简化直接查询外部 API 的复杂性。
![使用 Amazon AppFlow 集成外部数据到 S3,并复制到 删除)
在某些工作流中,需要将数据导出到外部系统。我们利用 UNLOAD 语句将数据卸载到 Amazon S3。
![逆向 ETL删除)
重构和迁移过程耗时 5 个月完成,最终,我们在 AWS原生服务上获得了显著的成本降低。过渡期内,终端用户能够在迁移期间维持对相同数据和仪表板的访问,干扰最小化。
借助 AWS 服务的可扩展性和成本效益,我们成功优化了数据管道,降低了运营成本,并提高了灵活性。
Michael Davies 是OUA的 数据工程师。他在教育行业有着丰富的经验,专注于构建强健和高效的数据架构及管道。
Emma Arrigo 是AWS的解决方案架构师,专注于澳大利亚的教育客户,利用云技术和机器学习解决教育领域复杂的业务挑战。
请在评论区与我们分享您的意见!
Leave a Reply