カタログ(Apache Iceberg REST カタログなど)を更新すると、認証情報モード、デフォルトのウェアハウスの場所、基盤となるカタログタイプなどのプロパティを変更できます。
たとえば、単一バケット(gs://)カタログをマルチバケット(bl://)カタログタイプにアップグレード
できます(推奨)。カタログをアップグレードすると、カタログを複数のストレージ バケットにまたがって配置できるなど、大きなメリットがあります。
始める前に
- 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
必要なロール
カタログの更新に必要な権限を取得するには、次の IAM ロールを付与するように管理者に依頼してください。
-
すべて:
- プロジェクトに対する BigLake 管理者 (
roles/biglake.admin) - ストレージ管理者 (
roles/storage.admin) プロジェクトに対する
- プロジェクトに対する BigLake 管理者 (
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
カタログの更新
カタログは、 Google Cloud コンソール、gcloud、または
REST API を使用して更新できます。
コンソール
コンソールで、[Lakehouse] ページを開きます。 Google Cloud
更新するカタログの行で、 [カタログの詳細 > 編集] をクリックします。
[カタログ構成] で、更新する設定を変更します。
[保存] を選択します。
gcloud
オプション 1: カタログ プロパティを更新する
カタログ プロパティ(説明や制限付きロケーションなど)を更新するには、
gcloud beta biglake iceberg catalogs update コマンドを実行します。
gcloud beta 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: 単一バケット(gs://)カタログをマルチバケット(bl://)カタログにアップグレードする(推奨)
既存の単一バケット(gs://)カタログを
マルチバケット(bl://)カタログ(推奨)にアップグレードするには、gcloud beta biglake iceberg catalogs update コマンド
を実行し、--catalog-type パラメータを biglake に設定します。
gcloud beta 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: 単一バケット(gs://)カタログをマルチバケット(bl://)カタログにアップグレードする(推奨)
REST API を使用してタイプをアップグレードするには、PATCH リクエスト
UpdateIcebergCatalog エンドポイントに catalogType を指定して updateMask を行います。
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。