一种增量数据同步的处理方法技术

技术编号:39298447 阅读:12 留言:0更新日期:2023-11-07 11:06
本发明专利技术公开了一种增量数据同步的处理方法,包括创建待同步表对应的变更记录追踪表;在待同步表上创建触发器,通过触发器将待同步表的变更记录写入变更记录追踪表中;创建SQL Server的一个内联表值函数,基于变更记录追踪表并通过内联表值函数读取待同步表的增量数据;生成并运行同步任务,将增量数据同步到消息队列;消费并解析消息队列中数据,获取数据的schema信息,根据schema信息生成对应的插入语句,将插入语句写入目标数据库。本发明专利技术不需要额外部署agent服务,不需要存储数据变更前后的数据,减轻了数据库压力;可以准实时同步数据的增删改场景,并且不需要业务表存在时间戳字段。戳字段。戳字段。

【技术实现步骤摘要】
一种增量数据同步的处理方法


[0001]本专利技术属于数据同步
,具体涉及一种增量数据同步的处理方法。

技术介绍

[0002]随着现代信息科技的快速发展以及大数据技术日益完善与普及,越来越多的行业与公司使用大数据对自身数据进行处理分析。其中由于各种业务数据存在不同的数据库,不同类型的数据库中,数据同步成为大数据技术应用中十分重要的一环。SQL Server是微软推出的一种具有可扩展、高性能等特性的关系型数据库系统。作为发布比较早的数据库,SQL Server在市场中应用广泛。
[0003]目前SQL Server增量数据同步常用的方式包括:1、使用查询方式,通过系统时间与待抽取表的时间戳字段判断需要抽取的数据,但当业务表无时间戳字段时,就无法增量同步数据,并且对于物理删除数据,该方式也不能获取到删除数据;2、使用SQL Server CDC(Change Data Capture),即变换数据捕获变更数据,该方案通过开启SQL Server CDC功能,从数据库中提取数据库表的增量变化数据,从而达到增量同步的目的,但是该方案需要额外部署agent服务,并且会记录每次数据变更前后的数据记录在变更表中,这无疑增加了数据库的压力。因此,提供一种不受源表表结构限制能捕获到数据物理删除的更加轻量级并的增量同步方式十分重要。

技术实现思路

