数据目标是任务写入转换后数据的位置。
数据目标选项概览
您的数据目标(也称为数据接收器)可以是:
-
S3 – 任务将数据写入您选择的 Amazon S3 位置的文件中,并以您指定的格式写入。
如果您为数据目标配置分区列,则任务会根据分区键将数据集写入 Amazon S3 的目录。
-
AWS Glue Data Catalog – 任务使用与数据目录中的表关联的信息将输出数据写入目标位置。
您可以手动创建表,也可以使用爬网程序创建表。您还可以使用 AWS CloudFormation 模板在数据目录中创建表。
-
连接器 – 连接器是一段代码,便于您在数据存储和 AWS Glue 之间通信。任务使用连接器和关联的连接将输出数据写入目标位置。您可以订阅 AWS Marketplace 中提供的连接器,或者您还可以创建自己的自定义连接器。有关更多信息,请参阅 将连接器添加到 AWS Glue Studio
您可以选择在任务写入 Amazon S3 数据目标时更新数据目录。当架构或分区发生更改时,不需要爬网程序更新数据目录,此选项可以更轻松地使表保持最新状态。此选项可选择性地将新表添加到数据目录、更新表分区以及直接从任务更新表的方案,简化将数据用于分析的过程。
编辑数据目标节点
数据目标是任务写入转换后数据的位置。
在任务图中添加或配置数据目标节点
-
(可选)如果需要添加目标节点,请在可视化编辑器顶部工具栏中选择 Target (目标),然后选择 S3 或者 Glue Data Catalog。
-
如果选择 S3,则任务将数据集写入您指定的 Amazon S3 位置中的一个或多个文件。
-
如果选择 AWS Glue Data Catalog,则任务将写入从数据目录中选择的表所描述的位置。
-
-
在任务图中选择一个数据目标节点。选择节点时,节点详细信息面板将在页面右侧显示。
-
选择 Node properties (节点属性) 选项卡,然后输入以下信息:
-
Name (名称):输入要与任务图中节点关联的名称。
-
Node type (节点类型):应该已选择一个值,但您可以根据需要对其进行更改。
-
Node parents (父节点):父节点是任务图中提供要写入目标位置的输出数据的节点。对于预填充的任务图,目标节点应该已经选择父节点。如果没有显示父节点,则从列表中选择父节点。
目标节点具有单个父节点。
-
-
配置 Data target properties (数据目标属性) 信息。有关详细信息,请参阅以下章节:
(可选)配置数据目标节点属性后,您可以选择节点详细信息面板中的 Output schema (输出架构) 选项卡,查看数据的输出架构。当您首次为任务中的任何节点选择此选项卡时,系统会提示您提供 IAM 角色以访问数据。如果您尚未在 Job details (任务详细信息) 选项卡上指定 IAM 角色,系统会提示您在此处输入 IAM 角色。
将 Amazon S3 用于数据目标
对于 Amazon S3 和连接器之外的所有数据源,表必须位于您所选择源类型的 AWS Glue Data Catalog 中。AWS Glue Studio 不会创建数据目录表。
配置写入 Amazon S3 的数据目标节点
-
转到新任务或已保存任务的可视编辑器。
-
在任务图中选择一个数据源节点。
-
选择 Data source properties (数据源属性) 选项卡,然后输入以下信息:
-
Format (格式):从列表中选择格式。数据结果的可用格式类型包括:
-
JSON:JavaScript 对象表示法。
-
CSV:逗号分隔的值。
-
Avro:Apache Avro JSON 二进制。
-
Parquet:Apache Parquet 列式存储
-
Glue Parquet:自定义 Parquet 编写器类型,已针对
DynamicFrames
作为数据格式优化。它不需要数据预先计算的架构,而是动态计算和修改架构。 -
ORC:Apache 优化的行列式(ORC)格式。
要了解有关这些格式选项的更多信息,请参阅《AWS Glue 开发人员指南》中的 AWS Glue 中 ETL 输入和输出的格式选项。
-
-
Compression Type (压缩类型):您可以选择使用
gzip
或者bzip2
格式压缩日期。默认值为无压缩,或 None (无)。 -
S3 Target Location (S3 目标位置):Amazon S3 存储桶和数据输出的位置。您可以选择 Browse S3 (浏览 S3) 按钮,查看您有权访问的 Amazon S3 存储桶,然后选择一个作为目标目的地。
-
数据目录更新选项
-
Do not update the Data Catalog (请勿更新数据目录):(默认)如果您不希望任务更新数据目录(即使架构更改或添加了新分区),请选择此选项。
-
Create a table in the Data Catalog and on subsequent runs, update the schema and add new partitions (在数据目录中创建表并在后续运行时,更新架构并添加新分区):如果选择此选项,任务将在第一次任务运行时创建数据目录中的表。在后续任务运行时,如果架构发生更改或添加了新分区,任务将更新数据目录表。
您还必须从数据目录中选择数据库并输入表名。
-
Create a table in the Data Catalog and on subsequent runs, keep existing schema and add new partitions (在数据目录中创建表,并在后续运行时保持现有架构并添加新分区):如果选择此选项,任务将在第一次任务运行时创建数据目录中的表。在后续任务运行时,任务只更新数据目录表以添加新分区。
您还必须从数据目录中选择数据库并输入表名。
-
Partition keys (分区键):选择要在输出中用作分区键的列。要添加更多分区键,请选择 Add a partition key (添加分区键)。
-
-
使用数据目标的数据目录表
对于 Amazon S3 和连接器之外的所有数据源,表必须位于您所选择目标类型的 AWS Glue Data Catalog 中。AWS Glue Studio 不会创建数据目录表。
为使用数据目录表的目标配置数据属性
-
转到新任务或已保存任务的可视编辑器。
-
在任务图中选择一个数据目标节点。
-
选择 Data target properties (数据目标属性) 选项卡,然后输入以下信息:
-
Database (数据库):从列表中选择包含用作目标的表的数据库。此数据库必须已存在于数据目录中。
-
Table (表):从列表中选择定义输出数据架构的表。此表必须已存在于数据目录中。
数据目录中的表包含列的名称、数据类型定义、分区信息以及有关目标数据集的其他元数据。您的任务写入数据目录中此表描述的位置。
有关在数据目录中创建表的更多信息,请参阅 AWS Glue 开发人员指南中的在数据目录中定义表。
-
数据目录更新选项
-
Do not change table definition (请勿更改表定义):(默认)如果不希望任务更新数据目录(即使架构更改或添加了新分区),请选择此选项。
-
Update schema and add new partitions (更新架构并添加新分区):如果选择此选项,任务将更新数据目录表(如果架构更改或添加新分区)。
-
Keep existing schema and add new partitions (保留现有架构并添加新分区):如果选择此选项,任务将仅为了添加新分区而更新数据目录表。
-
Partition keys (分区键):选择要在输出中用作分区键的列。要添加更多分区键,请选择 Add a partition key (添加分区键)。
-
-
将连接器用作数据目标
如果您为 Node type (节点类型) 选择连接器,请按照 使用自定义连接器编写任务 中的说明操作,完成数据目标属性的配置。