您现在的位置是:首页 > 文章详情

SQL Server 多表数据增量获取和发布 3

日期:2018-08-27点击:320

程序结构

新建一个窗体应用程序,新增三个类库,实现各个层次责任分离

  • BLL 业务逻辑层
  • Common 公共帮助类层
  • Models 模型层
  • SqlMonitoring SQL监视器程序
img_5de3d43facb3bebefcba290c8365c19e.png
image.png

程序设计思路

大概的设计思路是这样的:
1、因为是多表数据增量获取,首先通过配置CDC已经完成多表的捕获配置。
通过CDC实现了数据的捕获,我们需要开一个服务,循环读取捕获表的内容(通过时间戳字段),因为使用时间戳,所以需要对每次的时间进行保存,方便下一次获取数据区间做判断条件。
因此设计一张数据表时间戳记录表,数据结构如下

时间记录表数据结构
主键,架构名,表名称,上次更新时间

img_5d8b32a3bb19afd2bf461923649fdd15.png
image.png
img_999d8ec1ec07eca9032e4932477a7ebd.png
image.png

2、根据时间戳循环读取多表数据,将数据放入队列中。
3、在开启一个服务,循环读取队列里面的数据,为了保证数据有效性,将队列中的数据传送给服务接口的时候还要再本地同时进行备份的保存,只有当数据服务返回正确值得时候,更改日志表的状态位。

日志记录表数据结构
主键,时间节点,序列化数据,状态位

img_73a5c0083466d745135cf1066860b3a5.png
image.png
img_43cf355695652d77306b866e039e0b4d.png
image.png

重点
如果需要更新状态位,那么需要一个标识位来判断,那么这个标识位是什么。大家可以猜一猜,答案就是UpdateTime字段。
数据库CDC数据捕获的时间精确到毫秒三位,可以保证一般系统数据唯一性,队列中存在当前字段,将当前字段作为标识来更新日志记录表的状态位。

原文链接:https://yq.aliyun.com/articles/662563
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章