カタログ(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 カタログ] を選択します。
[Cloud Storage バケットを選択] に、カタログで使用する Cloud Storage バケットの名前を入力します。または、[参照] を選択して、既存のバケットのリストから選択するか、バケットを作成します。 Cloud Storage バケットごとにカタログは 1 つしか作成できません。
[**認証方法**] で、[**エンドユーザー認証情報**] または [**認証情報ベンダーモード**] を選択します。
[**認証情報ベンダーモード**] を選択した場合、自動プロビジョニングされた Lakehouse ランタイム カタログ サービス アカウントには、ターゲット Cloud Storage バケットに対する明示的な [**Storage オブジェクト ユーザー**] ロール(
roles/storage.objectUser)が必要です。デフォルトでは、閲覧者のみのアクセス権で作成されます。このロールがないと、ベンダーの認証情報にはストレージ書き込みを実行するのに十分なスコープがありません。[作成] を選択します。
カタログが作成され、[カタログの詳細] ページが開きます。
[認証方法] で、[バケットの権限を設定] を選択します。
ダイアログで [確認] を選択します。
これにより、カタログのサービス アカウントにストレージ バケットに対する Storage オブジェクト管理者ロールがあることが確認されます。
gcloudまたは Terraform を使用してカタログを作成する場合は、このロールを手動で付与する必要があります。
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。