自动生成 ETL 脚本 API - AWS Glue

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

自动生成 ETL 脚本 API

ETL 脚本生成 API 介绍用于在 AWS 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 结构

在 AWS 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 – 指定是否为 AWS Glue 任务生成的默认脚本将 inferSchema 设置为 true 或 false。例如,要将 inferSchema 设置为 true,则传递以下键值对:

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

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

    用于执行映射的 Python 脚本。

  • ScalaCode – UTF-8 字符串。

    用于执行映射的 Scala 代码。

错误
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException