Apache Iceberg テーブルの概要

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

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

テーブルタイプを比較するには、テーブルタイプを比較するをご覧ください。

表オプション

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

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

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

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

管理アクション

Apache Iceberg テーブルに対して次の管理アクションを実行できます。

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

次のステップ