查詢冰山表數據 - Amazon Athena

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

查詢冰山表數據

若要查詢 Iceberg 資料集,請使用標準 SELECT 陳述式,如下所示。查詢遵循 Apache 冰山格式 v2 規範,並執 merge-on-read 行位置和相等刪除。

SELECT * FROM [db_name.]table_name [WHERE predicate]

為了盡量縮短查詢時間,所有述詞都會被推送到資料所在的位置。

如需有關時間旅行和版本旅行查詢的資訊,請參閱執行時間旅程和版本旅程查詢

使用冰山表創建和查詢視圖

若要在 Iceberg 資料表上建立和查詢 Athena 檢視,請遵循 使用檢視 中所述使用 CREATE VIEW 檢視。

範例:

CREATE VIEW view1 AS SELECT * FROM iceberg_table
SELECT * FROM view1

如果您有興趣使用 Iceberg 檢視規格來建立檢視,請聯絡 athena-feedback@amazon.com

查詢冰山表中繼資料

SELECT查詢中,您可以在之後使用以下屬性 table_name查詢冰山表元數據:

  • $files – 顯示資料表的目前資料檔案。

  • $manifests – 顯示資料表的目前檔案清單檔案。

  • $history – 顯示資料表的歷程記錄。

  • $partitions – 顯示資料表的目前分割區。

  • $snapshots – 顯示資料表的快照。

  • $refs – 顯示資料表的參考。

範例

下列陳述式會列出 Iceberg 資料表的檔案。

SELECT * FROM "dbname"."tablename$files"

下列陳述式會列出 Iceberg 資料表的清單檔案。

SELECT * FROM "dbname"."tablename$manifests"

下列陳述式會顯示 Iceberg 資料表的歷程記錄。

SELECT * FROM "dbname"."tablename$history"

下列範例會顯示 Iceberg 資料表的分割區。

SELECT * FROM "dbname"."tablename$partitions"

下列範例會列出 Iceberg 資料表的快照。

SELECT * FROM "dbname"."tablename$snapshots"

下列範例會顯示 Iceberg 資料表的參考。

SELECT * FROM "dbname"."tablename$refs"

使用 Lake Formation 的細粒度訪問控制

Athena 引擎版本 3 支援 Lake Formation 與 Iceberg 資料表的精細存取控制,包括資料欄層級和資料列層級的安全存取控制。此存取控制適用於時間歷程查詢及已執行結構描述演變的資料表。如需詳細資訊,請參閱Lake Formation 精細存取控制和 Athena 工作群組

如果您在 Athena 以外創建了冰山表,請使用 Apache 冰山SDK版本 0.13.0 或更高版本,以便將您的冰山表列信息填充在. AWS Glue Data Catalog如果您的 Iceberg 資料表不包含中的欄資訊 AWS Glue,您可以使用 Athena ALTER TABLE SET TBLPROPERTIES 陳述式或最新的 Iceberg SDK 來修正表格並更新中的欄資訊。 AWS Glue