„Beim Lesen zusammenführen (MoR)“ Tabellenbeispiele erstellen - Amazon Athena

„Beim Lesen zusammenführen (MoR)“ Tabellenbeispiele erstellen

Hudi erstellt zwei Tabellen im Metastore für MoR: eine Tabelle für Snapshot-Abfragen und eine Tabelle für leseoptimierte Abfragen. Beide Tabellen können abgefragt werden. In Hudi-Versionen vor 0.5.1 hatte die Tabelle für leseoptimierte Abfragen den Namen, den Sie beim Erstellen der Tabelle angegeben haben. Ab Hudi-Version 0.5.1 wird dem Tabellennamen standardmäßig ein _ro angehängt. Der Name der Tabelle für Snapshot-Abfragen ist der Name, den Sie mit angehängtem angegeben haben _rt.

Nicht partitionierte Merge-on-Read (MoR)-Tabelle

Im folgenden Beispiel wird eine nicht partitionierte MoR-Tabelle in Athena für leseoptimierte Abfragen erstellt. Beachten Sie, dass leseoptimierte Abfragen das Eingabeformat verwenden HoodieParquetInputFormat.

CREATE EXTERNAL TABLE `nonpartition_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, `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/nonpartition_mor/'

Im folgenden Beispiel wird eine nicht partitionierte MoR-Tabelle in Athena für Snapshot-Abfragen erstellt. Verwenden Sie für Snapshot-Abfragen das Eingabeformat HoodieParquetRealtimeInputFormat.

CREATE EXTERNAL TABLE `nonpartition_mor_rt`( `_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.realtime.HoodieParquetRealtimeInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder/nonpartition_mor/'

Partitionierte Merge-on-Read-(MoR)-Tabelle

Im folgenden Beispiel wird eine partitionierte MoR-Tabelle in Athena für leseoptimierte Abfragen erstellt.

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://amzn-s3-demo-bucket/folder/partition_mor/'

Im folgenden ALTER TABLE ADD PARTITION-Beispiel werden der partition_mor-Beispieltabelle zwei Partitionen hinzugefügt.

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

Im folgenden Beispiel wird eine partitionierte MoR-Tabelle in Athena für Snapshot-Abfragen erstellt.

CREATE EXTERNAL TABLE `partition_mor_rt`( `_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.realtime.HoodieParquetRealtimeInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder/partition_mor/'

Ebenso werden im folgenden ALTER TABLE ADD PARTITION-Beispiel der partition_mor_rt-Beispieltabelle zwei Partitionen hinzugefügt.

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