使用資料串流的一般最佳做法

本頁面將說明使用 Datastream 的最佳做法。包括使用資料串流的一般最佳做法。

變更串流的來源資料庫

有時您可能需要變更串流的來源資料庫。舉例來說,您可能必須修改資料流,才能從副本而非主要資料庫執行個體複製資料。

  1. 為副本執行個體建立連線設定檔
  2. 建立串流,使用您建立的副本連線設定檔,以及目的地的現有連線設定檔。
  3. 啟動串流,並停用歷史回填功能。啟動串流時,系統只會從二進位記錄檔提取資料。
  4. (選用步驟) 串流執行後,請修改串流以啟用自動補充作業。
  5. 暫停從主要執行個體讀取資料的串流
  6. (選用步驟) 刪除從主要執行個體串流資料的串流
  7. (選用步驟) 刪除主要執行個體的連線設定檔

在 Datastream 中設定快訊和監控

Datastream 資訊主頁包含大量資訊。這項資訊有助於偵錯。如需其他資訊,請參閱 Cloud Logging 中的記錄。

Datastream 快訊

Datastream 沒有預設快訊。舉例來說,您可以點按「總覽」分頁中的「建立快訊政策」連結,為「資料新鮮度」指標建立快訊政策。如要查看其餘指標,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 「Alerting」(警告) 頁面

    前往「Alerting」(快訊)

  2. 按一下「建立政策」

  3. 按一下「選取指標」下拉式選單。

  4. 在篩選條件欄位中輸入 Datastream

  5. 選用:您可能需要停用「有效」篩選條件,才能查看所有可用指標。

  6. 在「資料串流」下方,搜尋要監控的指標。

  7. 按一下「套用」

  8. 選用:在「新增篩選器」和「轉換資料」部分中輸入必要詳細資料。按一下「Next」

  9. 在「設定警報觸發條件」部分輸入必要資訊。點選「下一步」

  10. 在「設定通知並完成快訊」部分設定通知。

  11. 檢查快訊是否設定妥當,然後按一下「建立政策」

    如需完成各個步驟的詳細資訊,請參閱「建立快訊政策」。

建議您為下列 Datastream 指標建立快訊:

  • 資料更新間隔
  • 串流不支援的事件數
  • 串流總延遲時間

如果這些指標出現快訊,可能表示串流或來源資料庫有問題。

瞭解延遲

Datastream 提供下列指標,協助您瞭解複製延遲時間:

  • 資料更新間隔:資料提交至來源的時間,與 Datastream 讀取資料的時間之間的差異。如果這項指標的值偏高,表示 Datastream 讀取資料的速度比來源產生資料的速度慢。這表示來源或來源的網路連線可能發生問題。
  • 系統延遲時間:Datastream 處理事件所需的時間,從讀取來源的事件到寫入目的地之間的時間。
  • 總延遲時間:端對端複製作業的延遲時間,代表資料從來源提交到寫入目的地的總時間。

如果資料更新間隔較短,常見原因包括:

  • 來源過載:來源資料庫產生記錄 (二進位記錄檔、重做記錄檔、WAL 檔案) 的速度,比 Datastream 讀取記錄的速度快。
    • MySQL/Oracle 的動作: 增加 maxConcurrentCdcTasks 參數,以便平行讀取更多記錄。
    • PostgreSQL 專用動作:將高流失率的資料表隔離到專屬的資料串流中。
    • SQL Server 的動作:增加 maxConcurrentCdcTasks 參數,平行讀取更多變更資料表。
  • 來源資源不足:來源資料庫伺服器本身發生問題,例如 CPU 使用率偏高、記憶體不足或磁碟 I/O 瓶頸。
    • 措施:請確認來源執行個體健康狀態良好。檢查 CPU/RAM 使用量。如果是 PostgreSQL,請考慮增加 logical_decoding_work_mem 參數的值;如果是 Oracle,請確保已分配足夠的系統全域區域 (SGA)。
  • 網路容量問題:來源與 Google Cloud之間出現高 ping 時間或頻寬飽和。
    • 動作:監控 VPN 或 Cloud Interconnect 的頻寬和延遲時間。
  • 單一大型交易:大型批次工作 (例如對數百萬列執行 UPDATE) 可能會導致延遲暫時增加。
    • 行動:這是預期中的情況。等待 Datastream 處理大型事件。建議您日後將大型批次工作拆成多個小任務。

如果系統延遲時間較長,可能表示 Datastream 或目的地發生問題。

  • 動作:檢查 Cloud Logging 是否有持續性的資料列層級錯誤 (例如 invalid input for type json)。如果資料類型或限制錯誤導致串流處於重試迴圈,可能需要手動修正來源資料。如果沒有明顯錯誤,請聯絡 Google 支援團隊尋求協助。

單一串流可處理多少個資料表?

建議單一串流最多包含 10,000 個表格。資料表大小沒有限制。如果需要使用更多資料表建立串流,串流可能會進入錯誤狀態。為避免這種情況,請考慮將來源分割為多個串流。