自动生成 ETL 脚本 API - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自动生成 ETL 脚本 API

ETL 脚本生成 API 介绍用于在 AWS Glue 中生成 ETL 脚本的数据类型和 API。

数据类型

CodeGenNode结构

表示有向无环图 (DAG) 中的节点

Fields

  • Id必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Identifier string pattern 匹配。

    节点图中唯一的节点标识符。

  • NodeType必需: UTF-8 字符串。

    该节点的类型。

  • Args必需: 对象的数组,不超过 50 个结构。CodeGenNodeArg

    节点的属性,采用名称-值对形式。

  • LineNumber – 数字(整数)。

    节点的行号。

CodeGenNodeArg结构

节点的参数或属性。

Fields

  • Name必需: UTF-8 字符串。

    参数或属性的名称。

  • Value必需: UTF-8 字符串。

    参数或属性的值。

  • Param – 布尔值。

    如果值用作参数,则为 True。

CodeGenEdge结构

表示有向无环图 (DAG) 中的方向边缘。

Fields

  • Source必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Identifier string pattern 匹配。

    边缘开始的节点的 ID。

  • Target必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Identifier string pattern 匹配。

    边缘结束的节点的 ID。

  • TargetParameter – UTF-8 字符串。

    边缘的目标。

Location 结构

资源的位置。

Fields

  • Jdbc – 对象的数组,不超过 50 个结构。CodeGenNodeArg

    JDBC 位置。

  • S3 – 对象的数组,不超过 50 个结构。CodeGenNodeArg

    Amazon Simple Storage Service (Amazon S3) 位置

  • DynamoDB – 对象的数组,不超过 50 个结构。CodeGenNodeArg

    Amazon DynamoDB 表位置。

CatalogEntry结构

在 AWS Glue 数据目录中指定表定义。

Fields

  • DatabaseName必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    表元数据所在的数据库。

  • TableName必需: UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    相关表的名称。

MappingEntry结构

定义映射。

Fields

  • SourceTable – UTF-8 字符串。

    源表的名称。

  • SourcePath – UTF-8 字符串。

    源路径。

  • SourceType – UTF-8 字符串。

    源类型

  • TargetTable – UTF-8 字符串。

    目标表。

  • TargetPath – UTF-8 字符串。

    目标路径。

  • TargetType – UTF-8 字符串。

    目标类型。

Operations

CreateScript 操作 (Python:create_script)

将有向无环图 (DAG) 转换为代码。

Request

  • DagNodes – 对象的数组。CodeGenNode

    DAG 中的节点的列表。

  • DagEdges – 对象的数组。CodeGenEdge

    DAG 中的边缘的列表。

  • Language – UTF-8 字符串(有效值:PYTHON | SCALA)。

    从 DAG 生成的代码的编程语言。

Response

  • PythonScript – UTF-8 字符串。

    从 DAG 生成的 Python 脚本。

  • ScalaCode – UTF-8 字符串。

    从 DAG 生成的 Scala 代码。

Errors

  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

GetDataflowGraph 操作 (Python:get_dataflow_graph)

将 Python 脚本转换为有向无环图 (DAG)。

Request

  • PythonScript – UTF-8 字符串。

    要转换的 Python 脚本。

Response

  • DagNodes – 对象的数组。CodeGenNode

    生成的 DAG 中的节点的列表。

  • DagEdges – 对象的数组。CodeGenEdge

    生成的 DAG 中的边缘的列表。

Errors

  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

GetMapping 操作(Python:get_mapping)

创建映射。

Request

  • Source必需: 一个 CatalogEntry 对象。

    指定源表。

  • Sinks – 对象的数组。CatalogEntry

    目标表的列表。

  • Location – 一个 Location 对象。

    映射的参数。

Response

  • Mapping必需: MappingEntry 对象数组。

    指定目标的映射的列表。

Errors

  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

  • EntityNotFoundException

GetPlan 操作 (Python:get_plan)

获取代码以执行指定的映射。

Request

  • Mapping必需: MappingEntry 对象数组。

    从源表到目标表的映射的列表。

  • Source必需: 一个 CatalogEntry 对象。

    源表。

  • Sinks – 对象的数组。CatalogEntry

    目标表。

  • Location – 一个 Location 对象。

    映射的参数。

  • Language – UTF-8 字符串(有效值:PYTHON | SCALA)。

    用于执行映射的代码的编程语言。

  • AdditionalPlanOptionsMap – 键值对的映射数组。

    每个键是一个 UTF-8 字符串。

    每个值是一个 UTF-8 字符串。

    用于保存其他可选键值参数的映射。

    目前,支持以下键/值对:

    • inferSchema – 对于 AWS Glue 作业生成的默认脚本,指定是将 inferSchema 设置为 true 还是 false。例如,要将 inferSchema 设置为 true,请传递以下键值对:

      --additional-plan-options-map '{"inferSchema":"true"}'

Response

  • PythonScript – UTF-8 字符串。

    用于执行映射的 Python 脚本。

  • ScalaCode – UTF-8 字符串。

    用于执行映射的 Scala 代码。

Errors

  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException