本頁面提供 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 中的主鍵必須屬於下列資料類型:
DATEBOOLGEOGRAPHYINT64NUMERICBIGNUMERICSTRINGTIMESTAMPDATETIME
如果資料表包含不支援資料類型的主鍵,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,系統不支援「針對每個結構定義建立資料集」設定選項。