設定 BigQuery 目的地

本頁說明如何設定 Datastream,以便將資料寫入 BigQuery 資料集。

所需權限

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

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

將 BigQuery 設定為目的地

如要設定 Datastream,以便將資料串流至 BigQuery,請完成下列步驟:

  1. 確認已在專案中啟用 BigQuery API。 Google Cloud
  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 來源,且該來源包含資料庫和資料庫中的資料表,Datastream 就會在您選取的資料集中建立資料表。mydbemployeesmydb_employees

設定寫入模式

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

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

  • 僅限附加:僅限附加的寫入模式可讓您以變更串流的形式,將資料新增至 BigQuery (INSERTUPDATE-INSERTUPDATE-DELETEDELETE 事件)。如需保留資料的過往狀態,請使用這個模式。 如要進一步瞭解僅限附加的寫入模式,請參考下列情境:

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

指定資料過時程度限制

BigQuery 會根據設定的資料過時程度限制,以持續的方式或在查詢執行時,在背景中套用來源修改內容。Datastream 在 BigQuery 中建立新資料表時,系統會根據資料串流目前的資料過時程度限制值,設定資料表的 max_staleness 選項。

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