

# 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>

DAG(방향성 비순환 그래프)로 노드를 표시합니다

**필드**
+ `Id` – *필수(Required):* [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  노드 그래프 내 고유한 노드 식별자입니다.
+ `NodeType` – *필수(Required):* UTF-8 문자열입니다.

  노드 유형입니다.
+ `Args` – *필수(Required):* [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) 객체의 배열이며 구조는 50개 이하입니다.

  이름값 페어 형식인 노드의 속성
+ `LineNumber` - 숫자(정수)입니다.

  노드의 행 수입니다.

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

인수 또는 노드의 속성.

**필드**
+ `Name` – *필수(Required):* UTF-8 문자열입니다.

  인수 또는 속성의 이름입니다.
+ `Value` – *필수(Required):* UTF-8 문자열입니다.

  인수 또는 속성의 값입니다.
+ `Param` – 부울입니다.

  값이 파라미터로 사용되었다면 true입니다.

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

DAG(방향성 비순환 그래프)로 방향성 엣지를 표시합니다

**필드**
+ `Source` – *필수(Required):* [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  엣지가 시작하는 노드의 ID입니다.
+ `Target` – *필수(Required):* [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  엣지가 끝나는 노드의 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` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  테이블 메타데이터가 상주하는 데이터베이스.
+ `TableName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  문제의 테이블 이름입니다.

## 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>

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>

DAG(방향성 비순환 그래프)로 Python 스크립트를 변환합니다.

**요청**
+ `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` – *필수(Required):* [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` – **필수(Required): [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` – *필수(Required):* [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry) 객체의 배열입니다.

  원본 테이블에서 대상 테이블로 매핑하는 목록
+ `Source` – *필수(Required):* [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`