在 BigQuery 中設定 Apache Iceberg 資料表

Datastream 可將來源資料複製到 BigQuery 的 Apache Iceberg 資料表。Apache Iceberg 資料表提供與標準 BigQuery 資料表相同的全代管體驗,同時以 Parquet 格式將資料儲存在您自己的 Cloud Storage bucket 中。這項設定可讓您使用 BigQuery 查詢及分析資料,同時保有基礎儲存空間的完整控制權。

Datastream 僅支援在「僅附加」寫入模式下,串流至 Apache Iceberg 資料表。詳情請參閱「設定寫入模式」。

資料表中繼資料

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 bucket,用於儲存資料。
  2. 在 BigQuery 建立 Cloud 資源連結。如要瞭解如何建立這類連線,請參閱「建立及設定 Cloud 資源連結」。
  3. 取得連線服務帳戶的 ID:

    bq show --location=LOCATION --connection --project_id=PROJECT_ID
    CONNECTION_NAME
    
  4. 授予 Cloud 資源連結存取權給您建立的 Cloud Storage bucket。如要這麼做,請將 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 資料表串流。

    如要瞭解如何使用 Google Cloud 控制台建立 Apache Iceberg 資料表串流,請參閱「建立串流」。

    如要瞭解如何建立要求,使用 REST、Google Cloud CLI 或 Terraform 將資料串流至 Apache Iceberg 資料表,請參閱「使用 API 管理串流」。

後續步驟