Lakehouse ランタイム カタログを使用すると、ボーダーレス Lakehouse の既存のカタログ エンドポイントのプロパティを変更できます。
Apache Iceberg REST カタログ エンドポイントの場合、認証情報モード、デフォルトのウェアハウス ロケーション、カタログタイプを更新できます。たとえば、単一バケット カタログを複数バケット カタログ(推奨)にアップグレードして、カタログが複数のストレージ バケットにまたがるようにできます。
始める前に
- Lakehouse ランタイム カタログについてを読み、Lakehouse ランタイム カタログの仕組みとサービスの制限事項を理解する。
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
必要なロール
カタログの更新に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
すべて:
- プロジェクトに対する BigLake 管理者 (
roles/biglake.admin) - プロジェクトに対するストレージ管理者 (
roles/storage.admin)
- プロジェクトに対する BigLake 管理者 (
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
カタログの更新
カタログを更新するには、 Google Cloud コンソール、gcloud、または REST API を使用します。
コンソール
Google Cloud コンソールで、[Lakehouse] ページを開きます。
更新するカタログの行で、 [カタログのその他の操作] > [編集] をクリックします。
[カタログ構成] で、更新する設定を変更します。
[保存] を選択します。
gcloud
オプション 1: カタログ プロパティを更新する
カタログ プロパティ(説明や制限付きロケーションなど)を更新するには、gcloud biglake iceberg catalogs update コマンドを実行します。
gcloud biglake iceberg catalogs update CATALOG_ID \ --project="PROJECT_ID" \ [--description="DESCRIPTION"] \ [--credential-mode="CREDENTIAL_MODE"] \ [--restricted-locations="RESTRICTED_LOCATIONS"]
次のように置き換えます。
CATALOG_ID: Lakehouse ランタイム カタログの ID。PROJECT_ID: 実際の Google Cloud プロジェクト ID。DESCRIPTION: (省略可)カタログの説明。CREDENTIAL_MODE: (省略可)認証方法。エンドユーザー認証情報にはend-userを使用し、認証情報ベンディング モードにはvended-credentialsを使用します。RESTRICTED_LOCATIONS: (省略可)許可される追加のストレージ バケットまたはパスのカンマ区切りのリスト。注意: 重複する複数のパスまたはバケットを指定すると、メタデータの競合、偶発的なデータの上書き、権限の漏洩などのセキュリティ問題が発生する可能性があります。
オプション 2: 単一バケットのカタログを複数バケットのカタログにアップグレードする(推奨)
既存の単一バケット カタログを複数バケット カタログにアップグレードするには(推奨)、gcloud biglake iceberg catalogs update コマンドを実行し、--catalog-type パラメータを biglake に設定します。
gcloud biglake iceberg catalogs update CATALOG_ID \ --project="PROJECT_ID" \ --catalog-type="biglake"
REST
オプション 1: カタログ プロパティを更新する
REST API を使用してカタログのプロパティ(説明など)を変更するには、適切な updateMask を指定して UpdateIcebergCatalog エンドポイントに PATCH リクエストを送信します。
PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.description
リクエストの本文には、更新するフィールドを含む IcebergCatalog JSON ペイロードを含める必要があります。
{
"description": "Updated catalog description"
}
オプション 2: 単一バケットのカタログを複数バケットのカタログにアップグレードする(推奨)
REST API を使用してタイプをアップグレードするには、updateMask に catalogType を指定して、UpdateIcebergCatalog エンドポイントに PATCH リクエストを送信します。
PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.catalogType
リクエスト本文には、新しいカタログタイプを含む IcebergCatalog JSON ペイロードを含める必要があります。
{
"catalogType": "BIGLAKE"
}
次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。CATALOG_ID: Lakehouse ランタイム カタログの ID。
注: 複数バケット カタログにアップグレードした後、クライアント クエリ エンジンの構成(Spark や Trino など)を更新して、bl:// 形式(bl://projects/PROJECT_ID/catalogs/CATALOG_ID)でウェアハウス パスを指定します。