澳大利亚开放大学如何通过 AWS 云

Open Universities Australia如何利用AWS现代化数据平台并显著降低ETL成本

关键要点:

在这篇文章中,我们将探讨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 服务包括:

  • Amazon Redshift : 一款完全托管的云数据仓库服务。
  • AWS Cloud Development Kit (AWS CDK) : 通过代码定义云基础设施并通过 AWS CloudFormation 进行部署。
  • AWS Step Functions : 用于创建工作流,以构建分布式应用程序和自动化流程。
  • Amazon EventBridge : 用于定义基于事件的规则和调度,以触发 AWS Step Functions 状态机。
  • AWS Glue : 数据集成服务,包含数据发现、现代 ETL、数据清洗、转换等功能。
  • AWS Lambda : 一个高度可扩展的无服务器计算服务,适合执行简单脚本。
  • Amazon AppFlow : 简化与软件即服务(SaaS)应用程序集成的服务。
  • Amazon S3 : 行业领先的对象存储服务,用于存储原始数据。

我们制定了一种实践,为我们的代码库文件结构定义资源。在 AWS CDK 中,我们设置了对特定目录内容的引用。

具体模式详细信息

在上面的架构图中,我们展示了多种数据获取或卸载的流程。以下是四种在最终解决方案中使用的具体模式的详细信息。

模式 1: 数据转换、加载和卸载

我们的多个数据管道包含重要的数据转换步骤,主要通过 Amazon Redshift 执行的 SQL 语句来完成。为避免资源闲置,我们选择使用 AWSStep Functions 状态机来协调 SQL 执行任务。

删除)

模式 2: 使用 AWS Glue 数据复制

在需要从第三方源复制数据时,我们使用 AWS Glue 运行脚本,从相关 API 获取数据。

![使用 AWS Glue 复制外部 API 数据到 删除)

模式 3: 使用 Amazon AppFlow 数据复制

在某些情况下,我们能够使用 Amazon AppFlow 流来替代 AWS Glue 作业,从而简化直接查询外部 API 的复杂性。

![使用 Amazon AppFlow 集成外部数据到 S3,并复制到 删除)

模式 4: 逆向 ETL

在某些工作流中,需要将数据导出到外部系统。我们利用 UNLOAD 语句将数据卸载到 Amazon S3。

![逆向 ETL删除)

结果

重构和迁移过程耗时 5 个月完成,最终,我们在 AWS原生服务上获得了显著的成本降低。过渡期内,终端用户能够在迁移期间维持对相同数据和仪表板的访问,干扰最小化。

结论

借助 AWS 服务的可扩展性和成本效益,我们成功优化了数据管道,降低了运营成本,并提高了灵活性。

额外资源


关于作者

Michael Davies 是OUA的 数据工程师。他在教育行业有着丰富的经验,专注于构建强健和高效的数据架构及管道。

Emma Arrigo 是AWS的解决方案架构师,专注于澳大利亚的教育客户,利用云技术和机器学习解决教育领域复杂的业务挑战。


请在评论区与我们分享您的意见!

Leave a Reply

Required fields are marked *