我使用 Spark 在 S3 中以 Hudi 格式创建了一个数据集。
我想使用 Athena 创建一个表,并将该数据集的所有分区加载到这个新表中。
虽然我创建了一个输入格式为 HUDI 的外部表
STORED AS INPUTFORMAT
'org.apache.hudi.hadoop.HoodieParquetInputFormat'
但是不支持
MSCK REAPAIR
加载数据。
您可以创建这样的表:
CREATE EXTERNAL TABLE `partition_mor`(
`_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://bucket/folder/partition_mor/'
ALTER TABLE partition_mor ADD
PARTITION (event_type = 'one') LOCATION 's3://bucket/folder/partition_mor/one/'
PARTITION (event_type = 'two') LOCATION 's3://bucket/folder/partition_mor/two/'
您可以找到更多详细信息: https://docs.aws.amazon.com/athena/latest/ug/querying-hudi.html