Apache Iceberg テーブルを作成すると、テーブル メタデータが Lakehouse ランタイム カタログの Namespace に登録されます。
テーブルの作成時に Namespace レベルまたはテーブルレベルで明示的なストレージの場所を指定しない場合、Namespace とテーブルの識別子を追加することで、カタログのデフォルトの場所(カタログのベースとなる Cloud Storage バケットから派生)にテーブルのメタデータとデータ ディレクトリが自動的に作成されます。
Lakehouse ランタイム カタログは、クエリエンジンとの統合に加えて、オープンソースの Iceberg REST カタログ API 仕様(POST /v1/{prefix}/namespaces/{namespace}/tables)を実装しているため、互換性のある
REST クライアントでテーブルを直接作成できます。
始める前に
さまざまな種類のテーブルと、それらを使用する場合の影響については、テーブルの概要をご覧ください。
-
BigLake API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
必要なロール
テーブルの作成に必要な権限を取得するには、プロジェクトとストレージ バケットに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
すべて:
- BigLake 管理者(
roles/biglake.admin)- プロジェクト - ストレージ管理者(
roles/storage.admin)- ターゲット Cloud Storage バケット
- BigLake 管理者(
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
テーブルを作成する
Iceberg テーブルを作成します。
コンソール
コンソールで、[Lakehouse] に移動します。 Google Cloud
既存のカタログを選択するか、カタログがない場合は作成します。
メニューバーで [+ テーブルを作成] をクリックします。
[**テーブル形式**] で [**Iceberg**] を選択します。
[**テーブル名**] に一意のテーブル名を入力します。
[作成] をクリックします。
テーブルが [Namespace の詳細] ページに表示されます。
Spark
spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
次の値を置き換えます。
NAMESPACE_NAME: Namespace の名前。TABLE_NAME: テーブルの名前。
Trino
CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);
DESCRIBE SCHEMA_NAME.TABLE_NAME;
次の値を置き換えます。
SCHEMA_NAME: スキーマの名前。TABLE_NAME: テーブルの名前。
Trino で BigQuery カタログ連携を使用する場合、テーブルの場所を指定することはできません。スキーマのデフォルトの場所が常に使用されます。
REST
REST API を使用して Iceberg テーブルを作成するには、CreateIcebergTable エンドポイントに POST リクエストを送信します。
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables
リクエストの本文には、テーブル スキーマ、パーティション仕様、初期プロパティを定義する有効な Iceberg CreateTableRequest JSON ペイロードを含める必要があります。
次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。CATALOG_ID: Lakehouse ランタイム カタログの ID。NAMESPACE_NAME: カタログ Namespace の名前。
次のステップ
- テーブルを一覧表示する方法を学習する。
- テーブルにデータを挿入する方法を学習する。