View a markdown version of this page

考量和限制 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

考量和限制

當您使用 Athena 讀取 Apache Hudi 資料表時,請考慮下列幾點。

  • 讀取和寫入操作 – Athena 可以讀取壓縮的 Hudi 資料集,但無法寫入 Hudi 資料。

  • Hudi 版本 – Athena 支援 Hudi 版本 0.14.0 (預設) 和 0.15.0。Athena 無法保證與使用較新版本 Hudi 建立之資料表的讀取相容性。如需有關 Hudi 功能和版本控制的詳細資訊,請參閱 Apache 網站上的 Hudi 文件。請注意,Athena 上的 Hudi 連接器 0.15.0 版不支援引導資料表。若要使用 Hudi 連接器的 0.15.0,請設定下列資料表屬性:

    ALTER TABLE table_name SET TBLPROPERTIES ('athena_enable_native_hudi_connector_implementation' = 'true')
  • 跨帳戶查詢 – Hudi 連接器的 0.15.0 版不支援跨帳戶查詢。

  • 查詢類型 – 目前,Athena 支援快照查詢和讀取最佳化查詢,但不支援增量查詢。在 MoR 資料表上,所有公開給讀取最佳化查詢的資料均經過壓縮。這可提供良好的效能,但不包含最新的 delta 遞交。快照查詢包含最新資料,但會產生一些運算開銷,這使得這些查詢的效能較為不佳。如需有關資料表和查詢類型之間取捨的詳細資訊,請參閱 Apache Hudi 文件中的資料表和查詢類型

  • 增量查詢 – Athena 不支援增量查詢。

  • CTAS – Athena 不支援對 Hudi 資料執行 CTASINSERT INTO。如果您希望 Athena 提供寫入 Hudi 資料集的支援,請將意見回饋傳送至

    如需有關寫入 Hudi 資料的詳細資訊,請參閱下列資源:

  • MSCK REPAIR TABLE – 不支援在 Athena 中對 Hudi 資料表使用 MSCK REPAIR TABLE。如果您需要載入未在 中建立的 Hudi 資料表 AWS Glue,請使用 ALTER TABLE ADD PARTITION

  • 略過不支援的 Amazon Glacier 物件 – 如果 Apache Hudi 資料表中的物件位於 Amazon 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 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 的未命名模組中)

  • 0.15.0 Hudi Connector 上的 Lake Formation 許可 – 此限制僅適用於透過將資料表屬性設定為 來選擇使用原生 Hudi 連接器 (0.15.0 版) athena_enable_native_hudi_connector_implementationtrue。根據預設,Athena 使用 Hudi 連接器 0.14.0 版,這不需要此額外許可。若要查詢 Lake Formation 保護的資料表,您必須將 Lake Formation 許可授予資料表的資料位置和.hoodie中繼資料目錄。例如,如果您的 Hudi 資料表位於 s3://bucket/hudi-table/,您必須註冊並授予許可給 Lake Formation s3://bucket/hudi-table/.hoodie/中的 s3://bucket/hudi-table/和 。.hoodie 目錄包含 Athena 在查詢規劃期間需要讀取的中繼資料檔案 (例如 hoodie.properties)。如果沒有.hoodie目錄的許可,查詢將會失敗,並出現許可遭拒錯誤。