1. 概述
1.1 版本
| FineDataLink版本 | 功能變動 |
|---|---|
| 4.2.4.3 | - |
| 4.2.14.1 | 實時採集任務運作邏輯優化 |
1.2 應用場景
當多個實時任務、實時管道任務對同一個資料庫的不同表進行實時同步時,會重複解析資料庫的日誌,導緻資料庫壓力過大,特別是在實時任務場景下,不同表會在不同實時任務中處理,就很容易導緻日誌被解析多次。
1.3 功能簡介
實時採集任務支援對資料庫日誌解析進行管理,儲存日誌解析産生的變更資料,實時任務/實時管道任務能夠消費實時採集任務的資料。
注:所有實時任務/實時管道任務的 CDC 輸入,都預設走實時資料獲取任務。

2. 實時採集任務運作說明

2.1 建立實時採集任務
2.1.1 建立流程
1)點選「管理系統>資料連結>實時採集任務」,設定 快取配置
2)建立實時管道或者實時任務後,在「管理系統>資料連結>實時採集任務」中自動新增實時採集任務,不需要使用者手動新增。如下圖所示:

2.1.2 實時採集任務與資料連結關系
4.2.14.1 之前版本:
採集任務根據資料連結URL來區分:
如果不同資料連結URL完全一緻,只會建立一個實時採集任務。
資料連結URL發生變化,比如加個空格/加個後綴參數之類,就會建立一個新的採集任務。

4.2.14.1 及之後版本:
採集任務以「資料連結的名稱」來區分。
2.1.3 範例說明
注:重置啟動實時管道任務/實時任務,相當於建立任務,參考下方表格說明即可。
| 場景 | 說明 |
|---|---|
已有實時採集任務,建立一個新表的任務:
| 任務啟動時,在實時採集任務1中自動新增table3的日誌解析:
|
已有實時採集任務,建立一個已存在表的任務:
| 任務1直接使用實時採集任務1收集的日誌資料: 1)當任務1使用「全量+增量」或「啟動時間」時,使用實時採集任務1 2)當任務1使用「自訂時間」時:
|
2.2 暫停/中止實時管道或實時任務對採集任務的影響
4.2.14.1 之前版本:
| 場景 | 說明 |
|---|---|
| 檢查任務中使用的所有來源表的CDC資料是否有其他任務在使用:
|
| 檢查任務中使用的所有來源表的CDC資料是否有其他任務在使用:
|
4.2.14.1 及之後版本:
當實時管道/實時任務暫停時,不再自動觸發採集任務中表的暫停(若實時採集任務中存在表未被使用,會進行提示;同時,實時採集任務中支援 手動刪除表 )。
2.3 刪除實時管道或實時任務對採集任務的影響
4.2.14.1 之前版本:
| 場景 | 說明 |
|---|---|
| 刪除任務時,檢查任務中使用的所有來源表的CDC資料是否有其他任務在使用:
|
| 刪除任務時,檢查任務中使用的所有來源表的CDC資料是否有其他任務在使用:
|
4.2.14.1 及之後版本:
當實時管道/實時任務刪除時,不再自動觸發採集任務中表的刪除(若實時採集任務中存在表未被使用,會進行提示;同時,實時採集任務中支援 手動刪除表 )。
2.4 啟動實時管道任務或實時任務對採集任務的影響
| 場景 | 說明 |
|---|---|
| 恢複任務時,檢查任務中使用的所有來源表的CDC資料是否在收集: 1)如果是在收集,說明有其他任務正在使用這些表的CDC資料,按照當前任務的斷點從實時資料共享中心取數進行同步即可
2)如果沒有在收集,說明也沒有其他任務正在使用這些表的CDC資料,自動恢複啟動該實時採集任務收集,繼續收集table1、table2、table3的資料,按照當前任務的斷點從實時資料共享中心取數進行同步即可
3)任務1恢複啟動時,有三種情況:
|
| 恢複任務時,檢查任務中使用的所有來源表的CDC資料是否在收集: 1)如果是在收集,說明有其他任務正在使用這些表的CDC資料,按照當前任務的斷點從實時資料共享中心取數進行同步即可
2)如果沒有在收集,說明也沒有其他任務正在使用這些表的CDC資料,自動恢複啟動該實時採集任務收集,繼續收集table1的資料,按照當前任務的斷點從實時資料共享中心取數進行同步即可
|
4.2.14.1 及之後版本,邏輯優化:
1)當採集任務被手動暫停後,因為某一個實時任務重新觸發啟動時,啟動時就恢複所有表的採集。
2)當實時管道、實時任務恢複啟動時:
對應的採集任務不存在或者對應的表不存在時,實時管道報表級錯誤、實時任務報任務級錯誤;採集任務中,報錯:沒有解析${表名}的資料,請重新同步,自動新增該表的解析
對應的表運作錯誤時,實時管道報表級錯誤、實時任務報任務級錯誤;採集任務中,報錯:${表名}解析錯誤,請重新同步,自動重置該表的解析
對應的表最早訊息時間晚於所需時間時,實時管道報表級錯誤,實時任務報任務級錯誤;採集任務中,${表名}的增量資料已過期,請重新同步
2.5 實時採集任務運作錯誤
| 場景 | 說明 |
|---|---|
實時採集任務從運作中→ 運作錯誤:
|
所有依賴實時採集任務1的任務全部運作錯誤中止,並且列印出實時採集任務1具體的錯誤原因 使用者按照具體的錯誤原因,採取針對性的操作即可 |
實時採集任務被異常停止:
|
|
2.6 實時採集任務中表異常
1)實時採集任務中表的異常情況都在實時、管道任務中體現。
當實時採集任務中表運作錯誤、異常刪除時,依賴該實時採集任務的實時任務報錯中止,實時管道任務移除異常表的同步,正常的表照常同步,當實時管道任務中所有表都異常時,管道任務才整體報錯。
比如解析相應時間點的日誌時,如果相應時間點的日誌丟失,則實時採集任務報錯中止、依賴該實時採集任務的任務也報錯。
2)當建立的實時任務、實時管道任務的啟動時間早於實時資料共享中心的資料最早的資料時,會自動補齊資料。
2.7 對實時任務、實時管道的影響
1)實時採集任務將資料庫中所有CDC資料都寫入到實時資料共享中心,由各個業務決定使用哪一類資料。比如對於 DDL 的資料,資料管道會進行使用,實時任務暫時沒有使用 DDL 的功能。
注:實時採集任務暫不支援髒資料容忍,遇到髒資料時,先走重試邏輯,重試失敗後,則實時採集任務報錯中止。
2)對實時、管道任務運作邏輯的變動:
1)重試邏輯:管道、實時任務的重試不控制與 CDC 資料源的重試,只控制管道和實時資料共享中心連結的重試和其匯出端的重試。
2)刪除表情況:
實時任務需要基於刪除的 ddl 事件,報錯中止、列印相應報錯日誌,並觸發相應的結果通知。
實時管道任務會基於刪除表的ddl事件,觸發通知和列印日誌,繼續同步其他表。
3)自訂同步時間:在實時任務、實時管道任務中同步方式選擇「自訂時間」時,可以設定「資料庫日誌最早時間」和「共享中心最早時間」中的最早時間;實時管道任務中需要取「當前任務的所有表各自的最早時間」中的最晚時間。
4)恢複啟動:當實時、管道任務恢複啟動時,如果實時資料共享中心中最早的資料晚於斷點時間,任務報錯中止。
3. 任務維運
詳情請參見:實時採集任務維運
