DynamicFrameReader 클래스 - AWS Glue

DynamicFrameReader 클래스

 - 메서드 -

__init__

__init__(glue_context)

from_rdd

from_rdd(data, name, schema=None, sampleRatio=None)

탄력적 분산형 데이터셋(RDD)로부터 DynamicFrame을 판독합니다.

  • data - 읽어야 할 데이터 집합입니다.

  • name - 읽어야 할 이름입니다.

  • schema - 판독할 스키마입니다(선택 사항).

  • sampleRatio - 사용할 예제 비율입니다(선택 사항).

from_options

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

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

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

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

    connection_options = {"paths": [ "s3://mybucket/object_a", "s3://mybucket/object_b"]}

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

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

    병렬 읽기를 수행하는 JDBC 연결의 경우 해시 필드 옵션을 설정할 수 있습니다. 예:

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

    자세한 정보는 JDBC 테이블을 병렬로 읽기을 참조하십시오.

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

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

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

  • push_down_predicate - 데이터 집합 내 모든 파일을 나열하거나 읽지 않아도 파티션에 필터링할 수 있습니다. 자세한 내용은 푸시다운 조건자를 사용하여 사전 필터링을 참조하세요.

from_catalog

from_catalog(name_space, table_name, redshift_tmp_dir="", transformation_ctx="", push_down_predicate="", additional_options={})

지정한 카탈로그 네임스페이스 및 테이블 이름을 사용하여 DynamicFrame를 판독합니다.

  • name_space - 읽어야 할 데이터베이스입니다.

  • table_name - 읽어올 테이블의 이름입니다.

  • redshift_tmp_dir – 사용할 Amazon Redshift 임시 디렉터리(Redshift에서 데이터를 읽지 않는 경우 선택 사항)입니다.

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

  • push_down_predicate - 데이터 집합 내 모든 파일을 나열하거나 읽지 않아도 파티션에 필터링할 수 있습니다. 자세한 정보는 푸시다운 조건자를 사용하여 예비 필터링을 참조하십시오.

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

    • 병렬 읽기를 수행하는 JDBC 연결을 사용하기 위해 hashfield, hashexpression 또는 hashpartitions 옵션을 설정할 수 있습니다. 예:

      additional_options = {"hashfield": "month"}

      자세한 정보는 JDBC 테이블을 병렬로 읽기을 참조하십시오.

    • 인덱스 열을 기준으로 필터링할 카탈로그 표현식을 전달하려면 catalogPartitionPredicate 옵션을 볼 수 있습니다.

      catalogPartitionPredicate - 카탈로그 표현식을 전달하여 인덱스 열을 기준으로 필터링할 수 있습니다. 이렇게 하면 필터링이 서버 측으로 푸시됩니다. 자세한 내용은 AWS Glue 파티션 인덱스를 참조하세요. push_down_predicatecatalogPartitionPredicate는 다른 구문을 사용합니다. 전자는 Spark SQL 표준 구문을 사용하고 후자는 JSQL 구문 분석기를 사용합니다.

      자세한 정보는 AWS Glue에서 ETL 출력의 파티션 관리을 참조하십시오.

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

      • transactionId - (문자열) 관리형 테이블 내용을 읽을 트랜잭션 ID입니다. 이 트랜잭션이 커밋되지 않은 경우 읽기는 해당 트랜잭션의 일부로 처리되고 해당 쓰기를 확인합니다. 이 트랜잭션이 커밋된 경우에는 이 읽기에 해당 쓰기가 표시됩니다. 이 트랜잭션이 중단된 경우 오류가 반환됩니다. asOfTime과(와) 함께 지정할 수 없습니다.

        참고

        관리형 테이블에 액세스하려면 transactionId 또는 asOfTime을 설정해야 합니다.

      • asOfTime - (TimeStamp: yyyy-[m]m-[d]d hh:mm:ss) 테이블 내용을 읽을 기준 시간입니다. transactionId과(와) 함께 지정할 수 없습니다.

      • query - (선택 사항) Lake Formation 플래너 서비스에 대한 입력으로 사용되는 PartiQL 쿼리 문입니다. 설정되지 않은 경우 기본 설정은 테이블의 모든 데이터를 선택하는 것입니다. PartiQL에 대한 자세한 내용은 AWS Lake Formation 개발자 가이드행 필터 표현식에서의 PartiQL 지원을 참조하세요.

      예: Lake Formation의 관리형 테이블에서 읽을 때 PartiQL 쿼리 문 사용
      txId = glueContext.start_transaction(read_only=False) datasource0 = glueContext.create_dynamic_frame.from_catalog( database = db, table_name = tbl, transformation_ctx = "datasource0", additional_options={ "transactionId":txId, "query":"SELECT * from tblName WHERE partitionKey=value;" }) ... glueContext.commit_transaction(txId)