BigQuery 目的地

Datastream 可讓您直接將來源的變更資料複製到 BigQuery 資料表,進行近乎即時的分析。將資料串流至 BigQuery 時,您可以選取合併或僅限附加寫入模式,並使用 datastream_metadata 資料欄追蹤變更事件。您也可以套用成本管理最佳做法,例如預留運算單元和調整資料表過時程度,並查看已知限制。

寫入行為

  • 將資料串流至 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 定價」。

成本管理最佳做法

使用 Datastream 並以 BigQuery 做為目的地時,請考量下列成本管理最佳做法:

  • 瞭解 BigQuery CDC 費用:使用 Datastream 並以 BigQuery 做為目的地時,變更資料擷取 (CDC) 會涉及背景合併作業。根據預設,如果 BigQuery CDC 擷取背景工作未指派 BACKGROUND 或 BACKGROUND_CHANGE_DATA_CAPTURE BigQuery 預留項目,則會採用隨選定價。
  • 使用 BigQuery 預留項目:如要管理及限制 CDC 合併工作的相關費用,建議您購買 BigQuery 運算單元預留項目。這項服務以固定價格提供固定容量,讓您更容易預測成本。詳情請參閱「設定 BigQuery 預留項目,以便與 CDC 擷取作業搭配使用」。
  • 調整 max_staleness:BigQuery 中的 max_staleness 參數會直接影響資料更新間隔和成本。值越低,合併作業越頻繁,成本越高,但資料越新。請根據業務需求,將這項參數調整至合適的資料更新間隔,同時不超出預算。詳情請參閱「管理資料表過時狀態」。

已知限制

使用 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 或 Salesforce Marketing Cloud (預先發布版),則不支援「Dataset for each schema」(每個結構定義的資料集) 設定選項。

後續步驟