DynamicFrameWriter 클래스 - AWS Glue

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

DynamicFrameWriter 클래스

 메서드

__init__

__init__(glue_context)

from_options

from_options(frame, connection_type, connection_options={}, format=None, format_options={}, transformation_ctx="")

지정한 연결 및 포맷을 사용하여 DynamicFrame를 작성합니다.

  • frame - 작성할 DynamicFrame입니다.

  • connection_type - 연결 유형입니다. 유효한 값에는 s3, mysql, postgresql, redshift, sqlserveroracle가 있습니다.

  • connection_options - 경로 및 데이터베이스 테이블과 같은 연결 옵션입니다(선택 사항). s3connection_type의 경우, Amazon S3 경로가 정의됩니다.

    connection_options = {"path": "s3://aws-glue-target/temp"}

    JDBC 연결의 경우, 몇 까지 속성이 정의되어야 합니다. 단, 데이터베이스 이름이 URL의 일부여야 합니다. 연결 옵션에 선택적으로 포함될 수 있습니다.

    주의

    스크립트에 암호를 저장하는 것은 권장되지 않습니다. AWS Secrets Manager 또는 AWS Glue 데이터 카탈로그에서 데이터를 검색할 때 boto3 사용을 고려합니다.

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}

    dbtable 속성은 JDBC 테이블의 이름입니다. 데이터베이스 내의 스키마를 지원하는 JDBC 데이터 스토어의 경우 schema.table-name에 대해 지정합니다. 스키마가 제공되지 않으면 기본 "퍼블릭" 스키마가 사용됩니다.

    자세한 내용은 AWS Glue for Spark에서 ETL에 대한 연결 유형 및 옵션 단원을 참조하십시오.

  • format - 포맷 사양입니다(선택 사항). 여러 포맷을 지원하는 Amazon Simple Storage Service(Amazon S3) 또는 AWS Glue 연결에 사용됩니다. 지원되는 포맷은 AWS Glue for Spark에서 입력 및 출력의 데이터 형식 옵션를 참조하십시오.

  • format_options - 지정된 포맷에 대한 포맷 옵션입니다. 지원되는 포맷은 AWS Glue for Spark에서 입력 및 출력의 데이터 형식 옵션를 참조하십시오.

  • transformation_ctx - 사용할 변환 내용입니다(선택 사항).

from_catalog

from_catalog(frame, name_space, table_name, redshift_tmp_dir="", transformation_ctx="")

지정한 카탈로그 데이터베이스 및 테이블 이름을 사용하여 DynamicFrame를 작성합니다.

  • frame - 작성할 DynamicFrame입니다.

  • name_space - 사용할 데이터베이스입니다.

  • table_name – 사용할 table_name입니다.

  • redshift_tmp_dir – 사용할 Amazon Redshift 임시 디렉터리입니다(선택 사항).

  • transformation_ctx - 사용할 변환 내용입니다(선택 사항).

  • additional_options - AWS Glue에 제공되는 추가 옵션입니다.

    Lake Formation 관리형 테이블에 쓰려면 다음과 같은 추가 옵션을 사용할 수 있습니다.

    • transactionId - (문자열) 관리형 테이블에 쓰기를 수행할 트랜잭션 ID입니다. 이 트랜잭션은 이미 커밋되거나 중단되었을 수 없습니다. 그렇지 않으면 쓰기에 실패합니다.

    • callDeleteObjectsOnCancel - (부울, 선택 사항) true(기본값)로 설정된 경우 AWS Glue는 객체가 Amazon S3에 기록된 후 DeleteObjectsOnCancel API를 자동으로 호출합니다. 자세한 내용은 AWS Lake Formation 개발자 가이드DeleteObjectsOnCancel을 참조하세요.

    예: Lake Formation의 관리형 테이블에 쓰기
    txId = glueContext.start_transaction(read_only=False) glueContext.write_dynamic_frame.from_catalog( frame=dyf, database = db, table_name = tbl, transformation_ctx = "datasource0", additional_options={"transactionId":txId}) ... glueContext.commit_transaction(txId)

from_jdbc_conf

from_jdbc_conf(frame, catalog_connection, connection_options={}, redshift_tmp_dir = "", transformation_ctx="")

지정한 JDBC 연결 정보를 사용하여 DynamicFrame를 작성합니다.

  • frame - 작성할 DynamicFrame입니다.

  • catalog_connection - 사용할 카탈로그 연결입니다.

  • connection_options - 경로 및 데이터베이스 테이블과 같은 연결 옵션입니다(선택 사항).

  • redshift_tmp_dir – 사용할 Amazon Redshift 임시 디렉터리입니다(선택 사항).

  • transformation_ctx - 사용할 변환 내용입니다(선택 사항).

write_dynamic_frame의 예

이 예에서는 connection_options의 POSIX 경로 인수와 함께 S3의 connection_type을 사용하여 로컬 스토리지에 쓰기를 허용하는 출력을 로컬로 씁니다.

glueContext.write_dynamic_frame.from_options(\ frame = dyf_splitFields,\ connection_options = {'path': '/home/glue/GlueLocalOutput/'},\ connection_type = 's3',\ format = 'json')