このドキュメントでは、BigLake metastore Apache Iceberg REST カタログの概要について説明します。これには、リソース階層とサポートされているカタログ タイプが含まれます。
BigLake Metastore の Apache Iceberg REST カタログは、リソースの階層を使用してデータを整理します。次の表に、これらのリソースの概要を示します。
リソース階層
| リソース | 説明 |
|---|---|
| カタログ | 最上位のコンテナであるカタログを使用すると、Namespace とテーブルを異なるカタログに分割して、論理グループに整理できます。 |
| 名前空間 | カタログ内のテーブルを整理するために使用される論理グループ。データベース、スキーマ、ディレクトリのように機能します。 |
| テーブル | テーブルには、クエリ可能な行と列の定義が含まれています。 |
サポートされているカタログ タイプ
クライアントを構成するときに、ウェアハウスのロケーションを指定します。この選択により、カタログの動作と他の Google Cloudサービスとの統合方法が決まります。次の表に、サポートされているカタログ タイプを示します。
| カタログ タイプ | 説明 |
|---|---|
| Cloud Storage バケット | カタログ内のすべてのデータは単一の Cloud Storage バケットに保存されます。複数のバケット間で共有されるデータには、複数のカタログが必要です。 |
| BigQuery フェデレーション | Iceberg REST カタログを使用して、BigQuery に表示されるテーブルの管理とクエリを実行できます。詳細については、BigQuery とのカタログ連携をご覧ください。 |
カタログ ウェアハウスの詳細
推奨
Cloud Storage バケット ウェアハウス(
gs://): これは、カタログが指定した Cloud Storage バケット内の Iceberg メタデータとデータファイルを直接管理する標準的なアプローチです。このオプションを使用すると、データ レイアウトを直接制御でき、きめ細かいアクセス制御のための認証情報ベンダーがサポートされます。これにより、Apache Iceberg 用の BigLake テーブルを作成して管理できます。たとえば、カタログを保存するためにバケットを作成し、そのバケットに
iceberg-bucketという名前を付けた場合、カタログ名とバケット名の両方がiceberg-bucketになります。これは、後で BigQuery でカタログをクエリするときに P.C.N.T 構文を使用して使用されます。たとえば、my-project.biglake-catalog-id.quickstart_namespace.quickstart_tableのようにします。
旧 SKU
- BigQuery 連携(
bq://): この方法では、カタログ リソースを作成しなくても、Iceberg REST カタログを使用して BigQuery に表示されるテーブルを管理し、クエリを実行できます。詳細については、BigQuery とのカタログ連携をご覧ください。
P.C.N.T の命名規則
BigQuery から BigLake Metastore テーブルをクエリする場合は、4 つの部分からなる命名構造を使用します。これは P.C.N.T と呼ばれることがよくあります。
- Project: カタログを所有する Google Cloud プロジェクト ID。
- Catalog: BigLake metastore カタログの名前。
- Namespace: Iceberg 名前空間(BigQuery データセットに相当)。
- Table: テーブルの名前。
例: my-project.biglake-catalog-id.my-namespace.my-table
BigQuery とのカタログ連携
Iceberg REST カタログ インターフェースを使用して、BigQuery に表示されるテーブルを管理し、クエリを実行できます。BigQuery 連携カタログでは、カタログ リソースを作成する必要はありません。BigQuery API が有効になっているプロジェクトで使用できます。この機能には次のような利点があります。
- BigQuery で外部 Iceberg テーブルを作成して管理します。
- Iceberg REST カタログを使用して、BigQuery 内の Apache Iceberg 用 BigLake テーブルのクエリを実行します。
これらのリソースは BigQuery によって管理されるため、該当する必要な権限が必要です。連携カタログでは認証情報のベンディングはサポートされていません。
フェデレーションを有効にするには、Iceberg REST カタログを使用するのクライアント構成例の WAREHOUSE_PATH フィールドで、bq://projects/PROJECT_ID ウェアハウス形式を使用してクライアントを構成します。bq://projects/PROJECT_ID/locations/LOCATION 形式を使用して BigQuery のロケーションを含め、今後のリクエストを単一のロケーションに制限することもできます。