考慮事項と制限事項
Athena を利用して Apache Hudi テーブルを読み取る際には、次の点を考慮してください。
-
増分クエリ – Athena は増分クエリをサポートしていません。
-
CTAS – Athena は、Hudi データで CTAS または INSERT INTO をサポートしていません。Athena による Hudi データセットへの書き込みのサポートをご希望の場合は、
<athena-feedback@amazon.com>
までフィードバックをお送りください。Hudi データの記述の詳細については、次のリソースを参照してください。
-
Apache Hudi ドキュメントの「Writing Data
」。
-
MSCK REPAIR TABLE – Athena での Hudi テーブルに対する MSCK REPAIR TABLE の使用はサポートされていません。AWS Glue 以外で作成された Hudi テーブルをロードする必要がある場合は、ALTER TABLE ADD PARTITION を使用してください。
-
S3 Glacier オブジェクトのスキップはサポートされていません — Apache Hudi テーブル内のオブジェクトが Amazon S3 Glacier ストレージクラスにある場合、
read_restored_glacier_objects
テーブルプロパティをfalse
に設定しても効果はありません。例えば、次のコマンドを実行したとします。
ALTER TABLE
table_name
SET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')Iceberg および Delta Lake テーブルでは、コマンドは「
サポートされていないテーブルプロパティキー: read_restored_glacier_objects
」というエラーを生成します。Hudi テーブルでは、ALTER TABLE
コマンドはエラーを発生しませんが、Amazon S3 Glacier オブジェクトはまだスキップされません。ALTER TABLE
コマンドの後にSELECT
クエリを実行すると、引き続きすべてのオブジェクトが返されます。 -
タイムスタンプクエリ – 現在、Hudi リアルタイムテーブルのタイムスタンプ列の読み取りを試みるクエリは、失敗するか、または空の結果を生成します。この制限は、タイムスタンプ列を読み取るクエリにのみ適用されます。同じテーブルのタイムスタンプ以外の列のみを含むクエリは成功します。
失敗したクエリは、次のようなメッセージを返します:
GENERIC_INTERNAL_ERROR: クラス org.apache.hadoop.io.ArrayWritable をクラス org.apache.hadoop.hive.serde2.io.TimestampWritableV2 にキャストできません (org.apache.hadoop.io.ArrayWritable と org.apache.hadoop.hive.serde2.io.TimestampWritableV2 は、ローダー io.trino.server.PluginClassLoader @75c67992 の名前のないモジュール内にあります)