本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Glue:工作原理
AWS Glue 使用其他 AWS 服务以协调您的 ETL(提取、转换和加载)任务来构建数据仓库或数据湖,并生成输出流。AWS Glue 调用 API 操作来转换您的数据、创建运行时日志、存储您的任务逻辑,以及创建通知来帮助您监控任务运行。AWS Glue 控制台将这些服务连接到托管应用程序,因此您可以专注于创建和监控您的 ETL 工作。控制台代表您执行管理和作业开发操作。您可以向 AWS Glue 提供凭证和其他属性,以访问您的数据源并将内容写入数据目标。
AWS Glue 将负责预置和管理运行您的工作负载所需的资源。您不需要为 ETL 工具创建基础设施,因为 AWS Glue 为您提供了它。当需要资源时,为了减少启动时间,AWS Glue 会使用其热实例池中的实例来运行您的工作负载。
借助 AWS Glue,您可以使用数据目录中的表定义创建任务。作业由包含执行转换的编程逻辑的脚本组成。您可以使用触发器按计划或作为指定事件的结果启动作业。您可以确定目标数据驻留的位置以及哪些源数据填充目标。借助您的输入,AWS Glue 生成将您的数据从源转换到目标必需的代码。您还可以在 AWS Glue 控制台或 API 中提供脚本来处理您的数据。
数据来源和目标
AWS Glue for Spark 允许您从多个系统和数据库读取和写入数据,包括:
-
Amazon S3
-
Amazon DynamoDB
-
Amazon Redshift
-
Amazon Relational Database Service (Amazon RDS)
-
第三方 JDBC 可访问的数据库
-
MongoDB 和 Amazon DocumentDB (with MongoDB compatibility)
-
其他市场连接器和 Apache Spark 插件
数据流
AWS Glue for Spark 可以流式传输来自以下系统的数据:
-
Amazon Kinesis Data Streams
-
Apache Kafka
AWS Glue 可在多个 AWS 区域中使用。有关更多信息,请参阅 AWS 中的 Amazon Web Services 一般参考 区域和终端节点。
主题
无服务器 ETL 作业在隔离环境中运行
AWS Glue 在您选择的引擎 Spark 或 Ray 中在无服务器环境中运行 ETL 作业。AWS Glue 在用其自己的服务账户预置和管理的虚拟资源上运行这些作业。
AWS Glue 专用于执行以下操作:
隔离客户数据。
保护传输中的和静态的客户数据。
仅在响应客户请求过程中需要时,才使用临时的、限定范围的凭证或客户对其账户中的 IAM 角色的同意来访问客户数据。
在 ETL 作业的预置过程中,您可以在 Virtual Private Cloud(VPC)中提供输入数据源和输出数据目标。此外,您还提供访问数据源和目标所需的 IAM 角色、VPC ID、子网 ID 和安全组。对于每个元组(客户账户 ID、IAM 角色、子网 ID 和安全组),AWS Glue 会创建一个新环境,此环境在网络和管理级别上与 AWS Glue 服务账户内的所有其他环境隔离。
AWS Glue 使用私有 IP 地址在子网中创建弹性网络接口。作业使用这些弹性网络接口来访问数据来源和数据目标。进出和位于作业运行环境中的流量是由您的 VPC 和网络策略控制的,但有一个例外:对 AWS Glue 库的调用可以通过 AWS Glue VPC 将流量委托给 AWS Glue API 操作。所有 AWS Glue API 调用都被记录下来,因此,数据所有者可以通过启用将审核日志提供给您账户的 AWS CloudTrail 来审核 API 访问权限。
运行 ETL 任务的 AWS Glue 托管环境受到与其他 AWS 服务遵循的相同安全做法的保护。有关实践和安全责任共担的概述,请参阅 AWS 安全流程简介白皮书。