本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
查詢 Linux Foundation Delta Lake 資料表
Linux Foundation Delta LakeMSCK REPAIR 陳述式。
Delta Lake 格式會儲存每個資料檔案中每個資料欄的最小值和最大值。Athena 實作會利用這項資訊來啟用述詞上的檔案略過功能,從而排除不需要的檔案。
考量和限制
Athena 中的 Delta Lake 支援有下列考量和限制:
-
僅限目錄的資料表 AWS Glue – 僅透過向 註冊的資料表支援原生 Delta Lake 支援 AWS Glue。如果有已在其他中繼存放區註冊的 Delta Lake 資料表,則您仍然可以保留並將其視為您的主要中繼存放區。由於 Delta Lake 中繼資料存放在檔案系統 (例如,在 Amazon S3 中) 而非中繼存放區中,因此 Athena 只需要 中的位置屬性 AWS Glue ,即可從 Delta Lake 資料表讀取。
-
V3 engine only (僅限 V3 引擎) – 只有 Athena 引擎版本 3 才支援 Delta Lake 查詢。您必須確定您建立的工作群組設定為使用 Athena 引擎版本 3。
-
No time travel support (不支援時間歷程) – 不支援使用 Delta Lake 時間歷程功能的查詢。
-
Read only (唯讀) – 不支援寫入
UPDATE、INSERT或DELETE等 DML 陳述式。 -
Lake Formation 支援 – Lake Formation 可用於結構描述與 AWS Glue同步的 Delta Lake 資料表。如需詳細資訊,請參閱《 AWS Lake Formation 開發人員指南》中的搭配使用 AWS Lake Formation 與 Amazon Athena 和設定 Delta Lake 資料表的許可。
-
Limited DDL support (有限的 DDL 支援) – 支援下列 DDL 陳述式:
CREATE EXTERNAL TABLE、SHOW COLUMNS、SHOW TBLPROPERTIES、SHOW PARTITIONS、SHOW CREATE TABLE和DESCRIBE。如需有關使用CREATE EXTERNAL TABLE陳述式的詳細資訊,請參閱 Delta Lake 資料表入門 一節。 -
略過不支援的 Amazon Glacier 物件 – 如果 Linux Foundation Delta Lake 資料表中的物件位於 Amazon Glacier 儲存類別中,請將
read_restored_glacier_objects資料表屬性設定為false不會有任何效果。例如,假設您發出下列命令:
ALTER TABLEtable_nameSET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')對於 Iceberg 和 Delta Lake 資料表,此命令會產生錯誤
不支援的資料表屬性索引鍵:read_restored_glacier_objects。對於 Hudi 資料表,ALTER TABLE命令不會產生錯誤,但仍不會略過 Amazon Glacier 物件。在ALTER TABLE命令繼續傳回所有物件之後執行SELECT查詢。 -
加密的資料表 – Athena 不支援原生讀取 CSE-KMS 加密的 Delta Lake 資料表。這包括 SELECT 陳述式和 DDL 陳述式。
Delta Lake 版本控制和 Athena
Athena 不會使用 Delta Lake 文件中列出的版本控制
-
讀取器版本 – 每個 Delta Lake 資料表都有讀取器版本。目前,這是介於 1 到 3 之間的數字。包含具有 Athena 不支援之讀取器版本的資料表的查詢將會失敗。
-
資料表功能 – 每個 Delta Lake 資料表也可以宣告一組讀取器/寫入器功能。由於 Athena 對 Delta Lake 的支援是唯讀的,因此資料表寫入器功能相容性不適用。不過,對具有不支援資料表讀取器功能的資料表進行查詢將會失敗。
下表顯示 Athena 支援的 Delta Lake 讀取器版本和 Delta Lake 資料表讀取器功能。
| 查詢類型 | 支援的讀取器版本 | 支援的讀取器功能 |
|---|---|---|
| DQL (SELECT 陳述式) | <= 3 | 資料欄映射 |
| DDL | <= 1 | 不適用。讀取器功能只能在讀取器版本為 2 或更高版本的資料表上宣告。 |
-
如需 Delta Lake 資料表功能清單,請參閱 GitHub.com 上資料表功能中的有效功能名稱
-
如需依通訊協定版本列出的 Delta Lake 功能清單,請參閱 GitHub.com 上依通訊協定版本列出的功能
。 GitHub.com.
若要在 Athena 中建立讀取器版本大於 1 的 Delta Lake 資料表,請參閱 同步 Delta Lake 中繼資料。