既存の Apache Iceberg テーブルを登録すると、そのメタデータがレイクハウス ランタイム カタログに統合され、テーブルデータが名前空間内でクエリと管理に使用できるようになります。このプロセスは、新しい空のテーブル構造とその関連ストレージを初期化するテーブル作成とは異なります。
始める前に
-
BigLake API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。 - Apache Iceberg REST カタログのエンドポイントを使用して、Lakehouse ランタイム カタログを設定します。
必要なロール
テーブルの登録に必要な権限を取得するには、プロジェクトとストレージ バケットに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
テーブルを登録します。
- BigLake 管理者(
roles/biglake.admin)- プロジェクト - ストレージ管理者(
roles/storage.admin) - ターゲット Cloud Storage バケット
- BigLake 管理者(
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
テーブルを登録する
既存の Iceberg テーブルを登録する。
gcloud
gcloud を使用してテーブルを登録するには、gcloud biglake iceberg tables register コマンドを実行します。
gcloud biglake iceberg tables register TABLE_NAME \ --project="PROJECT_ID" \ --catalog="CATALOG_ID" \ --namespace="NAMESPACE_NAME" \ --metadata-location="METADATA_LOCATION" \ [--overwrite]
次のように置き換えます。
TABLE_NAME: 登録済みテーブルに割り当てる名前。PROJECT_ID: Google Cloud プロジェクト ID。CATALOG_ID: カタログ ID。NAMESPACE_NAME: カタログの Namespace 名。METADATA_LOCATION: テーブルの最新のメタデータ JSON ファイルの Cloud Storage URI(例:gs://my-bucket/path/to/metadata/00001.metadata.json)。--overwrite: (省略可)テーブルがすでに存在する場合は上書きします。
REST
REST API を使用して Iceberg テーブルを登録するには、RegisterIcebergTable エンドポイントに POST リクエストを行います。
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/register
リクエストの本文には、次の構造の JSON ペイロードを含める必要があります。
{
"name": "TABLE_NAME",
"metadata-location": "METADATA_LOCATION",
"overwrite": OVERWRITE
}
次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクト ID。CATALOG_ID: カタログ ID。NAMESPACE_NAME: カタログの Namespace 名。TABLE_NAME: 登録済みテーブルの名前。METADATA_LOCATION: テーブルの最新のメタデータ JSON ファイルの Cloud Storage URI。OVERWRITE: テーブルが存在する場合はtrue、存在しない場合はfalse。
次のステップ
- テーブルを一覧表示する方法を学習する。
- テーブルをクエリする方法を学習する。
- テーブルの ACL を管理する方法を学習する。