天天看點

SQL Server 多表資料增量擷取和釋出 3程式結構程式設計思路

程式結構

建立一個窗體應用程式,新增三個類庫,實作各個層次責任分離

  • BLL 業務邏輯層
  • Common 公共幫助類層
  • Models 模型層
  • SqlMonitoring SQL螢幕程式
SQL Server 多表資料增量擷取和釋出 3程式結構程式設計思路

image.png

程式設計思路

大概的設計思路是這樣的:

1、因為是多表資料增量擷取,首先通過配置CDC已經完成多表的捕獲配置。

通過CDC實作了資料的捕獲,我們需要開一個服務,循環讀取捕獲表的内容(通過時間戳字段),因為使用時間戳,是以需要對每次的時間進行儲存,友善下一次擷取資料區間做判斷條件。

是以設計一張資料表時間戳記錄表,資料結構如下

時間記錄表資料結構

主鍵,架構名,表名稱,上次更新時間

SQL Server 多表資料增量擷取和釋出 3程式結構程式設計思路
SQL Server 多表資料增量擷取和釋出 3程式結構程式設計思路

2、根據時間戳循環讀取多表資料,将資料放入隊列中。

3、在開啟一個服務,循環讀取隊列裡面的資料,為了保證資料有效性,将隊列中的資料傳送給服務接口的時候還要再本地同時進行備份的儲存,隻有當資料服務傳回正确值得時候,更改日志表的狀态位。

日志記錄表資料結構

主鍵,時間節點,序列化資料,狀态位

SQL Server 多表資料增量擷取和釋出 3程式結構程式設計思路
SQL Server 多表資料增量擷取和釋出 3程式結構程式設計思路

重點

如果需要更新狀态位,那麼需要一個辨別位來判斷,那麼這個辨別位是什麼。大家可以猜一猜,答案就是UpdateTime字段。

資料庫CDC資料捕獲的時間精确到毫秒三位,可以保證一般系統資料唯一性,隊列中存在目前字段,将目前字段作為辨別來更新日志記錄表的狀态位。