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 * FROMiceberg_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