カタログ(Apache Iceberg REST カタログや Apache Hive カタログなど)を作成すると、Lakehouse ランタイム カタログ 内に管理エンドポイントが確立されます。 このエンドポイントは基盤となる Cloud Storage バケットを指し、クエリエンジンとオープンソース ワークロードがテーブルと直接やり取りできるメタデータ レイヤを提供します。
Lakehouse for Apache Iceberg のカタログを作成する場合は、ストレージ アクセスの委任にエンドユーザー認証情報または認証情報ベンディング モードを選択できます。
始める前に
-
BigLake API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
必要なロール
カタログの作成に必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。
-
すべて:
- プロジェクトに対する BigLake 管理者 (
roles/biglake.admin) - ストレージ管理者 (
roles/storage.admin) プロジェクトに対する
- プロジェクトに対する BigLake 管理者 (
-
認証情報ベンディング モードで自動プロビジョニングされた Lakehouse ランタイム カタログ サービス アカウント:
Storage オブジェクト ユーザー (
roles/storage.objectUser) ターゲット Cloud Storage バケットに対する。カタログを作成したら、ストレージ バケットに対する Storage オブジェクト ユーザーロール(roles/storage.objectUser)を、カタログの自動プロビジョニングされた Lakehouse ランタイム カタログ サービス アカウントに明示的に付与します。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
カタログを作成
カタログ エンドポイントを作成します。
コンソール
コンソールで、[Lakehouse] ページを開きます。 Google Cloud
[**カタログを作成**] を選択します。[カタログを作成] ページが開きます。
カタログの構成を選択します。
- Apache Iceberg REST カタログを作成するには、[Iceberg REST カタログ] を選択します。
- Apache Hive カタログを作成するには、[Hive カタログ] を選択します。
カタログを構成します。
- [Iceberg REST カタログ] を選択した場合は、カタログ タイプとして [Cloud Storage バケット] を選択し、カタログで使用する Cloud Storage バケットを選択します。バケットごとにカタログは 1 つしか作成できません。カタログ名はバケット名と一致します。
- [Hive カタログ] を選択した場合は、一意のカタログ名を入力し、関連する Cloud Storage パスを選択します。
[**認証方法**] で、[**エンドユーザーの認証情報**] または [**認証情報ベンディング モード**] を選択します。
[認証情報ベンディング モード] を選択した場合、自動プロビジョニングされた Lakehouse ランタイム カタログ サービス アカウントには、関連するすべての Cloud Storage バケットに対する明示的な [Storage オブジェクト ユーザー] ロール(
roles/storage.objectUser)が必要です。デフォルトでは、まったくアクセスできません。このロールがないと、ベンディングされた認証情報にはストレージ書き込みを実行するのに十分なスコープがありません。[作成] を選択します。
カタログが作成され、[カタログの詳細] ページが開きます。
[認証方法] で [バケットの権限を設定] を選択します。
ダイアログで [確認] を選択します。
これにより、カタログのサービス アカウントに、関連するすべてのストレージ バケットに対する Storage オブジェクト ユーザーロール(
roles/storage.objectUser)が付与されていることが確認されます。gcloudまたは Terraform を使用してカタログを作成する場合は、このロールを手動で付与する必要があります。
gcloud
gcloud を使用してカタログを作成するには、gcloud biglake iceberg catalogs create コマンドを実行します。
BigLake カタログを作成する
BigLake カタログを作成するには、--catalog-type を biglake に設定し、デフォルトのウェアハウスのロケーションを指定します。
gcloud biglake iceberg catalogs create CATALOG_ID \ --project="PROJECT_ID" \ --catalog-type="biglake" \ --default-location="DEFAULT_LOCATION" \ [--restricted-locations="RESTRICTED_LOCATIONS"] \ [--credential-mode="CREDENTIAL_MODE"] \ [--primary-location="PRIMARY_LOCATION"]
Cloud Storage バケット カタログを作成する
Cloud Storage バケット カタログを作成するには、--catalog-type を gcs-bucket に設定します。
gcloud biglake iceberg catalogs create CATALOG_ID \ --project="PROJECT_ID" \ --catalog-type="gcs-bucket" \ [--credential-mode="CREDENTIAL_MODE"]
次のように置き換えます。
CATALOG_ID: Lakehouse ランタイム カタログの ID。Cloud Storage バケット カタログの場合、これは Cloud Storage バケットの名前と一致する必要があります。PROJECT_ID: 実際の Google Cloud プロジェクト ID。DEFAULT_LOCATION: カタログデータとメタデータのベースとなる Cloud Storage パス(gs://my-bucket/path形式)。RESTRICTED_LOCATIONS: (省略可)追加で許可されるストレージ バケットまたはパスのカンマ区切りのリスト。CREDENTIAL_MODE: 認証方法。[エンドユーザーの認証情報] にはend-user、[認証情報ベンディング モード] にはvended-credentialsを使用します。PRIMARY_LOCATION: (省略可)BigQuery との互換性を確保するためのカタログのプライマリ リージョン(USやEUなど)。
REST
REST API を使用してカタログ管理エンドポイントを作成するには、POST
リクエストを CreateIcebergCatalog エンドポイントに送信します。
POST /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs?icebergCatalogId=CATALOG_ID
リクエストの本文には、基盤となる Cloud Storage バケット ウェアハウスや認証モードなど、カタログ構成を定義する IcebergCatalog JSON ペイロードを含める必要があります。
次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。CATALOG_ID: Lakehouse ランタイム カタログの ID。