BigQuery 目的地

本頁面提供 BigQuery 目的地總覽。本文說明將資料複製到 BigQuery 時,Datastream 的寫入行為和已知限制。

寫入行為

  • 將資料串流至 BigQuery 時,事件大小上限為 20 MB。

  • 設定串流時,您可以選取 Datastream 將變更資料寫入 BigQuery 的方式。詳情請參閱「設定寫入模式」。

資料表中繼資料

Datastream 會在寫入 BigQuery 目的地的每個資料表中,附加名為 datastream_metadataSTRUCT 資料欄。

合併寫入模式

如果資料表在來源端有主鍵,則該資料欄會包含下列欄位:

  • UUID:這個欄位的資料類型為 STRING
  • SOURCE_TIMESTAMP:這個欄位的資料類型為 INTEGER

如果資料表沒有主鍵,則該資料欄會包含額外欄位:IS_DELETED。這個欄位的資料類型為 BOOLEAN,可指出 Datastream 串流至目的地的資料是否與來源的 DELETE 作業相關聯。沒有主鍵的資料表只能附加資料。

僅附加寫入模式

datastream_metadata 欄位包含的欄位相同,無論資料表是否含有主鍵:

  • UUID:這個欄位的資料類型為 STRING
  • SOURCE_TIMESTAMP:這個欄位的資料類型為 INTEGER
  • CHANGE_SEQUENCE_NUMBER:這個欄位的資料類型為 STRING。這是 Datastream 為每個變更事件使用的內部序號。
  • CHANGE_TYPE:這個欄位的資料類型為 STRING。表示變更事件的類型:INSERTUPDATE-INSERTUPDATE-DELETEDELETE
  • SORT_KEYS:這個欄位包含 STRING 值陣列。您可以使用這些值來排序變更事件。

控管 BigQuery 費用

BigQuery 費用與 Datastream 費用分開計費。如要瞭解如何控管 BigQuery 費用,請參閱 BigQuery CDC 定價

已知限制

使用 BigQuery 做為目的地時,已知限制包括:

  • 您只能將資料複製到與 Datastream 串流位於 Google Cloud 相同專案的 BigQuery 資料集。
  • 根據預設,Datastream 不支援對已複製到 BigQuery 的資料表新增主鍵 (如果該資料表沒有主鍵),也不支援從已複製到 BigQuery 的資料表移除主鍵。如需進行這類變更,請與 Google 支援團隊聯絡。如要瞭解如何變更已設有主鍵的來源資料表主鍵定義,請參閱「診斷問題」。
  • BigQuery 中的主鍵必須屬於下列資料類型:

    • DATE
    • BOOL
    • GEOGRAPHY
    • INT64
    • NUMERIC
    • BIGNUMERIC
    • STRING
    • TIMESTAMP
    • DATETIME

    如果資料表包含不支援資料類型的主鍵,Datastream 就不會複製該資料表。

  • BigQuery 不支援含有 .$/@+ 字元的資料表名稱。建立目的地資料表時,Datastream 會以底線取代這類字元。

    舉例來說,來源資料庫中的 table.name 會變成 BigQuery 中的 table_name

    如要進一步瞭解 BigQuery 中的資料表名稱,請參閱資料表命名

  • BigQuery 最多支援四個叢集欄。複製主鍵欄超過四個的資料表時,Datastream 會使用四個主鍵欄做為叢集欄。

  • Datastream 會將超出範圍的日期和時間常值 (例如 PostgreSQL 無限日期類型) 對應至下列值:

    • DATE9999-12-31 的值
    • DATE 設為 0001-01-01 的負值
    • TIMESTAMP9999-12-31 23:59:59.999000 UTC 的值
    • TIMESTAMP 設為 0001-01-01 00:00:00 UTC 的負值
  • BigQuery 不支援主鍵為 FLOATREAL 資料類型的串流資料表。這類資料表不會複製。 如要進一步瞭解 BigQuery 日期類型和範圍,請參閱「資料類型」。

  • 如果來源是 Salesforce,系統不支援「針對每個結構定義建立資料集」設定選項。

後續步驟