Apache Iceberg テーブルの概要

Lakehouse ランタイム カタログIceberg REST カタログ エンドポイントで管理される Apache Iceberg テーブルは、オープンソースの Apache Iceberg テーブル仕様に準拠したオープンで相互運用可能な Iceberg テーブルです。このテーブルは、Iceberg 互換の処理エンジンまたは BigQuery を使用して読み取りと書き込みを行うことができます。

このドキュメントでは、これらのテーブルを「Lakehouse Iceberg テーブル」または「Iceberg テーブル」と呼びます。

テーブル オプションを構成することで、次の機能を有効にできます。

  1. 読み取り / 書き込みの相互運用性(プレビュー): BigQuery、Managed Service for Apache Spark、オープンソース エンジン(Apache Spark、Apache Flink、Trino)などの Iceberg 互換エンジン、サードパーティ製エンジン(Snowflake など)を含む複数のエンジンに対するシームレスな読み取り / 書き込みサポート。
  2. 自動テーブル管理(プレビュー): 圧縮やガベージ コレクションなどの自動テーブル管理(ストレージの最適化)。

上記の機能に加えて、Lakehouse Iceberg テーブル(プレビュー)では、次の機能もデフォルトでサポートされています。

  1. BigQuery データ定義言語(プレビュー): Spark、Flink、Trino などの Iceberg 互換エンジンを使用してテーブルを作成または更新するだけでなく、BigQuery DDL ステートメント(CREATE TABLEALTER TABLEDROP TABLE など)を使用して Iceberg テーブルを作成または更新することもできます。テーブルが作成されると、これらのエンジンと BigQuery で読み取りと書き込みが可能になり、Lakehouse ランタイム カタログによって管理される同じカタログと名前空間の構成要素になります。
  2. BigQuery の認証情報ベンダーのサポート(プレビュー): BigQuery は、Lakehouse Runtime Catalog で Iceberg テーブルを読み書きするときに、認証に認証情報ベンダーを使用することをサポートしています。認証情報のベンディングはカタログ レベルで設定できます。

管理アクション

Apache Iceberg テーブルでは、次の管理アクションを実行できます。

  • テーブルを作成する: Google Cloud コンソール、Spark、Trino、または Iceberg REST カタログ API(CreateIcebergTable)を使用して、カタログ名前空間内に Apache Iceberg テーブルを作成します。
  • テーブルを一覧表示する: Google Cloud コンソール、Spark、Trino、または Iceberg REST Catalog API(ListIcebergTableIdentifiers)を使用して、名前空間内のテーブル識別子を表示します。
  • テーブルの詳細を取得する: Google Cloud コンソール、Spark、Trino、または Iceberg REST カタログ API(GetIcebergTableLoadIcebergTableCredentials)を使用して、テーブルのスキーマ、プロパティ、認証情報を検査します。
  • データを挿入する: Spark または Trino を使用して、Iceberg テーブルにデータ行を追加します。
  • テーブルにクエリを実行する: 4 部構成のテーブル名を使用して、Spark、Trino、BigQuery から Iceberg テーブルに対してクエリを実行します。
  • DML を使用してデータを変更する: BigQuery、Spark、Trino の DML ステートメントを使用して、Iceberg テーブルのデータ行を更新、削除、または統合します。
  • テーブルを変更する: Google Cloud コンソール、Spark、Trino、または Iceberg REST カタログ API(UpdateIcebergTable)を使用して、テーブル スキーマを進化させ、メタデータ プロパティを更新します。
  • テーブル オプションを構成する: BigQuery DML と自動テーブル管理を有効にするプロパティを構成します。
  • テーブル ACL の管理: Iceberg テーブルの IAM ポリシーを表示して更新し、特定のプリンシパル(get-iam-policyset-iam-policy)のアクセスを制御します。
  • Iceberg V1 テーブルを V2 にアップグレードする: 既存の Iceberg V1 テーブルをサポートされている V2 形式にアップグレードします。
  • Iceberg V3 テーブルでバイナリ削除ベクトルを使用する: Iceberg V3 テーブルで削除パフォーマンスを最適化するために、バイナリ削除ベクトルを有効にします。
  • テーブルを削除する: Google Cloud コンソール、Spark、Trino、または Iceberg REST カタログ API(DeleteIcebergTable)を使用して、基盤となるストレージ ファイルを削除せずに、カタログからテーブル登録を削除します。

次のステップ