Iceberg テーブルデータをクエリする
Iceberg データセットをクエリするには、次のような標準の SELECT
ステートメントを使用します。クエリは Apache Iceberg format v2 spec
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