本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Apache Iceberg 資料表
Athena 支援 Apache 冰山資料表的讀取、時間旅行、寫入和 DDL 查詢,這些資料表使用 Apache 拼花格式處理資料及其中繼存放區的 AWS Glue 目錄。
Apache Iceberg
如需 Apache Iceberg 的相關詳細資訊,請參閱 https://iceberg.apache.org/
考量與限制
Athena 對冰山資料表的支援有下列考量和限制:
-
支持冰山版本-Athena 支持阿帕奇冰山版本 1.4.2。
-
僅含 AWS Glue 目錄的表格 — Athena 僅支援根據開放原始碼膠水 AWS Glue 目錄實作所定義的規格,針對目錄
建立的 Iceberg 表格。 -
AWS Glue 僅支援表格鎖定 — 與支援外掛程式自訂鎖定的開放原始碼 Glue 目錄實作不同,Athena 僅支援 AWS Glue 樂觀鎖定。使用 Athena 修改具有任何其他鎖定實作的 Iceberg 資料表將導致潛在的資料遺失和交易中斷。
-
支援的檔案格式 – Athena 中的 Iceberg 檔案格式支援視 Athena 引擎版本耳釘,如下表所示。
Athena 殷勤版本 Parquet ORC Avro 2 是 否 否 3 是 是 是 -
Iceberg v2 資料表 – Athena 只能建立及操作 Iceberg v2 資料表。有關 v1 和 v2 資料表之間的區別,請參閱 Apache Iceberg 文件中的格式版本變更
。 -
顯示不含時區的時間類型 – 以世界協調時間 (UTC) 顯示不含時區類型的時間和時間戳記。如果在時間資料欄的篩選條件表達式中未指定時區,則使用世界協調時間 (UTC)。
-
與時間戳記相關的資料精確度 – 雖然 Iceberg 支持時間戳記資料類型的精度達到微秒,但 Athena 僅在讀取和寫入的時間戳記中支持達毫秒的精度。針對在手動壓縮操作過程中重寫的時間相關資料欄中的資料,Athena 僅保留毫秒精度。
-
不支援的操作 – Iceberg 資料表不支援以下 Athena 操作。
-
Views (檢視) – 使用
CREATE VIEW
建立 Athena 檢視,如 使用檢視 中所述。如果您有興趣使用 Iceberg 檢視規格來建立檢視,請聯絡 athena-feedback@amazon.com 。 -
中不支援 TTF 管理命令 AWS Lake Formation — 雖然您可以使用 Lake Formation 來管理 TransactionTable 格式 (TTF) 的讀取存取權限,例如 Apache 冰山、Apache Hudi 和 Linux 基金會三角洲湖,但您無法使用 Lake Formation 來管理作業的權限,例如
VACUUM
MERGE
,UPDATE
或使OPTIMIZE
用這些表格格式。如需有關 Lake Formation 與雅典娜整合的詳細資訊,請參閱AWS Lake Formation 開發人員指南中的AWS Lake Formation 與 Amazon Athena 搭配使用。 -
依巢狀欄位分割 – 不支援依巢狀欄位分割。嘗試這樣做會產生訊息
NOT_SUPPORTED:不支援依巢狀欄位分割:
column_name
.nested_field_name
。 -
略過不支援的 S3 Glacier 物件 – 如果 Apache Iceberg 資料表中的物件位於 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
查詢。
如果您希望 Athena 支援特定功能,請將意見回饋傳送至 athena-feedback@amazon.com