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

1분 분량
0

Amazon Simple Storage Service(Amazon S3) 위치의 특정 파티션에서 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 공식
AWS 공식업데이트됨 일 년 전