一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

业务信息同步方法、装置、计算机设备和存储介质与流程

2022-12-19 21:54:26 来源:中国专利 TAG:


1.本技术涉及数据同步技术领域,特别是涉及业务信息同步方法、装置、计算机设备和存储介质。


背景技术:

2.核心系统负责处理诸多的基础业务,是最基础的源系统之一。随着业务服务领域的扩展,核心系统要与几百个关联系统进行数据交互,核心系统每天的业务量非常庞大,存储了海量的业务数据。关联系统因运营内控或监管预警等需要同步感知核心系统的部分业务时,现有的同步方案主要有三种:第一种,核心系统将业务信息记录到业务登记簿内,通过消息服务总线的交易调度实时同步给外围系统,但是会增加核心系统和服务总线的负荷压力;第二种,在数据交换平台部署抽数作业,直连核心系统的数据库,通过t 1的形式抽取业务登记簿推送到目标系统,对核心系统影响较小但是同步时效滞后;第三种,核心系统将业务信息导出到文件内,通过ftp/tftp传输文件到外围系统,但是随着需求的增加,导致该方式扩展性较差。现有的同步方案都存在对核心系统的结构或同步时效有影响,并且同步的业务数据缺乏统一规范,对目标系统适配性较差。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种对核心系统的结构无影响且能够提高同步时效以及核心系统与关联系统数据的同步适配性的业务信息同步方法、装置、计算机设备和存储介质。
4.第一方面,本技术提供了一种业务信息同步方法,所述方法包括:
5.获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
6.将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
7.将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
8.在其中一个实施例中,将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文,包括:
9.将数据库从节点的日志拆解成多个日志片段,并采用事务标记和序号标记的双重标记方式对日志片段进行标记,所属相同事务的日志片段的事务标记信息相同;
10.提取日志片段的业务字段,并对库表记录信息中变化后的业务字段赋予字段值,根据字段值为日志片段标识变动标志;
11.根据预先建立的库表和业务字段映射关系,确定业务字段对应的库表名称;
12.将日志片段的每条库表变动记录信息转换为业务报文;库表变动记录信息包括业务字段、变动标志、业务字段对应的库表名称、业务字段所属的事务标记信息、事务提交时间和系列号。
13.在其中一个实施例中,提取日志片段的业务字段,包括:
14.读取信号文件,得到日志片段的事务标记信息以及事务标记信息对应的最大的序号标记;信号文件存储有各事务标记信息以及事务标记信息对应的最大的序号标记;
15.根据事务标记信息对应的最大的序号标记,确定抽数子进程的数量,每个抽数子进程读取多个日志片段;
16.各抽数子进程依次读取当前所属事务标记信息的日志片段,同时加载预先建立的库表和业务字段映射关系,根据映射关系提取日志片段中库表的业务字段。
17.在其中一个实施例中,将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统,包括:
18.读取各事务标记信息对应的所有库表变动记录信息对应的业务报文,并按照系列号排序;
19.根据当前事务标记信息对应的库表的结构属性,确定库表是否包括主键;若库表不包括主键,则确定库表中当前事务标记信息对应的所有库表变动记录信息对应的终态业务报文;
20.提取终态业务报文的事务标记信息、事务提交时间、记录数和数组编号作为公共信息头,将终态业务报文中业务字段和变动标识作为数组的元素,得到标准的业务报文数组。
21.在其中一个实施例中,读取同一事务标记信息对应的所有库表变动记录信息对应的业务报文,并按照系列号排序,包括:
22.读取结果文件,获得所有的事务标记信息以及各事务标记信息对应的库表种类数;结果文件存储有所有的事务标记信息以及各事务标记信息对应的库表种类数;
23.根据当前的事务标记信息对应的库表种类数确定打包子进程的数量;
24.各打包子进程依次读取所属当前的事务标记信息对应的库表变动记录信息对应的业务报文,并按照系列号排序。
25.在其中一个实施例中,若库表包括主键,则提取业务报文的主键字段值和变动标识,筛选主键字段值不唯一的业务报文,得到主键值唯一的业务报文;
26.确定库表的库表变动记录信息对应的变动模式,将变动模式与预设变动模式进行匹配,过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文。
27.在其中一个实施例中,若记录数超过预设值,则将终态业务报文整合成多个业务报文数组,并记录数据编号。
28.第二方面,本技术还提供了一种业务信息同步装置。所述装置包括:
29.获取模块,用于获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
30.拆解模块,用于将数据库从节点的日志拆解成多个日志片段,提取日志片段的库
表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
31.推送模块,用于将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
32.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
33.获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
34.将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
35.将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
36.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
37.获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
38.将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
39.将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
40.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
41.获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
42.将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
43.将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
44.上述业务信息同步方法、装置、计算机设备和存储介质,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;按照目标事务标记信息将单个库表记录的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。上述方法中,建立核心系统数据库的主从复制关系,由数据库从节点负责与目标系统实现数据同步,同时兼顾了异构系统的同步时效和系统性能;通过梳理核心系统业务库表与业务字段的对照关系,解耦异构系统间的数据格式依赖,使其免受数据库主节点的库表结构的约束,将数据库主节点记录整合成标准的业务报文,进而目标系统可实时感知核心系统的业务,并标准化业务报文
数组,增强了核心系统与目标系统数据同步的适配性,新的目标系统可直接消费核心系统的标准化业务报文数组即可实现同步感知,而核心系统并不需要额外的改造,便于实现核心系统与多个目标系统的交互需求,增强了核心系统与周边系统数据同步的适配性。
附图说明
45.图1为一个实施例中业务信息同步方法的应用环境图;
46.图2为一个实施例中业务信息同步方法的流程示意图;
47.图3为一个实施例中将日志片段的每条库表变动记录信息转换为业务报文的流程示意图;
48.图4为另一个实施例中抽取和打包的流程示意图;
49.图5为一个实施例中将业务报文打包成标准的业务报文数组的流程示意图;
50.图6为一个实施例中业务信息同步方法的详细流程示意图;
51.图7为一个实施例中业务信息同步装置的结构框图;
52.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
53.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
54.本技术实施例提供的业务信息同步方法,可以应用于如图1所示的应用环境中。其中,终端102包括数据库主节点104、数据库从节点106和多个目标系统108,数据库主节点104采用同源数据库的复制机制将数据库主节点104的数据实时同步到数据库从节点106内,再由数据库从节点106完成与目标系统108的数据同步。其中,数据库从节点106完成与目标系统108的数据同步具体步骤为:获取数据库从节点106已提交事务的日志;日志记载有数据库主节点104实时同步至数据库从节点106过程中已提交事务的标记信息和所有库表变动记录信息;将数据库从节点106的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;响应于目标系统的感知请求,按照目标事务标记信息将单个库表记录的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统108。其中,终端102可以但不限于是各种服务器、个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
55.现有的异构系统同步方案主要有三种:第一种,核心系统将业务信息记录到业务登记簿内,通过消息服务总线的交易调度实时同步给外围系统,但是会增加核心系统和服务总线的负荷压力;第二种,在数据交换平台部署抽数作业,直连核心系统的数据库,通过t 1的形式抽取业务登记簿推送到目标系统,对核心系统影响较小但是同步时效滞后;第三种,核心系统将业务信息导出到文件内,通过ftp/tftp传输文件到外围系统,但是随着需求的增加,导致该方式扩展性较差。现有的同步方案都存在对核心系统的结构或同步时效有影响,并且同步的业务数据缺乏统一规范,对目标系统适配性较差。
56.为解决上述问题,在一个实施例中,如图2所示,提供了一种业务信息同步方法,本实施例以该方法应用于终端102进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
57.步骤202,获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息。
58.其中,事务的标记信息用于标记目标事务,使其区分其他事务的信息,例如,事务的标记信息可以是事务编号。库表又称数据库表,是一系列二维数组的集合,用来代表和储存数据对象之间的关系。数据库主节点用于存储核心系统诸多的基础业务数据,当关联系统需要与核心系统交互时,核心系统将数据从数据库主节点复制到数据库从节点,数据库从节点可以承担读请求,这种方式不存在数据冲突的问题。
59.现有的异构系统同步技术方案要保证异构系统的同步时效就必须改造核心系统,必然影响核心系统的性能,无法兼顾同步时效和对核心系统的影响最小化。因此,本实施例的数据库主节点采用同源数据库的复制机制将数据库主节点的数据实时同步到数据库从节点内,再由数据库从节点完成与目标系统的数据同步,从而减轻异构系统间的数据同步对核心系统主节点的影响。
60.在数据库主节点的数据实时同步到数据库从节点的过程中,同步数据包括数据库主节点的数据库事务的标记信息、存储数据库事务相关数据的不同库表的名称以及库表的变动信息,由数据库从节点的日志记录记录同步过程产生的重要数据,例如,已提交事务的标记信息和所有库表变动记录信息。其中,同一数据库事务的标记信息相同,并且分布存储在不同的库表中;库表的变动包括增、删和改三种变动形式,库表的变动信息记录库表在一定时间内的变动情况,例如,在一定时间内发生增、删或改的先后顺序和时间。
61.具体地,数据库主节点采用同源数据库的复制机制将数据库主节点的数据实时同步到数据库从节点内,当数据库主节点的业务信息记录发生变动时,实时将变动信息同步至数据库从节点内,并由数据库主节点的日志记录同步至数据库从节点的库表变动记录信息,获取数据库从节点的日志。
62.步骤204,将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文。
63.其中,日志片段记录了数据库主节点的日志记录同步至数据库从节点的库表变动记录信息,库表变动记录信息具体包括数据库事务的标记信息、存储数据库事务相关数据的不同库表的名称以及库表的变动信息,每个变动信息对应一个业务报文。同一日志片段内的事务标记信息相同。例如,日志a拆解为a1~a4片段,a1~a4片段内的事务标记信息相同,但是日志片段的序号不同。
64.由于通过数据库同步的方式会造成目标系统与核心系统的高度耦合,且目标系统无法实时感知核心系统的表结构变动,容易导致生产事故,因此,为解决上述问题,本实施例设置了库表和业务字段映射关系,用于反映不同属性对应的库表中的字段关系,当业务字段发生增、删或改的变动时,可根据库表和业务字段映射关系确定变动的业务字段所属的库表,解耦异构系统间的数据格式依赖,梳理核心系统业务库表与业务字段的对照关系,
使其免受核心系统库表结构的约束,并将库表名称以及变动的业务字段等相关的库表变动记录信息转换为业务报文,进而目标系统可实时感知核心系统的业务。
65.具体地,实时读取数据库从节点已提交事务的二进制日志,按照事务的标记信息将其拆解成独立的日志片段,提取包含业务库表的日志片段并按照事务提交的时间顺序进行存储,记录数据库表变动情况,并用事务标记信息 序号的方式命名日志片段,同时将日志片段内的事务标记信息以及所属该事务标记信息的最大序号写到信号文件中,用于已表示完成日志拆解和序号命名的操作;将所有的日志片段对应的业务报文写到共享内存内,同时将所有的事务标记信息以及各事务标记信息对应的库表种类数写到结果文件中。
66.步骤206,将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
67.其中,由于核心系统同步的业务数据缺乏统一规范,导致对目标系统适配性较差,因此,为解决上述问题,本实施例标准化业务报文数组,便于实现核心系统与多个目标系统的交互需求,增强了核心系统与周边系统数据同步的适配性。
68.上述业务信息同步方法中,建立核心系统数据库的主从复制关系,由数据库从节点负责与目标系统实现数据同步,同时兼顾了异构系统的同步时效和系统性能;通过梳理核心系统业务库表与业务字段的对照关系,解耦异构系统间的数据格式依赖,使其免受数据库主节点的库表结构的约束,将数据库主节点记录整合成标准的业务报文,进而目标系统可实时感知核心系统的业务,并标准化业务报文数组,增强了核心系统与目标系统数据同步的适配性,新的目标系统可直接消费核心系统的标准化业务报文数组即可实现同步感知,而核心系统并不需要额外的改造,便于实现核心系统与多个目标系统的交互需求,增强了核心系统与周边系统数据同步的适配性。
69.在一个实施例中,如图3所示,将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文,包括:
70.步骤302,将数据库从节点的日志拆解成多个日志片段,并采用事务标记和序号标记的双重标记方式对日志片段进行标记,所属相同事务的日志片段的事务标记信息相同。
71.其中,事务标记和序号标记的双重标记方式是对日志片段中同一事务标记相同的事务标记,对所属同一事务的日志片段按照提交的时间先后顺序再次对日志片段进行序号标记。例如,顺序提交的日志片段m1~m4的事务属于同一事务,则用事务标记m标记日志片段m1~m4,用序号1~4分别标记日志片段m1~m4,即日志片段m1的标记信息为m_1。
72.具体地,数据库从节点将数据库从节点的日志拆解成多个日志片段,对日志片段中同一事务标记相同的事务标记,对所属同一事务的日志片段按照提交的时间先后顺序再次对日志片段进行序号标记,将日志片段内的事务标记信息以及所属该事务标记信息的最大序号写到信号文件中,用于已表示完成日志拆解和序号命名的操作。
73.步骤304,提取日志片段的业务字段,并对库表记录信息中变化后的业务字段赋予字段值,根据字段值为日志片段标识变动标志。
74.具体地,将数据库表每行记录每个字段变化后的值根据字段名-字段值的形式进行赋值,例如,字段名在变化前的字段值为0,字段名在变化后的字段值为1,通过判断字段值的变化确定字段是否发生变化,若字段值发生变化,则为日志片段标识变动标识,并将变
动标识记录到库表变动记录信息中。
75.在一些实施例中,为提升数据库记录到业务报文的转化效率,本实施例动态配置抽数进程,使用抽数进程提取日志片段的业务字段,如图4所示,包括以下步骤:
76.步骤1,读取信号文件,得到日志片段的事务标记信息以及事务标记信息对应的最大的序号标记;信号文件存储有各事务标记信息以及事务标记信息对应的最大的序号标记。
77.步骤2,根据事务标记信息对应的最大的序号标记,确定抽数子进程的数量,每个抽数子进程读取多个日志片段。
78.其中,抽数子进程的数量小于事务标记信息对应的最大的序号标记。
79.步骤3,各抽数子进程依次读取当前所属事务标记信息的日志片段,同时加载预先建立的库表和业务字段映射关系,根据映射关系提取日志片段中库表的业务字段。
80.具体地,各抽数子进程依次读取当前所属事务标记信息的日志片段,同时加载预先建立的库表和业务字段映射关系,根据映射关系提取日志片段中库表的业务字段、事务标记信息、事务提交时间、变动标识、库表名称、系列号。
81.步骤306,根据预先建立的库表和业务字段映射关系,确定业务字段对应的库表名称。
82.具体地,字段名变化后,根据预先建立的库表和业务字段映射关系,确定业务字段对应的库表名称、所属的事务标记信息和事务提交时间,并为业务字段对应的库表变动记录信息分配系列号。
83.步骤308,将日志片段的每条库表变动记录信息转换为业务报文;库表变动记录信息包括业务字段、变动标志、业务字段对应的库表名称、业务字段所属的事务标记信息、事务提交时间和系列号。
84.具体地,数据库从节点根据预先建立的库表和业务字段映射关系,确定日志片段对应的库表变动记录信息,将库表变动记录信息整合为业务报文,同一事务标记信息的库表变动记录信息对应的业务报文可通过事务标记信息进行关联;将所属同一事务标记信息的所有的日志片段对应的业务报文写到共享内存中,同时将事务标记信息和同一事务标记信息的库表种类数写到结果文件中。
85.本实施例中,设置了库表和业务字段映射关系,用于反映不同属性对应的库表中的字段关系,当业务字段发生增、删或改的变动时,可根据库表和业务字段映射关系确定变动的业务字段所属的库表,解耦异构系统间的数据格式依赖,梳理核心系统业务库表与业务字段的对照关系,使其免受核心系统库表结构的约束,并将库表名称以及变动的业务字段等相关的库表变动记录信息转换为业务报文,进而目标系统可实时感知核心系统的业务。
86.在一个实施例中,同一事务内可能涉及多张库表的多条记录变动,每次变动对应一个业务报文,如果目标系统得到的是一条条的业务报文,则报文内的公共信息字段就会冗余,如果没有公共信息字段目标系统又难以将所属同一事务的记录进行关联;其次,业务报文传输过程中可能存在丢失或延时,目标系统难以察觉难以保证数据一致性。因此,为解决上述问题,本实施例将同一事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。具
体地,如图4所示,将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统,包括:
87.步骤502,读取各事务标记信息对应的所有库表变动记录信息对应的业务报文,并按照系列号排序。
88.其中,各事务标记信息对应的所有库表变动记录信息对应的业务报文存储在共享内存内,同时各事务标记信息以及各事务标记信息对应的库表种类数存储在结果文件中。为提升数据库记录到业务报文的转化效率,本实施例动态配置打包进程,因此,如图4所示,本步骤具体包括以下步骤:
89.步骤1,读取结果文件,获得事务标记信息以及事务标记信息对应的库表种类数;结果文件存储有所有的事务标记信息以及各事务标记信息对应的库表种类数。
90.步骤2,根据当前的事务标记信息对应的库表种类数确定打包子进程的数量。
91.其中,打包子进程的数量小于当前的事务标记信息对应的库表种类数。每个打包子进程按照优先级顺序处理多个当前的事务标记信息对应的库表变动记录信息对应的业务报文。
92.步骤3,各打包子进程依次读取所属当前的事务标记信息对应的库表变动记录信息对应的业务报文,并按照系列号排序。
93.步骤504,根据当前事务标记信息对应的库表的结构属性,确定库表是否包括主键;若库表不包括主键,则确定库表中当前事务标记信息对应的所有库表变动记录信息对应的终态业务报文。
94.其中,主键是被挑选出来,作表库表的行的唯一标识的候选关键字,主要是起到一个唯一标识的作用。主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键。通过加载库表的结构属性可以确定库表是否包括主键。
95.同一事务标记信息的数据存储在多张库表中,同一事务标记信息的数据发生变动时,有可能多张库表同时发生变动,就会产生多个业务报文。当前异构系统的数据同步是抓取数据库的所有变动记录,但是对于带有主键的库表多次变动会产生很多中间态记录数据,在中间态记录数据的推送过程中,存在以下问题:首先,通过分布式系统推送中间态记录数据难以保证中间态记录数据的推送顺序和连续性,尤其是对于多并发的应用场景数据同步的准确性会存在隐患;其次,核心系统往往需要同步给多个目标系统,所有的目标系统拿到中间态数据都要进行排序和过滤,会徒增目标系统无谓的工作量;最后,目标系统关注的是核心系统的终态数据而非过程数据,因此,推送中间态记录数据会降低核心系统的数据质量以及提高目标系统的工作量。
96.为解决上述问题,在一些实施例中,若库表不包括主键,则根据库表中当前事务标记信息对应的所有库表变动记录信息生成对应的终态业务报文。
97.其中,库表的变动包括增、删和改三种形式,对于不包括主键的库表,同一事务的同一库表的单条库表变动记录信息即对应一个终态业务报文。例如,若同一事务的同一库表发生了i次增操作、u次改操作和d次删操作,则同一事务的同一库表具有i u d条库表变动记录信息,每条库表变动记录信息对应一个终态业务报文。
98.在一些实施例中,若库表包括主键,则提取业务报文的主键字段值和变动标识,筛选主键字段值不唯一的业务报文,得到主键值唯一的业务报文;根据主键值唯一的业务报
文确定库表的库表变动记录信息对应的变动模式,将变动模式与预设变动模式进行匹配,过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文。
99.其中,对应有主键的库表,库表的变动至少包括四种预设变动模式,第一种变动模式为:首先执行一次增操作,在库表中增加了新的业务字段,然后对新的业务字段执行至少0次的改操作,最后执行一次删操作,将新的业务字段全部删除,这种变动模式由于最后删除了新增的业务字段,因此,原始库表的记录数量并未发生变化,属于无效变动;第一种变动模式简记为:1增u改1删=0,0表示无效变动。第二种变动模式为:首先执行了一次增操作,在库表中增加了新的业务字段,然后对新的业务字段执行至少0次的改操作,最后未执行删操作,这种变动模式保留了增操作和改操作的变动记录信息,因此,原始库表的记录数量发生变化,属于有效变动;第二种变动模式简记为:1增u改0删=1,1表示有效变动。第三种变动模式为:首先未执行增操作,然后对原始的业务字段执行了至少0次的改操作,若执行了0次改操作,则最后执行一次删除原始的业务字段的删操作;若执行了至少1次改造成,则最后执行一次删除一次改操作的变动记录信息的删操作,上述两种情况都使原始库表的记录数量发生变化,属于有效变动;第三种变动模式简记为:0增u改1删=1,1表示有效变动。第四种变动模式为:首先未执行增操作,然后对原始的业务字段执行了至少0次的改操作,最后未执行删操作,这种变动模式保留了改操作的变动记录信息,因此,原始库表的记录数量发生变化,属于有效变动;第四种变动模式简记为:0增u改0删=1,1表示有效变动。
100.具体地,若库表包括主键,则提取业务报文的主键字段值和变动标识,筛选主键字段值不唯一的业务报文,得到主键值唯一的业务报文;根据主键值唯一的业务报文确定库表的库表变动记录信息对应的变动模式,将变动模式与预设变动模式进行匹配,若变动模式属于无效变动,则不推送库表变动记录信息的业务报文;若变动模式属于有效变动,则过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文。
101.步骤506,提取终态业务报文的事务标记信息、事务提交时间、记录数和数组编号作为公共信息头,将终态业务报文中业务字段和变动标识作为数组的元素,得到标准的业务报文数组。
102.其中,若记录数超过预设值,则将终态业务报文整合成多个业务报文数组,并记录数据编号。最后将整合后的报文数组发送到分布式消息系统,由消息系统准实时地推送到给多个目标系统。目标系统可根据事务标记信息和数组编号进行关联,并通过记录数核实报文数组是否丢失。
103.本实施例中,针对有主键的库表,过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文,可提高数据库从节点与目标系统数据同步的准确性,以及核心系统的数据质量,降低目标系统的工作量;针对无主键的库表,库表的每条库表变动记录信息对应一个终态业务报文,避免同步数据的遗漏;将同一事务的同一库表的库表变动记录信息对应的业务报文打包成业务报文数组,可缩短报文的有效长度,并且可有效保证目标系统的数据一致性。
104.在一个实施例中,本实施例还提供一种业务信息同步方法,如图6所示,具体包括以下步骤:
105.步骤602,获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息。
106.步骤604,将数据库从节点的日志拆解成多个日志片段,并采用事务标记和序号标记的双重标记方式对日志片段进行标记,同时将日志片段内的事务标记信息以及所属该事务标记信息的最大序号写到信号文件中。
107.步骤606,读取信号文件,得到日志片段的事务标记信息以及事务标记信息对应的最大的序号标记。
108.步骤608,根据事务标记信息对应的最大的序号标记,确定抽数子进程的数量,每个抽数子进程读取多个日志片段。
109.步骤610,各抽数子进程依次读取当前所属事务标记信息的日志片段,同时加载预先建立的库表和业务字段映射关系,根据映射关系提取日志片段中库表的业务字段。
110.步骤612,根据预先建立的库表和业务字段映射关系,确定业务字段对应的库表名称。
111.步骤614,将日志片段的每条库表变动记录信息转换为业务报文;库表变动记录信息包括业务字段、变动标志、业务字段对应的库表名称、业务字段所属的事务标记信息、事务提交时间和系列号。
112.步骤616,读取结果文件,获得事务标记信息以及事务标记信息对应的库表种类数;结果文件存储有所有的事务标记信息以及各事务标记信息对应的库表种类数。
113.步骤618,根据当前的事务标记信息对应的库表种类数确定打包子进程的数量。
114.步骤620,各打包子进程依次读取所属当前的事务标记信息对应的库表变动记录信息对应的业务报文,并按照系列号排序。
115.步骤622,根据当前事务标记信息对应的库表的结构属性,确定库表是否包括主键;若库表不包括主键,则执行步骤624;若库表包括主键,则执行步骤626。
116.步骤624,根据库表中当前事务标记信息对应的所有库表变动记录信息生成对应的终态业务报文,执行步骤628。
117.步骤626,提取业务报文的主键字段值和变动标识,筛选主键字段值不唯一的业务报文,得到主键值唯一的业务报文;确定库表的库表变动记录信息对应的变动模式,将变动模式与预设变动模式进行匹配,过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文。
118.步骤628,提取终态业务报文的事务标记信息、事务提交时间、记录数和数组编号作为公共信息头,将终态业务报文中业务字段和变动标识作为数组的元素,得到标准的业务报文数组。
119.本实施例中,为了解决异构系统的实时感知问题,从兼顾同步时效和系统性能的角度出发,将系统间的数据同步迁移到核心系统的从数据库节点上来,在保证同步时效的同时避免对核心系统主节点的性能影响;解耦异构系统间的数据格式依赖,梳理核心系统业务库表与业务字段的对照关系,使其免受核心系统库表结构的约束,将数据库记录整合成标准的业务报文,进而目标系统可实时感知核心系统的业务;动态配置抽数进程和打包进程,提升数据库记录到业务报文的转化效率;为核心系统建立标准的业务报文规范,增强了核心系统与周边系统数据同步的适配性,新的目标系统可直接消费核心系统的标准报文
即可实现同步感知,而核心系统并不需要额外的改造。
120.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
121.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的业务信息同步方法的业务信息同步装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个业务信息同步装置实施例中的具体限定可以参见上文中对于业务信息同步方法的限定,在此不再赘述。
122.在一个实施例中,如图7所示,提供了一种业务信息同步装置。所述装置包括:
123.获取模块100,用于获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
124.拆解模块200,用于将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
125.推送模块300,用于将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
126.在其中一个实施例中,拆解模块200还用于:将数据库从节点的日志拆解成多个日志片段,并采用事务标记和序号标记的双重标记方式对日志片段进行标记,所属相同事务的日志片段的事务标记信息相同;
127.提取日志片段的业务字段,并对库表记录信息中变化后的业务字段赋予字段值,根据字段值为日志片段标识变动标志;
128.根据预先建立的库表和业务字段映射关系,确定业务字段对应的库表名称;
129.将日志片段的每条库表变动记录信息转换为业务报文;库表变动记录信息包括业务字段、变动标志、业务字段对应的库表名称、业务字段所属的事务标记信息、事务提交时间和系列号。
130.在其中一个实施例中,拆解模块200还用于:读取信号文件,得到日志片段的事务标记信息以及事务标记信息对应的最大的序号标记;信号文件存储有各事务标记信息以及事务标记信息对应的最大的序号标记;
131.根据事务标记信息对应的最大的序号标记,确定抽数子进程的数量,每个抽数子进程读取多个日志片段;
132.各抽数子进程依次读取当前所属事务标记信息的日志片段,同时加载预先建立的库表和业务字段映射关系,根据映射关系提取日志片段中库表的业务字段。
133.在其中一个实施例中,推送模块300还用于:读取各事务标记信息对应的所有库表变动记录信息对应的业务报文,并按照系列号排序;
134.根据当前事务标记信息对应的库表的结构属性,确定库表是否包括主键;若库表不包括主键,则确定库表中当前事务标记信息对应的所有库表变动记录信息对应的终态业务报文;
135.提取终态业务报文的事务标记信息、事务提交时间、记录数和数组编号作为公共信息头,将终态业务报文中业务字段和变动标识作为数组的元素,得到标准的业务报文数组。
136.在其中一个实施例中,推送模块300还用于:读取结果文件,获得所有的事务标记信息以及各事务标记信息对应的库表种类数;结果文件存储有所有的事务标记信息以及各事务标记信息对应的库表种类数;
137.根据当前的事务标记信息对应的库表种类数确定打包子进程的数量;
138.各打包子进程依次读取所属当前的事务标记信息对应的库表变动记录信息对应的业务报文,并按照系列号排序。
139.在其中一个实施例中,推送模块300还用于:在库表包括主键时,提取业务报文的主键字段值和变动标识,筛选主键字段值不唯一的业务报文,得到主键值唯一的业务报文;
140.确定库表的库表变动记录信息对应的变动模式,将变动模式与预设变动模式进行匹配,过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文。
141.在其中一个实施例中,推送模块300还用于:在记录数超过预设值时,将终态业务报文整合成多个业务报文数组,并记录数据编号。
142.上述业务信息同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
143.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种业务信息同步方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
144.本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
145.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有
计算机程序,该处理器执行计算机程序时实现以下步骤:
146.获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
147.将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
148.将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
149.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
150.将数据库从节点的日志拆解成多个日志片段,并采用事务标记和序号标记的双重标记方式对日志片段进行标记,所属相同事务的日志片段的事务标记信息相同;
151.提取日志片段的业务字段,并对库表记录信息中变化后的业务字段赋予字段值,根据字段值为日志片段标识变动标志;
152.根据预先建立的库表和业务字段映射关系,确定业务字段对应的库表名称;
153.将日志片段的每条库表变动记录信息转换为业务报文;库表变动记录信息包括业务字段、变动标志、业务字段对应的库表名称、业务字段所属的事务标记信息、事务提交时间和系列号。
154.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
155.读取信号文件,得到日志片段的事务标记信息以及事务标记信息对应的最大的序号标记;信号文件存储有各事务标记信息以及事务标记信息对应的最大的序号标记;
156.根据事务标记信息对应的最大的序号标记,确定抽数子进程的数量,每个抽数子进程读取多个日志片段;
157.各抽数子进程依次读取当前所属事务标记信息的日志片段,同时加载预先建立的库表和业务字段映射关系,根据映射关系提取日志片段中库表的业务字段。
158.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
159.读取各事务标记信息对应的所有库表变动记录信息对应的业务报文,并按照系列号排序;
160.根据当前事务标记信息对应的库表的结构属性,确定库表是否包括主键;若库表不包括主键,则确定库表中当前事务标记信息对应的所有库表变动记录信息对应的终态业务报文;
161.提取终态业务报文的事务标记信息、事务提交时间、记录数和数组编号作为公共信息头,将终态业务报文中业务字段和变动标识作为数组的元素,得到标准的业务报文数组。
162.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
163.读取结果文件,获得所有的事务标记信息以及各事务标记信息对应的库表种类数;结果文件存储有所有的事务标记信息以及各事务标记信息对应的库表种类数;
164.根据当前的事务标记信息对应的库表种类数确定打包子进程的数量;
165.各打包子进程依次读取所属当前的事务标记信息对应的库表变动记录信息对应的业务报文,并按照系列号排序。
166.在一个实施例中,若库表包括主键,则处理器执行计算机程序时还实现以下步骤:
167.提取业务报文的主键字段值和变动标识,筛选主键字段值不唯一的业务报文,得到主键值唯一的业务报文;
168.确定库表的库表变动记录信息对应的变动模式,将变动模式与预设变动模式进行匹配,过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文。
169.在一个实施例中,若记录数超过预设值,则处理器执行计算机程序时还实现以下步骤:将终态业务报文整合成多个业务报文数组,并记录数据编号。
170.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
171.获取数据库从节点已提交事务的日志;日志记载有数据库主节点实时同步至数据库从节点过程中已提交的事务标记信息和所有库表变动记录信息;
172.将数据库从节点的日志拆解成多个日志片段,提取日志片段的库表变动记录信息,根据预先建立的库表和业务字段映射关系,将日志片段的每条库表变动记录信息转换为业务报文;
173.将各事务标记信息对应的所有库表变动记录信息对应的业务报文打包成标准的业务报文数组,并将整合后的业务报文数组实时地推送给多个目标系统。
174.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
175.将数据库从节点的日志拆解成多个日志片段,并采用事务标记和序号标记的双重标记方式对日志片段进行标记,所属相同事务的日志片段的事务标记信息相同;
176.提取日志片段的业务字段,并对库表记录信息中变化后的业务字段赋予字段值,根据字段值为日志片段标识变动标志;
177.根据预先建立的库表和业务字段映射关系,确定业务字段对应的库表名称;
178.将日志片段的每条库表变动记录信息转换为业务报文;库表变动记录信息包括业务字段、变动标志、业务字段对应的库表名称、业务字段所属的事务标记信息、事务提交时间和系列号。
179.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
180.读取信号文件,得到日志片段的事务标记信息以及事务标记信息对应的最大的序号标记;信号文件存储有各事务标记信息以及事务标记信息对应的最大的序号标记;
181.根据事务标记信息对应的最大的序号标记,确定抽数子进程的数量,每个抽数子进程读取多个日志片段;
182.各抽数子进程依次读取当前所属事务标记信息的日志片段,同时加载预先建立的库表和业务字段映射关系,根据映射关系提取日志片段中库表的业务字段。
183.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
184.读取各事务标记信息对应的所有库表变动记录信息对应的业务报文,并按照系列号排序;
185.根据当前事务标记信息对应的库表的结构属性,确定库表是否包括主键;若库表不包括主键,则确定库表中当前事务标记信息对应的所有库表变动记录信息对应的终态业务报文;
186.提取终态业务报文的事务标记信息、事务提交时间、记录数和数组编号作为公共信息头,将终态业务报文中业务字段和变动标识作为数组的元素,得到标准的业务报文数组。
187.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
188.读取结果文件,获得所有的事务标记信息以及各事务标记信息对应的库表种类数;结果文件存储有所有的事务标记信息以及各事务标记信息对应的库表种类数;
189.根据当前的事务标记信息对应的库表种类数确定打包子进程的数量;
190.各打包子进程依次读取所属当前的事务标记信息对应的库表变动记录信息对应的业务报文,并按照系列号排序。
191.在一个实施例中,若库表包括主键,则计算机程序被处理器执行时还实现以下步骤:
192.提取业务报文的主键字段值和变动标识,筛选主键字段值不唯一的业务报文,得到主键值唯一的业务报文;
193.确定库表的库表变动记录信息对应的变动模式,将变动模式与预设变动模式进行匹配,过滤掉库表的库表变动记录信息连续变动对应的业务报文,取库表变动记录信息最后一次变动时对应的业务报文作为最终态的业务报文。
194.在一个实施例中,若记录数超过预设值,则计算机程序被处理器执行时还实现以下步骤:将终态业务报文整合成多个业务报文数组,并记录数据编号。
195.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
196.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
197.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
198.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
199.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献