

# ETL スクリプト API の自動生成
<a name="aws-glue-api-etl-script-generation"></a>

ETL スクリプト生成 API では、AWS Glue で ETL スクリプトを生成するためのデータ型と API について説明します。

## データ型
<a name="aws-glue-api-etl-script-generation-objects"></a>
+ [CodeGenNode 構造](#aws-glue-api-etl-script-generation-CodeGenNode)
+ [CodeGenNodeArg 構造](#aws-glue-api-etl-script-generation-CodeGenNodeArg)
+ [CodeGenEdge 構造](#aws-glue-api-etl-script-generation-CodeGenEdge)
+ [場所の構造](#aws-glue-api-etl-script-generation-Location)
+ [CatalogEntry 構造](#aws-glue-api-etl-script-generation-CatalogEntry)
+ [MappingEntry 構造](#aws-glue-api-etl-script-generation-MappingEntry)

## CodeGenNode 構造
<a name="aws-glue-api-etl-script-generation-CodeGenNode"></a>

Directed Acyclic Graph (DAG) でノードを表す

**フィールド**
+ `Id` – *必須:* UTF-8 文字列。1～255 バイト長。[Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id) に一致。

  ノードのグラフ内で一意のノード識別子。
+ `NodeType` – *必須:* UTF–8 文字列。

  このノードのタイプ。
+ `Args` – *必須:* [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) オブジェクトの配列。構造 50 個以下。

  ノードのプロパティ、名前と値のペアの形式。
+ `LineNumber` – 数値 (整数)。

  ノードの行数。

## CodeGenNodeArg 構造
<a name="aws-glue-api-etl-script-generation-CodeGenNodeArg"></a>

ノードの引数またはプロパティ。

**フィールド**
+ `Name` – *必須:* UTF–8 文字列。

  引数またはプロパティの名前。
+ `Value` – *必須:* UTF–8 文字列。

  引数またはプロパティの値。
+ `Param` – ブール。

  値がパラメータとして使用される場合は True。

## CodeGenEdge 構造
<a name="aws-glue-api-etl-script-generation-CodeGenEdge"></a>

Directed Acyclic Graph (DAG) で方向のエッジを表します。

**フィールド**
+ `Source` – *必須:* UTF-8 文字列。1～255 バイト長。[Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id) に一致。

  エッジが始まるノードの ID。
+ `Target` – *必須:* UTF-8 文字列。1～255 バイト長。[Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id) に一致。

  エッジが終了するノードの ID。
+ `TargetParameter` – UTF–8 文字列。

  エッジのターゲット。

## 場所の構造
<a name="aws-glue-api-etl-script-generation-Location"></a>

リソースの場所。

**フィールド**
+ `Jdbc` – [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) オブジェクトの配列。構造 50 個以下。

  JDBC の場所。
+ `S3` – [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) オブジェクトの配列。構造 50 個以下。

  Amazon Simple Storage Service (Amazon S3) の場所。
+ `DynamoDB` – [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) オブジェクトの配列。構造 50 個以下。

  Amazon DynamoDB テーブルの場所。

## CatalogEntry 構造
<a name="aws-glue-api-etl-script-generation-CatalogEntry"></a>

AWS Glue Data Catalog でテーブル定義を指定します。

**フィールド**
+ `DatabaseName` – *必須:* UTF-8 文字列。1～255 バイト長。[Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) に一致。

  テーブルメタデータが存在するデータベース。
+ `TableName` – *必須:* UTF-8 文字列。1～255 バイト長。[Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) に一致。

  該当するテーブルの名前。

## MappingEntry 構造
<a name="aws-glue-api-etl-script-generation-MappingEntry"></a>

マッピングを定義します。

**フィールド**
+ `SourceTable` – UTF-8 文字列。

  ソーステーブルの名前。
+ `SourcePath` – UTF–8 文字列。

   ソースパス。
+ `SourceType` – UTF–8 文字列。

  ソースタイプ。
+ `TargetTable` – UTF–8 文字列。

  ターゲットテーブル。
+ `TargetPath` – UTF–8 文字列。

  ターゲットパス。
+ `TargetType` – UTF–8 文字列。

  ターゲットのタイプ。

## 操作
<a name="aws-glue-api-etl-script-generation-actions"></a>
+ [CreateScript アクション (Python: create\$1script)](#aws-glue-api-etl-script-generation-CreateScript)
+ [GetDataflowGraph アクション (Python: get\$1dataflow\$1graph)](#aws-glue-api-etl-script-generation-GetDataflowGraph)
+ [GetMapping アクション (Python: get\$1mapping)](#aws-glue-api-etl-script-generation-GetMapping)
+ [GetPlan アクション (Python: get\$1plan)](#aws-glue-api-etl-script-generation-GetPlan)

## CreateScript アクション (Python: create\$1script)
<a name="aws-glue-api-etl-script-generation-CreateScript"></a>

Directed Acyclic Graph (DAG) をコードに変換します。

**リクエスト**
+ `DagNodes` – [CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode) オブジェクトの配列。

  DAG 内のノードのリスト。
+ `DagEdges` – [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge) オブジェクトの配列。

  DAG 内のエッジのリスト。
+ `Language` – UTF-8 文字列 (有効な値: `PYTHON` \$1 `SCALA`)。

  DAG から生成されたコードのプログラミング言語。

**レスポンス**
+ `PythonScript` – UTF-8 文字列。

  DAG から生成された Python スクリプト。
+ `ScalaCode` – UTF–8 文字列。

  DAG から生成された Scala コード。

**エラー**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetDataflowGraph アクション (Python: get\$1dataflow\$1graph)
<a name="aws-glue-api-etl-script-generation-GetDataflowGraph"></a>

Python スクリプトを Directed Acyclic Graph (DAG) に変換します。

**リクエスト**
+ `PythonScript` – UTF-8 文字列。

  変換する Python スクリプト。

**応答**
+ `DagNodes` – [CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode) オブジェクトの配列。

  結果の DAG 内のノードのリスト。
+ `DagEdges` – [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge) オブジェクトの配列。

  結果の DAG 内のエッジのリスト。

**エラー**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetMapping アクション (Python: get\$1mapping)
<a name="aws-glue-api-etl-script-generation-GetMapping"></a>

マッピングを作成します。

**リクエスト**
+ `Source` – 必須: [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) オブジェクト。

  ソーステーブルを指定します。
+ `Sinks` – [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) オブジェクトの配列。

  ターゲットテーブルのリスト。
+ `Location` – [場所](#aws-glue-api-etl-script-generation-Location) オブジェクト。

  マッピングのパラメータ。

**レスポンス**
+ `Mapping` – *必須:* [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry) オブジェクトの配列。

  指定されたターゲットへのマッピングのリスト。

**エラー**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `EntityNotFoundException`

## GetPlan アクション (Python: get\$1plan)
<a name="aws-glue-api-etl-script-generation-GetPlan"></a>

指定されたマッピングを実行するコードを取得します。

**リクエスト**
+ `Mapping` – *必須:* [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry) オブジェクトの配列。

  ソーステーブルからターゲットテーブルへのマッピングのリスト。
+ `Source` – *必須:* [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) オブジェクト。

  ソーステーブル。
+ `Sinks` – [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) オブジェクトの配列。

  ターゲットテーブル。
+ `Location` – [場所](#aws-glue-api-etl-script-generation-Location) オブジェクト。

  マッピングのパラメータ。
+ `Language` – UTF-8 文字列 (有効な値: `PYTHON` \$1 `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`