管理串流物件的補充作業

Datastream 的補充作業功能可讓您將來源物件的歷來資料快照,與持續擷取的變更資料擷取一併載入目的地。如果您在設定來源時未選取「Backfill historical data」(補充歷來資料),可以手動啟動完整或部分補充作業。如果資料不小心遭到刪除,您也可以啟動補充作業,重新同步處理目的地物件。

串流執行期間,您可以監控物件狀態,並隨時停止執行中的補充作業。停止作業可防止損毀的結構定義或資料複製,並可一次執行一項平行工作,減少來源負載。

物件狀態

在啟動和停止物件補充作業的生命週期中,各種狀態包括:

  • 無狀態 (在使用者介面中顯示為 -):物件收到此狀態的原因包括:

    • 直播尚未開始。
    • 未勾選「Backfill historical data」(補充歷來資料) 核取方塊 (因此補充作業定義為手動)。
    • 物件已明確排除,不會自動補充。
    • 串流已設為包含日後的資料表。如果發生這種情況,當來源新增資料表時,系統不會為這些資料表建立自動補充工作 (因為新資料表通常沒有任何歷來資料可補充)。
  • Pending:物件尚未開始補充。

  • Active:正在補充物件。

  • Completed:物件的補充作業已完成。

  • Stopped:物件的補充作業已停止。如果再次啟動物件的補充作業,Datastream 會將與物件相關聯的所有現有資料,從來源串流至目的地。

  • Failed:物件補充作業失敗,必須重新啟動。

啟動補充作業

  1. 前往 Google Cloud 控制台的「Streams」(串流) 頁面。

    前往「Streams」(串流) 頁面

  2. 按一下要啟動回填作業的物件所屬的串流。

  3. 按一下「物件」分頁標籤。

  4. 找出要啟動補充作業的物件,然後逐一勾選對應的核取方塊。

  5. 按一下「啟動補充作業」。

  6. 如果只選取一個物件,請在對話方塊中按一下「INITIATE OBJECT BACKFILL」(啟動物件補充)。否則,如果您選取多個物件,請按一下「INITIATE OBJECT BACKFILLS」(啟動物件補充)。

    Datastream 會開始補充所選物件,且每個物件的狀態會從 Pending 變更為 Active,再變更為 Completed。如果物件的狀態為 Completed,表示 Datastream 已讀取物件的所有資料,但資料可能仍在載入目的地。

啟動部分補充作業

除了完整補充,您也可以執行部分補充,將來源中的特定資料子集載入目的地。方法是提供 SQL WHERE 子句做為自訂篩選器。

Datastream 支援下列來源的部分補充作業:

  • SQL Server
  • Spanner
  • Oracle
  • PostgreSQL
  • MySQL

如要啟動部分補充作業,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Streams」(串流) 頁面。

    前往「Streams」(串流) 頁面

  2. 按一下要啟動回填作業的物件所屬串流。

  3. 按一下「物件」分頁標籤。

  4. 選取要啟動補充作業的物件。

  5. 按一下「啟動補充作業」。

  6. 在隨即顯示的面板中,勾選「啟用自訂篩選器」核取方塊。

  7. 輸入 SQL WHERE 子句。例如:product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'。

  8. 按一下「啟動補充作業」。

Datastream 會驗證篩選器。如果驗證失敗,編輯器上方會顯示錯誤訊息。如果驗證成功,Datastream 就會啟動補充作業。

支援的自訂篩選器語法

提供自訂篩選器時,Datastream 支援 SQL WHERE 子句語法的基本子集。支援的元素包括:

  • 邏輯運算子:AND、OR
  • 比較運算子:=、<、>、<=、>=、!=
  • 條件:IN、NOT IN、IS NULL、IS NOT NULL
  • 分組:使用括號 () 定義條件群組
  • 值:

    • 字串:以單引號括住的文字,例如 'value'
    • 數字:整數 (123)、小數 (123.45)、負數 (-10) 和指數 (1.2e3)。
    • 布林值:TRUE 或 FALSE 關鍵字 (區分大小寫)。
  • ID:

    • 限定:資料欄名稱可以使用點號完整限定,以指定結構定義或資料表,例如 myColumn、myTable.myColumn 或 mySchema.myTable.myColumn。
    • 不含引號的 ID:可包含英文字母、數字和底線,且開頭必須是英文字母或底線。資料欄或資料表名稱是否區分大小寫,取決於目標資料庫。
    • 雙引號 ID:必須以雙引號 (") 括住。

部分候補限制

某些陳述式、運算子和關鍵字明確禁止使用,否則會導致錯誤。包括:

  • 註解,例如 -- 或 /* */。
  • 函式,例如 UPPER(column) 和 NOW()。
  • 算術運算式,例如 column + 1 > 10。
  • LIKE 運算子。LIKE 不支援 % 或 _ 等萬用字元。
  • BETWEEN 運算子。請改用 >= 和 <=。
  • 子查詢,例如 WHERE 子句中的 (SELECT ...)。
  • CASE 陳述式,例如 CASE WHEN ... END。
  • 資料欄比較,例如 column1 = column2。比較對象必須是常值。
  • DATE 和 TIME 特定類型或函式。
  • 陣列或 JSON 專屬運算子。
  • 明確轉換:例如 CAST(column AS INT)。

停止補充作業

  1. 前往 Google Cloud 控制台的「Streams」(串流) 頁面。

    前往「Streams」(串流) 頁面

  2. 按一下要停止回填物件的串流。

  3. 按一下「物件」分頁標籤。

  4. 找出要停止補充資料的物件,並逐一勾選對應的核取方塊。

  5. 按一下「停止補充」。

  6. 如果只選取一個物件,請在對話方塊中按一下「Stop object backfill」(停止物件補充)。如果選取多個物件,請按一下「Stop object backfills」(停止物件補充作業)。

    Datastream 會停止補充所選物件,且每個物件的狀態都會變更為「Stopped」。

    如果物件處於這個狀態,系統會停止補充物件。如果再次對物件啟動補充作業,Datastream 會將與物件相關聯的所有現有資料,從來源串流至目的地。

後續步驟

  • 如要進一步瞭解串流,請參閱「串流生命週期」。
  • 如要瞭解如何查看串流相關資訊,請參閱「查看串流」。
  • 如要瞭解如何修改串流,請參閱「修改串流」。
  • 如要瞭解如何監控串流,請參閱「監控串流」。
  • 如要瞭解如何復原失敗的串流,請參閱「復原串流」。