SQL-Based ETL with Apache Spark on Amazon EKS

SQL-Based ETL with Apache Spark on Amazon EKS 提供声明性数据处理支持、无代码提取转换加载(ETL)功能和工作流编排自动化,可帮助业务用户(例如分析师和数据科学家)访问其数据并创建有意义的洞察,而无需手动 IT 流程。

优势

在 Jupyter 中构建、测试和调试 ETL 任务

使用 JupyterHub 这种基于 Web 的交互式集成开发环境(IDE)来简化 ETL 应用程序开发。

采用 SQL 优先的方法

使用 Spark SQL 在 ETL 管道开发中实施业务逻辑和数据质量检查。

无代码编排任务

使用 Argo 工作流来进行任务计划以及管理复杂的任务依赖项,但无需编写代码。

自动部署 Docker 镜像

设置一个 AWS 持续改进和持续开发(CI/CD)管道,以在 Amazon Elastic Container Registry(Amazon ECR)中安全地存储数据框架 Docker 镜像。

概览

下图展示了您可以使用 GitHub 上的示例代码构建的架构。

SQL-Based ETL with Apache Spark on Amazon EKS 架构

SQL-Based ETL with Apache Spark on Amazon EKS 会部署一个安全、容错且可自动伸缩的环境来支持您的 ETL 工作负载,它包含下列组件:

  1. 一个可自定义且灵活的工作流管理层(参见图中 Amazon Elastic Kubernetes Service(Amazon EKS)上的编排组),包括 Argo Workflows 插件。此插件提供了一个基于 Web 的工具,无需编写代码即可完成 ETL 任务的编排。您也可以使用其他工作流工具,例如 VolcanoApache Airflow
  2. 配置了一个安全的数据处理工作区,以将数据工作负载统一在同一个 Amazon EKS 集群中。此工作组包含第二个基于 Web 的工具 JupyterHub,用于完成交互式的任务构建和测试。您可以使用声明性的方法开发 Jupyter 笔记本来指定 ETL 任务,也可使用 PySpark 以编程方式编写 ETL 步骤。此工作区还提供了可通过 Argo Workflows 工具来进行管理的 Spark 任务自动化功能。
  3. 此解决方案中部署了多项安全功能。Amazon Elastic Container Registry(Amazon ECR)负责保存和保护数据处理框架 Docker 镜像。Amazon EKS 上的 AWS Identity and Access Management(IAM)服务账户角色(IRSA)功能提供令牌授权功能,可以对其他 AWS 服务实施精细访问控制。例如,Amazon EKS 与 Amazon Athena 集成后不再需要密码,减少了在连接字符串中暴露 AWS 凭证的风险。Jupyter 会从 AWS Secrets Manager 中获取登录凭证并快速传输到 Amazon EKS。Amazon CloudWatch 使用激活的 CloudWatch Container Insights 功能来监控 Amazon EKS 上的应用程序。
  4. Amazon EKS 集群上的分析工作负载将数据结果输出到一个 Amazon Simple Storage Service(Amazon S3)数据湖中。通过Amazon Athena 在一个 AWS Glue 数据目录中创建一个数据 Schema 条目(元数据)。

SQL-Based ETL with Apache Spark on Amazon EKS

版本 1.0.0
发布日期:2021 年 7 月
作者:AWS

其他资源

此指南是否对您有帮助?
提供反馈 
构建图标
自己部署 AWS 解决方案

浏览我们的 AWS 解决方案库,以获取常见架构问题的答案。

了解更多 
查找 APN 合作伙伴
查找 AWS 合作伙伴解决方案

查找 AWS 合作伙伴,以帮助您入门。

了解更多 
探索图标
探索指导

查找常见使用案例的规范性架构图、示例代码和技术内容。

了解更多