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

최종 업데이트 날짜: 2021년 7월 23일

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')" )

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?