쓸 때 복사(CoW) 테이블 생성 예제 - Amazon Athena

쓸 때 복사(CoW) 테이블 생성 예제

AWS Glue에서 생성한 Hudi 테이블이 이미 있다면 Athena에서 직접 쿼리할 수 있습니다. Athena에서 분할된 Hudi 테이블을 만들 때 ALTER TABLE ADD PARTITION을 실행하여 Hudi 데이터를 로드해야 쿼리가 가능합니다.

분할되지 않은 CoW 테이블

다음 예제에서는 Athena에서 분할되지 않은 CoW 테이블을 만듭니다.

CREATE EXTERNAL TABLE `non_partition_cow`( `_hoodie_commit_time` string, `_hoodie_commit_seqno` string, `_hoodie_record_key` string, `_hoodie_partition_path` string, `_hoodie_file_name` string, `event_id` string, `event_time` string, `event_name` string, `event_guests` int, `event_type` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder/non_partition_cow/'

분할된 CoW 테이블

다음 예제에서는 Athena에서 분할된 CoW 테이블을 만듭니다.

CREATE EXTERNAL TABLE `partition_cow`( `_hoodie_commit_time` string, `_hoodie_commit_seqno` string, `_hoodie_record_key` string, `_hoodie_partition_path` string, `_hoodie_file_name` string, `event_id` string, `event_time` string, `event_name` string, `event_guests` int) PARTITIONED BY ( `event_type` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder/partition_cow/'

다음 ALTER TABLE ADD PARTITION 예제에서는 partition_cow 테이블 예제에 2개의 파티션을 추가합니다.

ALTER TABLE partition_cow ADD PARTITION (event_type = 'one') LOCATION 's3://amzn-s3-demo-bucket/folder/partition_cow/one/' PARTITION (event_type = 'two') LOCATION 's3://amzn-s3-demo-bucket/folder/partition_cow/two/'