AWS Glue:工作原理 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

AWS Glue:工作原理

AWS Glue 使用其他 AWS 服务以协调您的 ETL(提取、转换和加载)作业来构建数据仓库或数据湖,并生成输出流。AWS Glue 调用 API 操作来转换您的数据、创建运行时日志、存储您的作业逻辑,以及创建通知来帮助您监控作业运行。AWS Glue 控制台将这些服务连接到托管应用程序,因此您可以专注于创建和监控您的 ETL 工作。控制台代表您执行管理和作业开发操作。您可以向 AWS Glue 提供凭证和其他属性,以访问您的数据源并将内容写入数据目标。

AWS Glue 将负责预置和管理运行您的工作负载所需的资源。您不需要为 ETL 工具创建基础设施,因为 AWS Glue 为您提供了它。当需要资源时,为了减少启动时间,AWS Glue 会使用其热实例池中的实例来运行您的工作负载。

借助 AWS Glue,您可以使用 Data Catalog 中的表定义创建作业。作业由包含执行转换的编程逻辑的脚本组成。您可以使用触发器按计划或作为指定事件的结果启动作业。您可以确定目标数据驻留的位置以及哪些源数据填充目标。借助您的输入,AWS Glue 生成将您的数据从源转换到目标必需的代码。您还可以在 AWS Glue 控制台或 API 中提供脚本来处理您的数据。

数据源

AWS Glue 支持以下数据源:

  • 数据存储

    • Amazon S3

    • Amazon Relational Database Service (Amazon RDS)

    • 第三方 JDBC 可访问的数据库

    • Amazon DynamoDB

  • 数据流

    • Amazon Kinesis Data Streams

    • Apache Kafka

数据目标

AWS Glue 支持以下数据目标:

  • 数据存储

    • Amazon S3

    • Amazon Relational Database Service (Amazon RDS)

    • 第三方 JDBC 可访问的数据库

AWS Glue 可在多个 AWS 区域中使用。有关更多信息,请参阅 Amazon Web Services 一般参考 中的 AWS 区域和终端节点

无服务器 ETL 作业在隔离环境中运行

AWS Glue 在 Apache Spark 无服务器环境中运行您的 ETL 作业。AWS Glue 在用其自己的服务账户预置和管理的虚拟资源上运行这些作业。

AWS Glue 专用于执行以下操作:

  • 隔离客户数据。

  • 保护传输中的和静态的客户数据。

  • 仅在响应客户请求过程中需要时,才使用临时的、限定范围的凭证或客户对其账户中的 IAM 角色的同意来访问客户数据。

在 ETL 作业的预置过程中,您可以在虚拟私有云 (VPC) 中提供输入数据源和输出数据目标。此外,您还提供访问数据源和目标所需的 IAM 角色、VPC ID、子网 ID 和安全组。对于每个元组(客户账户 ID、IAM 角色、子网 ID 和安全组),AWS Glue 会创建一个新的 Spark 环境,此环境在网络和管理级别上与 AWS Glue 服务账户内的所有其他 Spark 环境隔离。

AWS Glue 使用私有 IP 地址在子网中创建弹性网络接口。Spark 作业使用这些弹性网络接口来访问数据源和数据目标。进出和位于 Spark 环境中的流量是由您的 VPC 和网络策略控制的,但有一个例外:对 AWS Glue 库的调用可以通过 AWS Glue VPC 将流量委托给 AWS Glue API 操作。所有 AWS Glue API 调用都被记录下来,因此,数据所有者可以通过启用将审核日志提供给您账户的 AWS CloudTrail 来审核 API 访问权限。

运行 ETL 作业的 AWS Glue 托管 Spark 环境受到与其他 AWS 服务遵循的相同安全做法的保护。这些做法列在 AWS 安全流程简介白皮书AWS 访问部分。