Amazon S3의 특정 파티션에서 AWS Glue 작업을 실행하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 10월 10일

Amazon S3(Amazon Simple Storage Service) 위치의 특정 파티션에서 AWS Glue 작업을 실행하려면 어떻게 해야 합니까?

간략한 설명

AWS Glue 데이터 카탈로그의 파티션을 필터링하려면 푸시다운 조건자를 사용합니다. 필터 변환과 달리, 푸시다운 조건자를 사용하면 데이터 세트의 모든 파일을 나열하고 읽을 필요 없이 파티션을 필터링할 수 있습니다.

​해결 방법

AWS Glue 작업을 생성하고 DynamicFrame에 푸시다운 조건자를 지정합니다. 다음 예에서는 작업이 s3://awsexamplebucket/product_category=Video 파티션의 데이터만 처리합니다.

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(product_category == 'Video')")

다음은 날짜별로 필터링하는 푸시 다운 조건자의 예입니다. 이 예에서는 작업이 s3://awsexamplebucket/year=2019/month=08/day=02 파티션의 데이터만 처리합니다.

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate = "(year == '2019' and month == '08' and day == '02')")

다음은 비 Hive 스타일 파티션에 대해 날짜별로 필터링하는 푸시 다운 조건자의 예입니다. 이 예에서는 작업이 s3://awsexamplebucket/2019/07/03 파티션의 데이터만 처리합니다.

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdata", table_name = "sampletable", transformation_ctx = "datasource0",push_down_predicate ="(partition_0 == '2019' and partition_1 == '07' and partition_2 == '03')" )

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?