設定 BigQuery 目的地

如要近乎即時地分析來源的變更資料擷取 (CDC) 更新,您可以使用 Datastream 將更新串流至 BigQuery。設定 BigQuery 目的地時,您可以選擇 Datastream 整理資料集的方式、選取合併或僅附加寫入模式,以及設定資料過時限制。

所需權限

Datastream 會使用 BigQuery 內建的變更資料擷取 (CDC) 更新支援功能。Datastream 會使用 BigQuery Storage Write API (gRPC) 處理及套用串流變更,藉此更新 BigQuery 資料表。

使用 API 和將資料擷取至 BigQuery 所需的權限,會授予 Datastream 服務代理角色。

將 BigQuery 設為目的地

如要設定 Datastream,將資料串流至 BigQuery,請按照下列步驟操作:

  1. 確認已在 Google Cloud專案中啟用 BigQuery API。
  2. 如要使用「所有結構定義的單一資料集」選項,請在 BigQuery 中建立資料集。
  3. 設定串流的目的地資料集。
  4. 設定寫入模式。
  5. 指定串流的資料過時程度上限。

設定目的地資料集

資料集是一種頂層容器,可用於整理及控管 BigQuery 資料表的存取權。

使用 Datastream 為 BigQuery 目的地設定資料集時,可以選取下列任一選項:

  • 針對每個結構定義建立資料集:Datastream 會根據來源的結構定義名稱,在指定的 BigQuery 位置選取或自動建立資料集。因此,來源中的每個結構定義在 BigQuery 中都有對應的資料集。舉例來說,如果您有 MySQL 來源,且該來源有 mydb 資料庫和資料庫中的 employees 資料表,則 Datastream 會在 BigQuery 中建立 mydb 資料集和 employees 資料表。

    Datastream 會在您選取的專案中建立資料集。根據預設,系統會選取目前的專案。資料集清單會顯示所選專案中的可用資料集。雖然您不一定要在串流所在的區域建立資料集,但建議您將串流的所有資源和資料集保留在相同區域,以達到最佳成本效益和效能。

  • 針對所有結構定義建立單一資料集:為資料串流選取 BigQuery 資料集。Datastream 會將所有資料串流至這個資料集。針對您選取的資料集,Datastream 會以 <schema>_<table> 的形式建立所有資料表。

    舉例來說,如果您有 MySQL 來源,且該來源有 mydb 資料庫和資料庫中的 employees 資料表,Datastream 會在您選取的資料集中建立 mydb_employees 資料表。

    您可以從任何 Google Cloud 專案選取資料集。根據預設,系統會顯示目前專案中的資料集。您也可以在所選專案中建立新的資料集。

設定寫入模式

您可以使用兩種模式,定義資料寫入 BigQuery 的方式:

  • 合併:這是預設的寫入模式。如果選取,BigQuery 會反映資料在來源資料庫中的儲存方式。也就是說,Datastream 會將所有資料變更寫入 BigQuery,然後 BigQuery 會將變更與現有資料合併,藉此建立來源資料表的副本做為最終資料表。在合併模式下,系統不會保留變更事件的歷來記錄。舉例來說,如果您插入資料列,然後更新該資料列,BigQuery 只會保留更新後的資料。如果您隨後從來源資料表中刪除該資料列,BigQuery 就不會再保留該資料列的任何記錄。

  • 僅限附加:在「僅限附加」寫入模式下,您可以將資料新增至 BigQuery,做為異動串流 (INSERT、UPDATE-INSERT、UPDATE-DELETE 和 DELETE 事件)。如需保留資料的過往狀態,請使用這個模式。

    如要進一步瞭解僅限附加寫入模式,請參考下列情境:

    • 初始補充作業:初始補充作業完成後,所有事件都會以 INSERT 類型事件的形式寫入 BigQuery,並具有相同的時間戳記、通用專屬 ID (UUID) 和變更序號。
    • 主鍵更新:主鍵變更時,系統會將兩列資料寫入 BigQuery:
      • 具有原始主鍵的 UPDATE-DELETE 資料列
      • 含有新主鍵的 UPDATE-INSERT 資料列
    • 資料列更新:更新資料列時,系統會將單一 UPDATE-INSERT 資料列寫入 BigQuery
    • 刪除資料列:刪除資料列時,系統會將單一 DELETE 資料列寫入 BigQuery

指定資料過時程度限制

BigQuery 會根據設定的資料過時程度限制,在背景持續套用來源修改內容,或在查詢執行時套用。Datastream 在 BigQuery 建立新資料表時,會根據串流目前的資料過時程度限制值,設定資料表的 max_staleness 選項。這可確保資料表不會超過套用的過時限制。資料過時程度限制不會影響 BigQuery 合併工作的頻率。

如要進一步瞭解如何搭配使用 BigQuery 資料表和 max_staleness 選項,請參閱「資料表過時」。