DynamicFrameWriter 클래스
메서드
__init__
__init__(glue_context)
glue_context– 사용할 GlueContext 클래스입니다.
from_options
from_options(frame, connection_type, connection_options={},
format=None, format_options={}, transformation_ctx="")
지정한 연결 및 포맷을 사용하여 DynamicFrame를 작성합니다.
frame- 작성할DynamicFrame입니다.connection_type- 연결 유형입니다. 유효한 값에는s3,mysql,postgresql,redshift,sqlserver및oracle가 있습니다.connection_options- 경로 및 데이터베이스 테이블과 같은 연결 옵션입니다(선택 사항).s3의connection_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에 기록된 후DeleteObjectsOnCancelAPI를 자동으로 호출합니다. 자세한 내용은 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')