配置数据目标节点 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置数据目标节点

数据目标是任务写入转换后数据的位置。

数据目标选项概览

您的数据目标(也称为数据接收器)可以是:

  • S3 – 任务将数据写入您选择的 Amazon S3 位置的文件中,并以您指定的格式写入。

    如果您为数据目标配置分区列,则任务会根据分区键将数据集写入 Amazon S3 的目录。

  • Amazon Glue Data Catalog – 任务使用与数据目录中的表关联的信息将输出数据写入目标位置。

    您可以手动创建表,也可以使用爬网程序创建表。您还可以使用 Amazon CloudFormation 模板在数据目录中创建表。

  • 连接器 – 连接器是一段代码,便于您在数据存储和 Amazon Glue 之间通信。任务使用连接器和关联的连接将输出数据写入目标位置。您可以订阅 Amazon Web Services Marketplace 中提供的连接器,或者您还可以创建自己的自定义连接器。有关更多信息,请参阅 将连接器添加到 Amazon Glue Studio

您可以选择在任务写入 Amazon S3 数据目标时更新数据目录。当架构或分区发生更改时,不需要爬网程序更新数据目录,此选项可以更轻松地使表保持最新状态。此选项可选择性地将新表添加到数据目录、更新表分区以及直接从任务更新表的方案,简化将数据用于分析的过程。

编辑数据目标节点

数据目标是任务写入转换后数据的位置。

在任务图中添加或配置数据目标节点
  1. (可选)如果需要添加目标节点,请在可视化编辑器顶部工具栏中选择 Target (目标),然后选择 S3 或者 Glue Data Catalog

    • 如果选择 S3,则任务将数据集写入您指定的 Amazon S3 位置中的一个或多个文件。

    • 如果选择 Amazon Glue Data Catalog,则任务将写入从数据目录中选择的表所描述的位置。

  2. 在任务图中选择一个数据目标节点。选择节点时,节点详细信息面板将在页面右侧显示。

  3. 选择 Node properties (节点属性) 选项卡,然后输入以下信息:

    • Name (名称):输入要与任务图中节点关联的名称。

    • Node type (节点类型):应该已选择一个值,但您可以根据需要对其进行更改。

    • Node parents (父节点):父节点是任务图中提供要写入目标位置的输出数据的节点。对于预填充的任务图,目标节点应该已经选择父节点。如果没有显示父节点,则从列表中选择父节点。

      目标节点具有单个父节点。

  4. 配置 Data target properties (数据目标属性) 信息。有关详细信息,请参阅以下章节:

  5. (可选)配置数据目标节点属性后,您可以选择节点详细信息面板中的 Output schema (输出架构) 选项卡,查看数据的输出架构。当您首次为任务中的任何节点选择此选项卡时,系统会提示您提供 IAM 角色以访问数据。如果您尚未在 Job details (任务详细信息) 选项卡上指定 IAM 角色,系统会提示您在此处输入 IAM 角色。

将 Amazon S3 用于数据目标

对于 Amazon S3 和连接器之外的所有数据源,表必须位于您所选择源类型的 Amazon Glue Data Catalog 中。Amazon Glue Studio 不会创建数据目录表。

配置写入 Amazon S3 的数据目标节点
  1. 转到新任务或已保存任务的可视编辑器。

  2. 在任务图中选择一个数据源节点。

  3. 选择 Data source properties (数据源属性) 选项卡,然后输入以下信息:

    • Format (格式):从列表中选择格式。数据结果的可用格式类型包括:

      • JSON:JavaScript 对象表示法。

      • CSV:逗号分隔的值。

      • Avro:Apache Avro JSON 二进制。

      • Parquet:此为自定义 Parquet 编写器类型,已针对 DynamicFrames 数据格式进行优化。它不需要数据预先计算的架构,而是动态计算和修改架构。

      • ORC:Apache 优化的行列式(ORC)格式。

      • Apache Hudi:此为开源数据湖存储框架,简化增量数据处理和数据管道开发。

      • Apache Iceberg:此为高性能的表格式,其工作原理与 SQL 表类似。

      • Delta Lake:此为开源数据湖存储框架,可帮助执行 ACID 交易、扩展元数据处理以及统一流式和批处理数据处理。

      • XML:此为可扩展标记语言(XML)。

      • Tableau Hyper:此为 Tableau 的内存中数据引擎技术。

      要了解有关这些格式选项的更多信息,请参阅《Amazon Glue 开发人员指南》中的 Amazon Glue 中 ETL 输入和输出的格式选项

    • 压缩类型:可以选择使用 CSVJSONParquet 文件类型来压缩数据。默认值为无压缩,或 None (无)

      文件类型 压缩方式
      JSON/CSV/XML GZIP、BZIP2、BROTLI、DEFLATE、LZ4、Snappy
      Parquet Snappy、LZ4、LZO、BROTLI、GZIP
      ORC Snappy、ZLIB、Uncompressed、LZO
      Avro GZIP、BZIP2、BROTLI、DEFLATE、LZ4、Snappy
      Delta Lake GZIP、BZIP2、BROTLI、DEFLATE、LZ4、Snappy
      Apache Hudi GZIP、LZO、Snappy
      Apache Iceberg GZIP、LZO、Snappy
      Tableau Hyper
    • 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 (添加分区键)

    如果 Tableau Hyper 用作目标格式,则不支持文件分区。

使用数据目标的数据目录表

对于 Amazon S3 和连接器之外的所有数据源,表必须位于您所选择目标类型的 Amazon Glue Data Catalog 中。Amazon Glue Studio 不会创建数据目录表。

为使用数据目录表的目标配置数据属性
  1. 转到新任务或已保存任务的可视编辑器。

  2. 在任务图中选择一个数据目标节点。

  3. 选择 Data target properties (数据目标属性) 选项卡,然后输入以下信息:

    • Database (数据库):从列表中选择包含用作目标的表的数据库。此数据库必须已存在于数据目录中。

    • Table (表):从列表中选择定义输出数据架构的表。此表必须已存在于数据目录中。

      数据目录中的表包含列的名称、数据类型定义、分区信息以及有关目标数据集的其他元数据。您的任务写入数据目录中此表描述的位置。

      有关在数据目录中创建表的更多信息,请参阅 Amazon 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 (节点类型) 选择连接器,请按照 使用自定义连接器编写任务 中的说明操作,完成数据目标属性的配置。