このページでは、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 テーブルにデータを取り込むには:
- データを保存する Cloud Storage バケットを 作成します。
- BigQuery で Cloud リソース接続を作成します。このタイプの接続の作成方法については、 Cloud リソース接続を作成して設定するをご覧ください。
接続サービス アカウントの識別子を取得します。
bq show --location=LOCATION --connection --project_id=PROJECT_ID CONNECTION_NAME作成した Cloud Storage バケットへのアクセス権を Cloud リソース接続に付与します。これを行うには、接続サービス アカウントに
storage.adminIAM 権限を追加します。gcloud storage buckets add-iam-policy-binding gs://YOUR_GCS_BUCKET \ --member=serviceAccount:YOUR_SERVICE_ACCOUNT_ID \ --role=roles/storage.adminApache Iceberg テーブル ストリームを作成します。
コンソールを使用して Apache Iceberg テーブル ストリームを作成する方法については、ストリームを作成するをご覧ください。 Google Cloud
REST、
Google Cloud CLI、Terraform を使用して Apache Iceberg テーブルにデータをストリーミングするリクエストを作成する方法については、 API を使用してストリームを管理するをご覧ください。
次のステップ
- ストリームの詳細については、ストリームのライフサイクルをご覧ください。
- ストリームの作成方法については、ストリームを作成するをご覧ください。
- Apache Iceberg テーブル ストリームで使用できる接続プロファイルを作成する方法については、 BigQuery 用の接続プロファイルを作成するをご覧ください。