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

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

自动生成 ETL 脚本 API

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

数据类型

CodeGenNode 结构

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

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

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

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

    该节点的类型。

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

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

  • LineNumber – 数字(整数)。

    节点的行号。

CodeGenNodeArg 结构

节点的参数或属性。

字段
  • Name必填:UTF-8 字符串。

    参数或属性的名称。

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

    参数或属性的值。

  • Param – 布尔值。

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

CodeGenEdge 结构

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

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

    边缘开始的节点的 ID。

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

    边缘结束的节点的 ID。

  • TargetParameter – UTF-8 字符串。

    边缘的目标。

Location 结构

资源的位置。

字段
  • JdbcCodeGenNodeArg 对象的数组,不超过 50 个结构。

    JDBC 位置。

  • S3CodeGenNodeArg 对象的数组,不超过 50 个结构。

    Amazon Simple Storage Service (Amazon S3) 位置

  • DynamoDBCodeGenNodeArg 对象的数组,不超过 50 个结构。

    Amazon DynamoDB 表位置。

CatalogEntry 结构

在 Amazon Glue Data Catalog 中指定表定义。

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

    表元数据所在的数据库。

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

    相关表的名称。

MappingEntry 结构

定义映射。

字段
  • SourceTable – UTF-8 字符串。

    源表的名称。

  • SourcePath – UTF-8 字符串。

    源路径。

  • SourceType – UTF-8 字符串。

    源类型

  • TargetTable – UTF-8 字符串。

    目标表。

  • TargetPath – UTF-8 字符串。

    目标路径。

  • TargetType – UTF-8 字符串。

    目标类型。

操作

CreateScript 操作(Python:create_script)

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

请求
  • DagNodesCodeGenNode 对象的数组。

    DAG 中的节点的列表。

  • DagEdgesCodeGenEdge 对象的数组。

    DAG 中的边缘的列表。

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

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

响应
  • PythonScript – UTF-8 字符串。

    从 DAG 生成的 Python 脚本。

  • ScalaCode – UTF-8 字符串。

    从 DAG 生成的 Scala 代码。

错误
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

GetDataflowGraph 操作(Python:get_dataflow_graph)

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

请求
  • PythonScript – UTF-8 字符串。

    要转换的 Python 脚本。

响应
  • DagNodesCodeGenNode 对象的数组。

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

  • DagEdgesCodeGenEdge 对象的数组。

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

错误
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

GetMapping 操作(Python:get_mapping)

创建映射。

请求
  • Source必填:一个 CatalogEntry 对象。

    指定源表。

  • SinksCatalogEntry 对象的数组。

    目标表的列表。

  • Location – 一个 位置 对象。

    映射的参数。

响应
  • Mapping必填:MappingEntry 对象的数组。

    指定目标的映射的列表。

错误
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

  • EntityNotFoundException

GetPlan 操作(Python:get_plan)

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

请求
  • Mapping必填:MappingEntry 对象的数组。

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

  • Source必填:一个 CatalogEntry 对象。

    源表。

  • SinksCatalogEntry 对象的数组。

    目标表。

  • Location – 一个 位置 对象。

    映射的参数。

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

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

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

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

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

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

    目前支持以下键值对:

    • inferSchema – 指定是否为 Amazon Glue 任务生成的默认脚本将 inferSchema 设置为 true 或 false。例如,要将 inferSchema 设置为 true,则传递以下键值对:

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

响应
  • PythonScript – UTF-8 字符串。

    用于执行映射的 Python 脚本。

  • ScalaCode – UTF-8 字符串。

    用于执行映射的 Scala 代码。

错误
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException