本頁面提供 BigQuery 目的地總覽。本文說明將資料複製到 BigQuery 時,Datastream 的寫入行為和已知限制。
寫入行為
將資料串流至 BigQuery 時,事件大小上限為 20 MB。
設定串流時,您可以選取 Datastream 將變更資料寫入 BigQuery 的方式。詳情請參閱「設定寫入模式」。
資料表中繼資料
Datastream 會在寫入 BigQuery 目的地的每個資料表中,附加名為 datastream_metadata
的 STRUCT
資料欄。
合併寫入模式
如果資料表在來源端有主鍵,則該資料欄會包含下列欄位:
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
。表示變更事件的類型:INSERT
、UPDATE-INSERT
、UPDATE-DELETE
或DELETE
。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 無限日期類型) 對應至下列值:
- 正
DATE
到9999-12-31
的值 - 將
DATE
設為0001-01-01
的負值 - 正
TIMESTAMP
到9999-12-31 23:59:59.999000 UTC
的值 - 將
TIMESTAMP
設為0001-01-01 00:00:00 UTC
的負值
- 正
BigQuery 不支援主鍵為
FLOAT
或REAL
資料類型的串流資料表。這類資料表不會複製。 如要進一步瞭解 BigQuery 日期類型和範圍,請參閱「資料類型」。如果來源是 Salesforce,系統不支援「針對每個結構定義建立資料集」設定選項。