BigQuery 用のカスタム Apache Iceberg カタログ エンドポイントは、Apache Spark や Apache Flink などのオープンソース クエリエンジンを Lakehouse ランタイム カタログに接続します。カスタム カタログ プラグイン(BigQueryMetastoreCatalog)を統合することで、このエンドポイントを使用すると、データファイルとメタデータ ファイルを Cloud Storage に保存しながら、BigQuery を介して Apache Iceberg テーブルのメタデータを直接管理してクエリを実行できます。
カスタム Iceberg カタログの仕組み
カスタム Apache Iceberg カタログは、JAR ライブラリで提供されるカスタム カタログ実装(org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog)を使用します。コンピューティング ワークロードが Managed Service for Apache Spark で実行されると、エンジンはこのプラグインを使用して、Apache Iceberg テーブルのメタデータ ストアとして BigQuery とやり取りします。
ワークフローは次のように動作します。
- カタログの実装: クエリエンジンは、BigQuery Metastore カタログ JAR を読み込み、
org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalogを使用するように Spark セッション カタログ プロパティを構成します。 - メタデータ管理: Spark SQL または DataFrame API を使用してテーブルを作成または変更すると、プラグインはデータセットとテーブルの定義を BigQuery に保存します。
- データ ストレージ: Apache Iceberg メタデータ ファイル(
metadata.json、マニフェスト リスト、マニフェスト)とデータファイル(Parquet ファイルなど)は、指定した Cloud Storage ウェアハウス パスに直接保存されます。 - クロスエンジン アクセス: メタデータが BigQuery に登録されているため、Spark などのオープンソース エンジンと BigQuery から直接テーブルをクエリできます。
リソース階層
BigQuery エンドポイント用のカスタム Apache Iceberg カタログは、メタデータを次の階層に整理します。
| リソース | 説明 |
|---|---|
| プロジェクト | BigQuery リソースと Cloud Storage ウェアハウス ストレージを含む Google Cloud プロジェクト。 |
| 名前空間(データセット) | Iceberg 名前空間として機能するように構成された BigQuery データセット。このデータセット内に作成されるテーブルのデフォルトの Cloud Storage ロケーションを定義します。 |
| テーブル | スキーマ、スナップショット、メタデータ ポインタが BigQuery で追跡され、データファイルが Cloud Storage に存在する Apache Iceberg テーブル。 |
カスタム Iceberg カタログと Iceberg REST カタログを比較する
次の表は、BigQuery エンドポイント用のカスタム Apache Iceberg カタログと Apache Iceberg REST カタログ エンドポイントの主な違いをまとめたものです。
| 機能 | BigQuery 用のカスタム Iceberg カタログ | Apache Iceberg REST カタログ エンドポイント(推奨) |
|---|---|---|
| Catalog API 標準 | カスタム プラグイン(BigQueryMetastoreCatalog) |
オープン標準の Apache Iceberg REST Catalog API |
| カタログ階層 | プロジェクト > BigQuery データセット > テーブル | プロジェクト > カタログ > 名前空間 > テーブル(P.C.N.T) |
| ストレージ構成 | データセットまたはテーブルごとに指定された Cloud Storage パス | マルチバケット カタログまたはシングルバケット カタログ |
| 認証情報のベンディング | サポート対象外(直接 IAM 認証情報を使用) | サポート対象(有効期間の短いストレージ アクセス トークンを販売) |
| 障害復旧 | 非対応 | サポート対象(クロスリージョン レプリケーションとフェイルオーバー) |
| 最適な用途 | 既存のデプロイとワークフロー | 新しいワークロードと標準の Iceberg REST クライアント統合 |
次のステップ
- Apache Iceberg 1.10 以降を使用してランタイム カタログを構成する。
- Apache Iceberg 1.9 以前を使用してランタイム カタログを構成する。
- カタログ リソースを作成して管理する。
- BigQuery テーブルでランタイム カタログを使用する。
- Apache Spark ストアド プロシージャを使用する。
- 追加のカタログ機能をカスタマイズする。