Datastream 的補充作業功能可讓您將來源物件的歷來資料快照,與持續擷取的變更資料擷取一併載入目的地。如果您在設定來源時未選取「Backfill historical data」(補充歷來資料),可以手動啟動完整或部分補充作業。如果資料不小心遭到刪除,您也可以啟動補充作業,重新同步處理目的地物件。
串流執行期間,您可以監控物件狀態,並隨時停止執行中的補充作業。停止作業可防止損毀的結構定義或資料複製,並可一次執行一項平行工作,減少來源負載。
物件狀態
在啟動和停止物件補充作業的生命週期中,各種狀態包括:
無狀態 (在使用者介面中顯示為
-):物件收到此狀態的原因包括:- 直播尚未開始。
- 未勾選「Backfill historical data」(補充歷來資料) 核取方塊 (因此補充作業定義為手動)。
- 物件已明確排除,不會自動補充。
- 串流已設為包含日後的資料表。如果發生這種情況,當來源新增資料表時,系統不會為這些資料表建立自動補充工作 (因為新資料表通常沒有任何歷來資料可補充)。
Pending:物件尚未開始補充。Active:正在補充物件。Completed:物件的補充作業已完成。Stopped:物件的補充作業已停止。如果再次啟動物件的補充作業,Datastream 會將與物件相關聯的所有現有資料,從來源串流至目的地。Failed:物件補充作業失敗,必須重新啟動。
啟動補充作業
前往 Google Cloud 控制台的「Streams」(串流) 頁面。
按一下要啟動回填作業的物件所屬的串流。
按一下「物件」分頁標籤。
找出要啟動補充作業的物件,然後逐一勾選對應的核取方塊。
按一下「啟動補充作業」。
如果只選取一個物件,請在對話方塊中按一下「INITIATE OBJECT BACKFILL」(啟動物件補充)。否則,如果您選取多個物件,請按一下「INITIATE OBJECT BACKFILLS」(啟動物件補充)。
Datastream 會開始補充所選物件,且每個物件的狀態會從
Pending變更為Active,再變更為Completed。如果物件的狀態為Completed,表示 Datastream 已讀取物件的所有資料,但資料可能仍在載入目的地。
啟動部分補充作業
除了完整補充,您也可以執行部分補充,將來源中的特定資料子集載入目的地。方法是提供 SQL WHERE 子句做為自訂篩選器。
Datastream 支援下列來源的部分補充作業:
- SQL Server
- Spanner
- Oracle
- PostgreSQL
- MySQL
如要啟動部分補充作業,請按照下列步驟操作:
前往 Google Cloud 控制台的「Streams」(串流) 頁面。
按一下要啟動回填作業的物件所屬串流。
按一下「物件」分頁標籤。
選取要啟動補充作業的物件。
按一下「啟動補充作業」。
在隨即顯示的面板中,勾選「啟用自訂篩選器」核取方塊。
輸入 SQL
WHERE子句。例如:product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'。按一下「啟動補充作業」。
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)。
停止補充作業
前往 Google Cloud 控制台的「Streams」(串流) 頁面。
按一下要停止回填物件的串流。
按一下「物件」分頁標籤。
找出要停止補充資料的物件,並逐一勾選對應的核取方塊。
按一下「停止補充」。
如果只選取一個物件,請在對話方塊中按一下「Stop object backfill」(停止物件補充)。如果選取多個物件,請按一下「Stop object backfills」(停止物件補充作業)。
Datastream 會停止補充所選物件,且每個物件的狀態都會變更為「
Stopped」。如果物件處於這個狀態,系統會停止補充物件。如果再次對物件啟動補充作業,Datastream 會將與物件相關聯的所有現有資料,從來源串流至目的地。
後續步驟
- 如要進一步瞭解串流,請參閱「串流生命週期」。
- 如要瞭解如何查看串流相關資訊,請參閱「查看串流」。
- 如要瞭解如何修改串流,請參閱「修改串流」。
- 如要瞭解如何監控串流,請參閱「監控串流」。
- 如要瞭解如何復原失敗的串流,請參閱「復原串流」。