BigQuery 用のカスタム Apache Iceberg カタログのエンドポイントは、Apache Spark や Apache Flink などのオープンソース クエリエンジンをレイクハウス ランタイム カタログに接続します。カスタム カタログ プラグイン(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 プロジェクト。 |
| Namespace(データセット) | 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 データセット] > [テーブル] | プロジェクト > カタログ > Namespace > テーブル(P.C.N.T) |
| ストレージ構成 | データセットまたはテーブルごとに指定された Cloud Storage パス | 複数バケット(bl://)または単一バケット(gs://)カタログ |
| 認証情報のベンディング | サポートされていません(IAM 認証情報を直接使用します)。 | サポートされている(有効期間の短いストレージ アクセス トークンを販売) |
| 障害復旧 | 非対応 | サポート対象(クロスリージョン レプリケーションとフェイルオーバー) |
| 最適な用途 | 既存のデプロイとワークフロー | 新しいワークロードと標準の Iceberg REST クライアント統合 |
次のステップ
- Apache Iceberg 1.10 以降を使用してランタイム カタログを構成します。
- Apache Iceberg 1.9 以前を使用してランタイム カタログを構成する。
- カタログ リソースを作成して管理する。
- BigQuery テーブルでランタイム カタログを使用する。
- Apache Spark ストアド プロシージャを使用する。
- カタログの追加機能をカスタマイズする。