查询 Iceberg 表数据
若要查询 Iceberg 数据集,请使用标准 SELECT
语句,如下所示。查询遵循 Apache Iceberg 格式 v2 规范
SELECT * FROM [
db_name
.]table_name
[WHEREpredicate
]
为了优化查询时间,所有谓词都会向下推送到数据所在的位置。
有关时间旅行和版本旅行查询的信息,请参阅执行时间旅行和版本旅行查询。
使用 Iceberg 表创建和查询视图
要在 Iceberg 表上创建和查询 Athena 视图,请使用 使用视图 中所述的 CREATE VIEW
视图。
例如:
CREATE VIEW view1 AS SELECT * FROM
iceberg_table
SELECT * FROM view1
如果您想使用 Iceberg 视图规范
查询 Iceberg 表元数据
在 SELECT
查询中,您可以在 table_name
之后使用以下属性来查询 Iceberg 表元数据:
-
$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 支持使用 Iceberg 表进行 Lake Formation 精细访问控制,包括列级和行级安全访问控制。这种访问控制适用于时间旅行查询和已执行架构发展的表。有关更多信息,请参阅 Lake Formation 精细访问控制和 Athena 工作组。
如果您在 Athena 外部创建了 Iceberg 表,请使用 Apache Iceberg SDK