[0004]本专利技术要解决的技术问题是:提供一种增量数据同步的处理方法,以至少解决上述部分技术问题。
[0005]为实现上述目的,本专利技术采用的技术方案如下:一种增量数据同步的处理方法,包括以下步骤:步骤1、创建待同步表对应的变更记录追踪表;步骤2、在待同步表上创建触发器,通过触发器将待同步表的变更记录写入变更记录追踪表中;步骤3、创建SQL Server的一个内联表值函数,基于变更记录追踪表并通过内联表值函数读取待同步表的增量数据;步骤4、生成并运行同步任务,将增量数据同步到消息队列;步骤5、消费并解析消息队列中数据,获取数据的schema信息,根据schema信息生成对应的插入语句,将插入语句写入目标数据库。
[0006]进一步地,所述变更记录追踪表中至少包含待同步表的变更版本、业务主键、操作类型和操作时间。
[0007]进一步地,所述变更版本的版本号为一个自增的整数,每次待同步表发生变更时,触发器将变更记录写入变更记录追踪表时,变更版本的版本号自动增加一。
[0008]进一步地,所述步骤3包括:步骤31、创建一个内联表值函数,输入传入版本;步骤
32、内联表值函数通过查询变更记录追踪表中变更版本的版本号大于传入版本的版本号,根据业务主键分组查询每个业务主键最大的版本号及操作时间;步骤33、通过业务主键关联对应变更版本的待同步表,将当前待同步表的数据作为增量数据。
[0009]进一步地,所述步骤4包括:步骤41、创建增量同步任务和增量同步任务模板;步骤42、运行增量同步任务,基于增量同步任务模板生成同步任务;步骤43、运行同步任务,生成增量查询语句;步骤44、执行所述增量查询语句进行查询:将变更追踪表的变更版本输入内联表值函数,查询版本号大于传入版本的变更版本对应增量数据,将查询到的增量数据转换json格式并发送至消息队列中,供下游实时消费。
[0010]进一步地,所述步骤4还包括创建版本维护模块,通过所述版本维护模块记录并维护当前增量同步任务对应待同步表的变更版本,并且将每个待同步表变更版本的版本号持久化到外部存储设备中;通过所述版本维护模块记录当前查询的待同步表的最大变更版本的版本号。
[0011]进一步地,所述步骤4还包括创建schema版本维护模块,通过所述schema版本维护模块对比并维护当前增量同步任务对应待同步表的schema信息,每次执行增量查询后,从查询结果获取待同步表当前schema信息,与schema版本维护模块中最新版本的schema信息对比,如果schema信息发生变化,则将生成新的schema版本号并维护对应的schema信息,并且将每一个待同步表的schema版本及对应的schema持久化到外部存储设备中;通过所述schema版本维护模块记录每一条增量数据的schema信息,用以后续消费时获取增量数据的schema信息。
[0012]进一步地,所述步骤5包括:步骤51、配置数据写入任务模板;步骤52、启动flink程序,加载解析数据写入任务模板并生成实时消费应用;步骤53、运行所述实时消费应用,消费消息队列的数据;步骤54、解析消费到的消息队列的数据,获取消息队列的数据的变更版本和schema信息;步骤55、基于所述schema信息并根据目标数据库类型生成对应的插入语句,将插入语句写入目标数据库。
[0013]进一步地,所述步骤5还包括从消息队列的数据获取到变更版本后,从本地缓存获取当前变更版本对应schema信息,如果本地缓存中不存在当前变更版本对应的数据,则从schema版本维护模块中获取当前变更版本对应的schema信息,并将schema信息及变更版本维护到本地缓存中,方便后续相同版本号的数据直接从本地缓存获取schema信息。
[0014]与现有技术相比,本专利技术具有以下有益效果:本专利技术基于SQL Server触发器更改记录跟踪功能,以创建的内联表值函数查询传入版本号大于变更版本号对应的数据记录,并通过创建增量同步任务自动生成对应的同步任务达到准实时同步SQL Server增量数据的目的。本专利技术与时间戳方式查询相比,解决了获取增量数据必须存在时间戳字段的限制且不能同步数据物理删除的场景;本专利技术与SQL Server CDC查询相比,不需部署agent服务,并且更改跟踪与数据更改同步进行,不需要异步读取事务日志,不需要记录每次变更前后的数据,大大降低了数据库的运行压力。
附图说明
[0015]图1为本专利技术的方法流程图。
具体实施方式
[0016]技术名词:SQL Server:一种关系型数据库管理系统。
[0017]SQL Server CDC:记录SQL Server表的插入、更新和删除操作。
[0018]SQLServer触发器(Triggers):SQL Server中的一种数据库对象,它是一段存储过程的特殊类型,可以在表上注册,并在表中的数据发生插入、更新或删除操作时自动触发执行。通过使用触发器,可以在数据发生变化时捕获并执行自定义的逻辑。触发器有两种类型:AFTER 触发器和INSTEAD OF 触发器。AFTER 触发器是在数据修改后执行,而INSTEAD OF 触发器是在数据修改前执行,并允许你在触发器内部对数据进行修改。
[0019]agent服务:具有自主性、交互性、反应性和主动性的计算实体,能够根据环境和用户输入做出相应的行为调整。
[0020]flink应用:分层架构的分布式计算引擎。
[0021]schema:是一种数据结构。
[0022]json:是一种轻量级的数据交换格式。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种增量数据同步的处理方法,其特征在于,包括以下步骤:步骤1、创建待同步表对应的变更记录追踪表;步骤2、在待同步表上创建触发器,通过触发器将待同步表的变更记录写入变更记录追踪表中;步骤3、创建SQL Server的一个内联表值函数,基于变更记录追踪表并通过内联表值函数读取待同步表的增量数据;步骤4、生成并运行同步任务,将增量数据同步到消息队列;步骤5、消费并解析消息队列中数据,获取数据的schema信息,根据schema信息生成对应的插入语句,将插入语句写入目标数据库。2.根据权利要求1所述的一种增量数据同步的处理方法,其特征在于,所述变更记录追踪表中至少包含待同步表的变更版本、业务主键、操作类型和操作时间。3.根据权利要求2所述的一种增量数据同步的处理方法,其特征在于,所述变更版本的版本号为一个自增的整数,每次待同步表发生变更时,触发器将变更记录写入变更记录追踪表时,变更版本的版本号自动增加一。4.根据权利要求2所述的一种增量数据同步的处理方法,其特征在于,所述步骤3包括:步骤31、创建一个内联表值函数,输入传入版本;步骤32、内联表值函数通过查询变更记录追踪表中变更版本的版本号大于传入版本的版本号,根据业务主键分组查询每个业务主键最大的版本号及操作时间;步骤33、通过业务主键关联对应变更版本的待同步表,将当前待同步表的数据作为增量数据。5.根据权利要求4所述的一种增量数据同步的处理方法,其特征在于,所述步骤4包括:步骤41、创建增量同步任务和增量同步任务模板;步骤42、运行增量同步任务,基于增量同步任务模板生成同步任务;步骤43、运行同步任务,生成增量查询语句;步骤44、执行所述增量查询语句进行查询:将变更追踪表的变更版本输入内联表值函数,查询版本号大于传入版本的变更版本对应增量数据,将查询到的增量数据转换json格式并发送至消息队列中,供下游实时消费。6.根据权利要求5所述的一种增量数据同步的处理方法,其特征在于,所述步骤4还...

【专利技术属性】
技术研发人员:向才锋张江波张自平
申请(专利权)人:云筑信息科技成都有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1