Crear tablas de ejemplo de copiar al escribir (CoW)
Si ya tiene tablas Hudi creadas en AWS Glue, puede consultarlas directamente en Athena. Cuando se crean tablas de Hudi particionadas en Athena, se debe ejecutar ALTER TABLE
ADD PARTITION
para cargar los datos de Hudi antes de poder consultarlos.
Tabla CoW no particionada
En el siguiente ejemplo, se crea una tabla CoW sin particiones en Athena.
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/'
Tabla CoW particionada
En el siguiente ejemplo, se crea una tabla CoW particionada en Athena.
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/'
El ejemplo a continuación de ALTER TABLE ADD PARTITION
agrega dos particiones a la tabla de ejemplo partition_cow
.
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/'