Datastream 中的串流可以補充歷來資料,並將持續變更串流至目的地。建立串流時,您設定了串流的來源資料庫相關資訊。
如果您選取「補充歷來資料」核取方塊,Datastream 就會將來源中的所有現有資料和資料變更串流至目的地。
如果未勾選這個核取方塊,Datastream 只會串流傳輸資料變更。如要讓 Datastream 將來源的所有現有資料快照串流至目的地,請為含有這類資料的物件啟動補充作業。物件的形式為資料庫結構定義、資料表和資料欄。
如果來源和目的地之間的資料不同步,也可以啟動物件補充作業。舉例來說,使用者可能會不小心刪除目的地中的資料,導致資料遺失。在這種情況下,啟動物件補充作業可做為重設機制,因為所有資料都會一次串流至目的地。因此,來源和目的地之間會同步處理資料。
啟動物件的補充作業後,您可以停止該作業。在上述範例中,使用者修改資料庫結構定義,導致結構定義或資料損毀。您不希望將這個結構定義或資料串流到目的地,因此停止回填物件。
您也可以停止物件的回填作業,以進行負載平衡。 Datastream 可以同時執行多個回填作業。這可能增加來源的負載。如果負載量很大,請停止物件的回填作業,然後逐一啟動物件的回填作業。
物件狀態
物件啟動及停止回填作業的生命週期包含下列各種狀態:
沒有狀態 (在 UI 中以
-表示):物件收到這個狀態的原因包括:- 串流尚未開始。
- 未選取「補充歷來資料」核取方塊 (因此補充作業定義為手動)。
- 系統會明確排除該物件,不會自動補充。
- 串流已設定為包含未來的資料表。如果發生這種情況,當來源中新增資料表時,系統不會為這些資料表建立自動回填工作 (因為新資料表通常沒有任何歷史資料可回填)。
Pending:物件的補充作業尚未開始。Active:物件的補充作業正在進行中。Completed:物件的補充作業已完成。Stopped:物件的補充作業已停止。如果再次啟動物件的補充作業,Datastream 會將來源中與該物件相關的所有現有資料,串流至目的地。Failed:物件補充作業失敗,必須再次啟動。
啟動補充作業
前往 Google Cloud 控制台的「Streams」(串流) 頁面。
按一下含有要啟動回填物件的串流。
按一下「Objects」(物件) 分頁標籤。
找出要啟動回填的每個物件,然後勾選對應的核取方塊。
按一下「啟動補充作業」。
如果只選取一個物件,請在對話方塊中點選「INITIATE OBJECT BACKFILL」(啟動物件回填)。否則,如果您選取多個物件,請按一下「INITIATE OBJECT BACKFILLS」(啟動物件回填)。
Datastream 會開始補充所選物件的資料,各物件的狀態也會從
Pending變更為Active,再變更為Completed。如果物件的狀態為Completed,表示 Datastream 已讀取物件的所有資料,但資料可能仍在載入至目的地。
啟動部分補充作業
除了完整回填,您也可以執行部分回填,將來源中的特定資料子集載入目的地。如要這麼做,請提供 SQL WHERE 子句做為自訂篩選器。
Datastream 支援下列來源的部分回填:
- SQL Server
- Spanner
- Oracle
- PostgreSQL
如要啟動部分補充作業:
前往 Google Cloud 控制台的「Streams」(串流) 頁面。
按一下含有要啟動回填物件的串流。
按一下「Objects」(物件) 分頁標籤。
選取要啟動回填的物件。
按一下「啟動補充作業」。
在隨即顯示的面板中,勾選「啟用自訂篩選器」核取方塊。
輸入 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」(串流) 頁面。
按一下含有要停止回填物件的串流。
按一下「Objects」(物件) 分頁標籤。
找出要停止回填的每個物件,然後勾選對應的核取方塊。
按一下「停止補充作業」。
如果只選取一個物件,請在對話方塊中點選「停止物件背景填滿」。否則,如果選取了多個物件,請按一下「停止物件補充作業」。
Datastream 會停止補充所選物件,且每個物件的狀態都會變更為
Stopped。如果物件處於這種狀態,系統會停止補充作業。如果再次啟動物件補充作業,Datastream 會將來源中與物件相關聯的所有現有資料,串流至目的地。
後續步驟
- 如要進一步瞭解串流,請參閱串流生命週期。
- 如要瞭解如何查看串流資訊,請參閱「查看串流」。
- 如要瞭解如何修改串流,請參閱「修改串流」。
- 如要瞭解如何監控串流,請參閱「監控串流」。
- 如要瞭解如何復原失敗的串流,請參閱「復原串流」。