ETL 스크립트 API 자동 생성 - AWS Glue

ETL 스크립트 API 자동 생성

ETL 스크립트 생성 API는 AWS Glue에서 ETL 스크립트를 생성하는 API와 데이터 유형에 대해 설명합니다.

데이터 유형

CodeGenNode 구조

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

필드
  • Id필수(Required): Identifier string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    노드 그래프 내 고유한 노드 식별자입니다.

  • NodeType필수(Required): UTF-8 문자열입니다.

    노드 유형입니다.

  • Args필수(Required): CodeGenNodeArg 객체의 배열이며 구조는 50개 이하입니다.

    이름값 페어 형식인 노드의 속성

  • LineNumber - 숫자(정수)입니다.

    노드의 행 수입니다.

CodeGenNodeArg 구조

인수 또는 노드의 속성.

필드
  • Name필수(Required): UTF-8 문자열입니다.

    인수 또는 속성의 이름입니다.

  • Value필수(Required): UTF-8 문자열입니다.

    인수 또는 속성의 값입니다.

  • Param – 부울입니다.

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

CodeGenEdge 구조

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

필드
  • Source필수(Required): Identifier string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    엣지가 시작하는 노드의 ID입니다.

  • Target필수(Required): Identifier string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    엣지가 끝나는 노드의 ID입니다.

  • TargetParameter – UTF-8 문자열입니다.

    엣지의 대상입니다.

위치 구조

리소스의 위치입니다.

필드
  • JdbcCodeGenNodeArg 객체의 배열이며 구조는 50개 이하입니다.

    JDBC 위치

  • S3CodeGenNodeArg 객체의 배열이며 구조는 50개 이하입니다.

    Amazon Simple Storage Service(Amazon S3) 위치입니다.

  • DynamoDBCodeGenNodeArg 객체의 배열이며 구조는 50개 이하입니다.

    Amazon DynamoDB 테이블 위치입니다.

CatalogEntry 구조

AWS Glue Data Catalog에서 테이블 정의를 지정합니다.

필드
  • DatabaseName필수(Required): Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    테이블 메타데이터가 상주하는 데이터베이스.

  • TableName필수(Required): Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

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

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)

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

요청
  • PythonScript – UTF-8 문자열입니다.

    변환할 Python 스크립트

응답
  • DagNodesCodeGenNode 객체의 배열입니다.

    결과 DAG 노드 목록.

  • DagEdgesCodeGenEdge 객체의 배열입니다.

    결과 DAG 엣지 목록.

오류
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

GetMapping 작업(Python: get_mapping)

매핑 생성

요청
  • Source필수(Required): CatalogEntry 객체입니다.

    원본 테입을 지정합니다.

  • SinksCatalogEntry 객체의 배열입니다.

    대상 테이블 목록

  • Location위치 객체입니다.

    매핑 파라미터입니다.

응답
  • Mapping필수(Required): MappingEntry 객체의 배열입니다.

    지정한 대상 매핑 목록.

오류
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

  • EntityNotFoundException

GetPlan 작업(Python: get_plan)

지정한 매핑을 실행할 코드 얻기.

요청
  • Mapping필수(Required): MappingEntry 객체의 배열입니다.

    원본 테이블에서 대상 테이블로 매핑하는 목록

  • Source필수(Required): 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