カタログを作成

カタログ(Apache Iceberg REST カタログや Apache Hive カタログなど)を作成すると、Lakehouse ランタイム カタログ 内に管理エンドポイントが確立されます。 このエンドポイントは基盤となる Cloud Storage バケットを指し、クエリエンジンとオープンソース ワークロードがテーブルと直接やり取りできるメタデータ レイヤを提供します。

Lakehouse for Apache Iceberg のカタログを作成する場合は、ストレージ アクセスの委任にエンドユーザー認証情報または認証情報ベンディング モードを選択できます。

始める前に

  1. プロジェクト Google Cloud に対して課金が有効になっていることを確認します

  2. BigLake API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API の有効化

必要なロール

カタログの作成に必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。

  • すべて:
  • 認証情報ベンディング モードで自動プロビジョニングされた Lakehouse ランタイム カタログ サービス アカウント: Storage オブジェクト ユーザー roles/storage.objectUser) ターゲット Cloud Storage バケットに対する。カタログを作成したら、ストレージ バケットに対する Storage オブジェクト ユーザーロール(roles/storage.objectUser)を、カタログの自動プロビジョニングされた Lakehouse ランタイム カタログ サービス アカウントに明示的に付与します。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

カタログを作成

カタログ エンドポイントを作成します。

コンソール

  1. コンソールで、[Lakehouse] ページを開きます。 Google Cloud

    Lakehouse に移動

  2. [**カタログを作成**] を選択します。[カタログを作成] ページが開きます。

  3. カタログの構成を選択します。

    • Apache Iceberg REST カタログを作成するには、[Iceberg REST カタログ] を選択します。
    • Apache Hive カタログを作成するには、[Hive カタログ] を選択します。
  4. カタログを構成します。

    • [Iceberg REST カタログ] を選択した場合は、カタログ タイプとして [Cloud Storage バケット] を選択し、カタログで使用する Cloud Storage バケットを選択します。バケットごとにカタログは 1 つしか作成できません。カタログ名はバケット名と一致します。
    • [Hive カタログ] を選択した場合は、一意のカタログ名を入力し、関連する Cloud Storage パスを選択します。
  5. [**認証方法**] で、[**エンドユーザーの認証情報**] または [**認証情報ベンディング モード**] を選択します。

    [認証情報ベンディング モード] を選択した場合、自動プロビジョニングされた Lakehouse ランタイム カタログ サービス アカウントには、関連するすべての Cloud Storage バケットに対する明示的な [Storage オブジェクト ユーザー] ロール(roles/storage.objectUser)が必要です。デフォルトでは、まったくアクセスできません。このロールがないと、ベンディングされた認証情報にはストレージ書き込みを実行するのに十分なスコープがありません。

  6. [作成] を選択します。

    カタログが作成され、[カタログの詳細] ページが開きます。

  7. [認証方法] で [バケットの権限を設定] を選択します。

  8. ダイアログで [確認] を選択します。

    これにより、カタログのサービス アカウントに、関連するすべてのストレージ バケットに対する Storage オブジェクト ユーザーロール(roles/storage.objectUser)が付与されていることが確認されます。 gcloud または Terraform を使用してカタログを作成する場合は、このロールを手動で付与する必要があります。

gcloud

gcloud を使用してカタログを作成するには、gcloud biglake iceberg catalogs create コマンドを実行します。

BigLake カタログを作成する

BigLake カタログを作成するには、--catalog-typebiglake に設定し、デフォルトのウェアハウスのロケーションを指定します。

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-typegcs-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 との互換性を確保するためのカタログのプライマリ リージョン(USEU など)。

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。