

# 쓸 때 복사(CoW) 테이블 생성 예제
<a name="querying-hudi-copy-on-write-create-table-examples"></a>

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

## 분할되지 않은 CoW 테이블
<a name="querying-hudi-nonpartitioned-cow-table"></a>

다음 예제에서는 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 테이블
<a name="querying-hudi-partitioned-cow-table"></a>

다음 예제에서는 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/'
```