BigQuery で Apache Iceberg テーブルを構成する

このページでは、BigQuery の Apache Iceberg テーブルにレプリケーションを行うように Datastream を構成する方法について説明します。

Apache Iceberg テーブルは、標準の BigQuery テーブルと同じフルマネージド エクスペリエンスを提供しますが、お客様所有の Cloud Storage バケットに Apache Iceberg テーブル形式と Parquet ファイル形式でデータを保存します。BigQuery の機能を使用してデータをクエリして分析しながら、データを独自のストレージ バケットに保持できます。

テーブルのメタデータ

Datastream は、BigQuery の宛先に書き込まれる各テーブルに datastream_metadata という名前の STRUCT 列を追加します。

datastream_metadata 列には次のフィールドがあります。

  • UUID: このフィールドには STRING データ型が含まれます。
  • SOURCE_TIMESTAMP このフィールドには INTEGER データ型が含まれます。
  • CHANGE_SEQUENCE_NUMBER このフィールドには STRING データ型が含まれます。 これは、Datastream が各変更イベントに使用する内部シーケンス番号です。
  • CHANGE_TYPE: このフィールドには STRING データ型が含まれます。変更イベントのタイプを示します。追加専用書き込みモードの場合、値は INSERT です。
  • SORT_KEYS: このフィールドには STRING 値の配列が含まれます。この値を使用して、変更イベントを並べ替えることができます。

Apache Iceberg テーブルへのストリーミングを構成する

ストリームを設定して Apache Iceberg テーブルにデータを取り込むには:

  1. データを保存する Cloud Storage バケットを 作成します。
  2. BigQuery で Cloud リソース接続を作成します。このタイプの接続の作成方法については、 Cloud リソース接続を作成して設定するをご覧ください。
  3. 接続サービス アカウントの識別子を取得します。

    bq show --location=LOCATION --connection --project_id=PROJECT_ID
    CONNECTION_NAME
    
  4. 作成した Cloud Storage バケットへのアクセス権を Cloud リソース接続に付与します。これを行うには、接続サービス アカウントに storage.admin IAM 権限を追加します。

    gcloud storage buckets add-iam-policy-binding gs://YOUR_GCS_BUCKET \
    --member=serviceAccount:YOUR_SERVICE_ACCOUNT_ID \
    --role=roles/storage.admin
    
  5. Apache Iceberg テーブル ストリームを作成します。

    コンソールを使用して Apache Iceberg テーブル ストリームを作成する方法については、ストリームを作成するをご覧ください。 Google Cloud

    REST、Google Cloud CLI、Terraform を使用して Apache Iceberg テーブルにデータをストリーミングするリクエストを作成する方法については、 API を使用してストリームを管理するをご覧ください。

次のステップ