会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 信号处理 / 数据采集 / 数据采集系统和用于数据采集系统的分析方法

数据采集系统和用于数据采集系统的分析方法

阅读:707发布:2021-02-25

IPRDB可以提供数据采集系统和用于数据采集系统的分析方法专利检索,专利查询,专利分析的服务。并且本发明提出一种数据采集系统和用于数据采集系统的分析方法,该数据采集系统包括日志分析器,用于将数据库中重做日志的变更记录信息交付至事务合成器;事务合成器,用于缓存变更记录信息中未提交的事务,在识别到变更记录信息中包含事务提交操作时,分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器;数据关系分析器,用于提取事务消息中产生变更记录信息的数据表,并根据获取到的数据交付器实例与数据表组之间的映射关系将事务消息分发至对应的数据交付器;数据交付器,用于根据交付目标的类型选择对应的交付算法,以执行交付。通过本发明能够支持数据的并行处理,有效降低数据共享的延时,提升事务同步的性能和效率。,下面是数据采集系统和用于数据采集系统的分析方法专利的具体信息内容。

1.一种数据采集系统,其特征在于,包括:

日志分析器,用于监测数据库中重做日志的变更状态,并在所述重做日志产生变更时获取所述数据库的重做日志,生成变更记录信息,并将所述变更记录信息交付至事务合成器;

所述事务合成器,用于获取所述变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到所述变更记录信息中包含事务提交操作时,获取所述事务提交操作并分析所述事务提交操作对应的缓存位置,生成事务消息,并将所述事务消息交付至数据关系分析器;

所述数据关系分析器,用于接收所述事务消息,提取所述事务消息中产生变更记录信息的数据表,并根据所述事务消息获取数据交付器实例与所述数据表组之间的映射关系,根据所述映射关系将所述事务消息分发至对应的数据交付器;

所述数据交付器,用于接收所述数据关系分析器分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行交付;

所述根据所述事务消息获取数据交付器实例与所述数据表组之间的映射关系,包括:根据规则库中定义的依赖关系对所述事务消息包含的数据表进行分组,以得到数据表组和分组数量;判断所述分组数量是否大于预设数量阈值,并在大于所述预设数量阈值时,对所述数据表组进行合并,以得到合并后的数据表组;获取与所述数据表组,或者,与所述合并后的数据表组对应的数据交付器实例;根据所述数据交付器实例获取所述数据交付器实例与数据表组之间的映射关系。

2.如权利要求1所述的数据采集系统,其特征在于,所述生成变更记录信息,包括:所述日志分析器根据连接的所述数据库的类型选取对应的重做日志分析算法;

根据所述对应的重做日志分析算法和所述数据库中的变更信息生成变更信息记录。

3.如权利要求2所述的数据采集系统,其特征在于,所述日志分析器还用于记录每次已生成变更信息记录时重做日志的位置,以在所述数据库再一次产生变更时,从前一次记录的所述已生成变更信息记录时重做日志的位置之后获取所述数据库的重做日志,以避免对已生成变更信息记录的重做日志作二次解析。

4.如权利要求3所述的数据采集系统,其特征在于,所述事务合成器还用于在识别到所述变更记录信息中包含事务回滚操作时,清空所述事务回滚操作对应的事务的缓存信息,并丢弃所述事务回滚操作对应的事务。

5.如权利要求4所述的数据采集系统,其特征在于,所述根据规则库中定义的依赖关系对所述事务消息包含的数据表进行分组,包括:将具有所述依赖关系的数据表划分为一组,其中,所述依赖关系包括:依赖关系a、两个所述事务消息包含同一张数据表的变更记录信息;依赖关系b、两个所述事务消息中所包含的数据表的变更记录信息有主键和外键的依赖关系;依赖关系c、两个事务消息操作的数据表之间存在业务依赖关系。

6.如权利要求5所述的数据采集系统,其特征在于,所述依赖关系a和所述依赖关系b由系统内置程序预先设定,所述依赖关系c由用户进行配置,所述数据关系分析器还用于接收所述用户设置的业务依赖关系,以使所述用户对所述依赖关系c进行配置。

7.如权利要求4所述的数据采集系统,其特征在于,所述对所述数据表组进行合并,以得到合并后的数据表组,包括:根据所述数据表组中的数据表的变更频率,对所述数据表组进行合并,以得到合并后的数据表组。

8.如权利要求1-7任一项所述的数据采集系统,其特征在于,所述数据采集系统包含一个或多个的所述数据交付器。

9.一种用于数据采集系统的分析方法,其特征在于,包括以下步骤:

监测数据库中重做日志的变更状态,并在所述数据库中重做日志产生变更时获取所述数据库的重做日志,生成变更记录信息,并将所述变更记录信息交付至事务合成器;

获取所述变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到所述变更记录信息中包含事务提交操作时,获取所述事务提交操作并分析所述事务提交操作对应的缓存位置,生成事务消息,并将所述事务消息交付至数据关系分析器;

接收所述事务消息,提取所述事务消息中产生变更记录信息的数据表,并根据所述事务消息获取数据交付器实例与所述数据表组之间的映射关系,根据所述映射关系将所述事务消息分发至对应的数据交付器;

接收所述数据关系分析器分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行交付;

所述根据所述事务消息获取数据交付器实例与所述数据表组之间的映射关系,包括:根据规则库中定义的依赖关系对所述事务消息包含的数据表进行分组,以得到数据表组和分组数量;判断所述分组数量是否大于预设数量阈值,并在大于所述预设数量阈值时,对所述数据表组进行合并,以得到合并后的数据表组;获取与所述数据表组,或者,与所述合并后的数据表组对应的数据交付器实例;根据所述数据交付器实例获取所述数据交付器实例与数据表组之间的映射关系。

10.如权利要求9所述的用于数据采集系统的分析方法,其特征在于,所述生成变更记录信息,包括:所述日志分析器根据连接的所述数据库的类型选取对应的重做日志分析算法;

根据所述对应的重做日志分析算法和所述数据库中的变更信息生成变更信息记录。

11.如权利要求10所述的用于数据采集系统的分析方法,其特征在于,所述监测数据库中重做日志的变更状态,并在所述数据库中重做日志产生变更时获取所述数据库的重做日志,生成变更记录信息,并将所述变更记录信息交付至事务合成器之后,所述方法还包括:记录每次已生成变更信息记录时重做日志的位置,以在所述数据库再一次产生变更时,从前一次记录的所述已生成变更信息记录时重做日志的位置之后获取所述数据库的重做日志,以避免对已生成变更信息记录的重做日志作二次解析。

12.如权利要求11所述的用于数据采集系统的分析方法,其特征在于,还包括:在识别到所述变更记录信息中包含事务回滚操作时,清空所述事务回滚操作对应的事务的缓存信息,并丢弃所述事务回滚操作对应的事务。

13.如权利要求12所述的用于数据采集系统的分析方法,其特征在于,所述根据规则库中定义的依赖关系对所述事务消息包含的数据表进行分组,包括:将具有所述依赖关系的数据表划分为一组,其中,所述依赖关系包括:依赖关系a、两个所述事务消息包含同一张数据表的变更记录信息;依赖关系b、两个所述事务消息中所包含的数据表的变更记录信息有主键和外键的依赖关系;依赖关系c、两个事务消息操作的数据表之间存在业务依赖关系。

14.如权利要求13所述的用于数据采集系统的分析方法,其特征在于,所述依赖关系a和所述依赖关系b由系统内置程序预先设定,所述依赖关系c由用户进行配置,所述方法还包括:接收所述用户设置的业务依赖关系,以使所述用户对所述依赖关系c进行配置。

15.如权利要求12所述的用于数据采集系统的分析方法,其特征在于,所述对所述数据表组进行合并,以得到合并后的数据表组,包括:根据所述数据表组中的数据表的变更频率,对所述数据表组进行合并,以得到合并后的数据表组。

16.如权利要求9-15任一项所述的用于数据采集系统的分析方法,其特征在于,所述数据交付器为一个或者多个。

说明书全文

数据采集系统和用于数据采集系统的分析方法

技术领域

[0001] 本发明涉及数据采集技术领域,尤其涉及一种数据采集系统和用于数据采集系统的分析方法。

背景技术

[0002] 随着“互联网+”以及“工业4.0”时代的到来,业务量爆炸式增长,业务种类日趋复杂,信息系统也越来越多,核心数据的管理变得日益困难。如何实现数据的共享,数据采集的高性能,进而提取核心价值是企业信息化建设的关键。
[0003] 现有技术中,实现变更数据采集的技术方案包括:触发器、时间戳、标志位、快照和日志分析,在这些方式下,不能够便捷地实现数据的并行处理,事务同步的性能和效率较低。

发明内容

[0004] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005] 为此,本发明的一个目的在于提出一种数据采集系统,能够支持数据的并行处理,有效降低数据共享的延时,提升事务同步的性能和效率。
[0006] 本发明的另一个目的在于提出一种用于数据采集系统的分析方法。
[0007] 为达到上述目的,本发明第一方面实施例提出的数据采集系统,包括:日志分析器,用于监测数据库状态,并在所述数据库产生变更时获取所述数据库的重做日志,生成变更记录信息,并将所述变更记录信息交付至事务合成器;所述事务合成器,用于获取所述变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到所述变更记录信息中包含事务提交操作时,获取所述事务提交操作并分析所述事务提交操作对应的缓存位置,生成事务消息,并将所述事务消息交付至数据关系分析器;所述数据关系分析器,用于接收所述事务消息,提取所述事务消息中产生变更记录信息的数据表,并根据所述事务消息获取数据交付器实例与所述数据表组之间的映射关系,根据所述映射关系将所述事务消息分发至对应的数据交付器;所述数据交付器,用于接收所述数据关系分析器分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行交付。
[0008] 本发明第一方面实施例提出的数据采集系统,通过获取数据库的重做日志,生成变更记录信息,并将变更记录信息交付至事务合成器,事务合成器在识别到变更记录信息中包含事务提交操作时,分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器,数据关系分析器提取事务消息中产生变更记录信息的数据表,并获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据交付器,数据交付器根据交付目标的类型选择对应的交付算法,以执行交付,能够支持数据的并行处理,有效降低数据共享的延时,提升事务同步的性能和效率。
[0009] 为达到上述目的,本发明第二方面实施例提出的用于数据采集系统的分析方法,包括:监测数据库中重做日志的变更状态,并在所述数据库中重做日志产生变更时获取所述数据库的重做日志,生成变更记录信息,并将所述变更记录信息交付至事务合成器;获取所述变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到所述变更记录信息中包含事务提交操作时,获取所述事务提交操作并分析所述事务提交操作对应的缓存位置,生成事务消息,并将所述事务消息交付至数据关系分析器;接收所述事务消息,提取所述事务消息中产生变更记录信息的数据表,并根据所述事务消息获取数据交付器实例与所述数据表组之间的映射关系,根据所述映射关系将所述事务消息分发至对应的数据交付器;接收所述数据关系分析器分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行交付。
[0010] 本发明第二方面实施例提出的用于数据采集系统的分析方法,通过获取数据库的重做日志,生成变更记录信息,并将变更记录信息交付至事务合成器,事务合成器在识别到变更记录信息中包含事务提交操作时,分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器,数据关系分析器提取事务消息中产生变更记录信息的数据表,并获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据交付器,数据交付器根据交付目标的类型选择对应的交付算法,以执行交付,能够支持数据的并行处理,有效降低数据共享的延时,提升事务同步的性能和效率。
[0011] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0012] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0013] 图1是本发明一实施例提出的数据采集系统的结构示意图;
[0014] 图2是本发明实施例中重做日志中的变更信息存储结构示意图;
[0015] 图3是本发明另一实施例提出的用于数据采集系统的分析方法的流程示意图;
[0016] 图4是本发明另一实施例提出的用于数据采集系统的分析方法的流程示意图。

具体实施方式

[0017] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0018] 图1是本发明一实施例提出的数据采集系统的结构示意图,该数据采集系统10包括日志分析器101,用于监测数据库中重做日志的变更状态,并在重做日志产生变更时获取数据库的重做日志,生成变更记录信息,并将变更记录信息交付至事务合成器102;事务合成器102,用于获取变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到变更记录信息中包含事务提交操作时,获取事务提交操作并分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器103;数据关系分析器103,用于接收事务消息,提取事务消息中产生变更记录信息的数据表,并根据事务消息获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据交付器104;数据交付器104,用于接收数据关系分析器103分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行交付。
[0019] 在本发明的一个实施例中,该数据采集系统10包括日志分析器101,用于监测数据库中重做日志的变更状态,并在重做日志产生变更时获取数据库的重做日志,生成变更记录信息,并将变更记录信息交付至事务合成器102。
[0020] 例如,当数据库中的数据表插入一条数据时,重做日志会记录本次插入操作,数据库的重做日志产生变更,日志分析器101实时监测重做日志的变更状态,并当重做日志产生变更时获取数据库的重做日志。
[0021] 其中,重做日志(Redo Log)由两个以上的文件组成,用于记录数据库中所有的变更信息、提供数据恢复功能,以及维护数据库的完整性。
[0022] 数据库中的变更信息例如,用户修改了数据表A中的字段。
[0023] 数据库类型包括层次式数据库、网络式数据库和关系式数据库三种。
[0024] 可选地,生成变更记录信息,包括:日志分析器101根据连接的数据库的类型选取对应的重做日志分析算法;根据对应的重做日志分析算法和数据库中的变更信息生成变更信息记录。
[0025] 可以通过重做日志中记录的变更信息重现数据库产生变更的具体操作,不同类型的数据库的数据存储结构不同,因此,在不同类型的数据库中,重做日志所记录的变更信息的结构也不相同,对于不同类型的数据库,日志分析器101需要根据对应的重做日志分析算法对重做日志进行分析处理,以生成变更记录信息。
[0026] 例如,如图2所示,为本发明实施例中重做日志中的变更信息存储结构示意图,存储结构的特点包括:(1)属于同一个事务的变更记录信息并非连续存储;(2)多个事务包含的变更记录信息交叉存储;(3)重做日志中既存储了事务提交操作的变更记录,同时也存储了事务回滚操作的变更记录。
[0027] 重做日志中的变更记录信息例如图2所示的事务1开始、事务2开始,或者事务2回滚。
[0028] 可选地,日志分析器101还用于记录每次已生成变更信息记录时重做日志的位置,以在数据库再一次产生变更时,从前一次记录的已生成变更信息记录时重做日志的位置之后获取数据库的重做日志,以避免对已生成变更信息记录的重做日志作二次解析。
[0029] 其中,重做日志的位置可以通过重做日志的排列顺序标记,例如,已生成变更信息记录的重做日志的位置排在第三位,则当监测到数据库再一次产生变更时,获取排列在第四位的重做日志,以对排列在第四位的重做日志进行解析。
[0030] 在本发明的一个实施例中,该数据采集系统10还包括事务合成器102,用于获取变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到变更记录信息中包含事务提交操作时,获取事务提交操作并分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器103。
[0031] 其中,在计算机术语中,事务是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),当数据库中的数据项有更新时,生成事务消息。
[0032] 例如,当检测到事务1提交的操作时,生成事务消息,该事务消息可以命名为事务1。
[0033] 具体地,事务合成器102在接收到变更记录信息后,首先根据变更记录信息中的事务序列号对事务进行划分,获取并缓存尚未执行事务提交操作的事务。
[0034] 其中,事务序列号例如1、2、3,划分后的事务例如事务1、事务2、事务3。
[0035] 例如,如图2所示,在重做日志1中,包括事务1开始的变更记录信息,但是不包括事务1提交的变更记录信息,则事务1开始的变更记录信息为尚未执行事务提交操作的变更记录信息。
[0036] 又例如,如图2所示,当事务合成器102识别到重做日志2中的事务1提交的变更记录信息后,获取该事务1提交的变更记录信息,并记录事务1提交的操作对应的缓存位置,且生成事务消息。
[0037] 可选地,事务合成器102还用于在识别到变更记录信息中包含事务回滚操作时,清空事务回滚操作对应的事务的缓存信息,并丢弃事务回滚操作对应的事务。
[0038] 由于只有对完成一个程序执行单元的事务进行交付才有意义,所以事务合成器102会清空事务回滚操作对应的事务的缓存信息,并丢弃事务回滚操作对应的事务。
[0039] 例如,如图2所示,在重做日志1中的变更记录信息中包含事务2回滚,则事务合成器102清空事务2的缓存信息,并丢弃事务2,当事务合成器102解析重做日志1时,获取到事务3,则将事务3的事务消息交付至数据关系分析器103,进一步,当事务合成器102解析重做日志2时,获取到事务1的事务消息,则将事务1的事务消息交付至数据关系分析器103。
[0040] 在本发明中,事务合成器102根据重做日志中记录的事务提交操作的顺序,而不是事务的序列号,将事务消息交付至数据关系分析器103,将数据采集系统中传输的单位从单条变更记录信息提升到事务的层面,并且,事务合成器102使得数据采集系统只输出具有提交操作的事务。而现有技术中,数据采集系统只传输单条的变更记录信息,到最终交付阶段再进行事务合成以及事务筛选,本发明有效减少数据采集系统中传输的数据量,将传输的单位提升到事务的层面,有效保证传输数据的完整性和有效性,提升数据同步效率。
[0041] 在本发明的一个实施例中,该数据采集系统10还包括数据关系分析器103,用于接收事务消息,提取事务消息中产生变更记录信息的数据表,并根据事务消息获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据交付器104。
[0042] 可选地,根据事务消息获取数据交付器实例与数据表组之间的映射关系,包括:根据规则库中定义的依赖关系对事务消息包含的数据表进行分组,以得到数据表组和分组数量;判断分组数量是否大于预设数量阈值,并在大于预设数量阈值时,对数据表组进行合并,以得到合并后的数据表组;获取与数据表组,或者,与合并后的数据表组对应的数据交付器实例;根据数据交付器实例获取数据交付器实例与数据表组之间的映射关系。
[0043] 具体地,数据关系分析器103接收事务合成器102交付的事务消息,基于规则库中定义解除事务间的基于时间的顺序依赖关系,将事务交付给数据交付器104进行并行交付,以提升交付效率。
[0044] 本发明中,数据库中的重做日志是根据数据库发生变更的时间顺序进行变更信息存储的,即重做日志只记录数据库变更发生的时间,而不记录数据库变更操作之间的关联关系,这种以时间为依据的记录方式强制地给数据库变更绑定基于时间的顺序依赖关系,忽略数据库变更的关联关系,因此,需要解除事务间的基于时间的顺序依赖关系,恢复数据采集系统并行处理事务的能力,提升同步性能和效率,降低数据共享的延迟时间。
[0045] 可选地,根据规则库中定义的依赖关系对事务消息包含的数据表进行分组,包括:将具有依赖关系的数据表划分为一组,其中,依赖关系包括:依赖关系a、两个事务消息包含同一张数据表的变更记录信息;依赖关系b、两个事务消息中所包含的数据表的变更记录信息有主键和外键的依赖关系;依赖关系c、两个事务消息操作的数据表之间存在业务依赖关系。
[0046] 其中,依赖关系a和依赖关系b由系统内置程序预先设定,依赖关系c由用户进行配置,数据关系分析器还用于接收用户设置的业务依赖关系,以使用户对依赖关系c进行配置。
[0047] 依赖关系a和依赖关系b为强依赖关系,依赖关系c为弱依赖关系。
[0048] 依赖关系a例如,事务1包含对数据表A中的字段a进行删除操作,事务2包含对数据表A中的字段b进行修改操作,由于事务1和事务2均包含对数据表A的操作,则事务1和事务2具有依赖关系a,将事务1和事务2划分到同一组。
[0049] 依赖关系b例如,事务1包含对数据表A的操作,事务2包含对数据表B的操作,且数据表A中的字段a为主键,同时,字段a是数据表B的外键,则事务1和事务2具有依赖关系b,将事务1和事务2划分到同一组。
[0050] 依赖关系c例如,事务1包含对数据表A的操作,事务2包含对数据表B的操作,且数据表A和数据表B存在业务依赖关系,则事务1和事务2具有依赖关系c,将事务1和事务2划分到同一组。
[0051] 其中,预设数量阈值例如为5组。
[0052] 例如,根据规则库中定义的依赖关系对事务消息包含的数据表进行分组,得到的分组数量为3组,未超过预设数量阈值5组,则获取与数据表组对应的数据交付器实例,并根据数据交付器实例获取数据交付器实例与数据表组之间的映射关系。
[0053] 另一方面,如果分组数量超过预设数量阈值,则根据数据表组中的数据表的变更频率,对数据表组进行合并,以得到合并后的数据表组。
[0054] 具体地,在进行数据表组合并时,需要根据数据表组中包含的数据表的变更频率进行合并,最优的合并结果为每个数据表组包含的数据表的变更频率基本一致。
[0055] 其中,数据表的变更频率评定规则为:设定数据表的默认变更频率为1,如果在业务办理过程中,很少修改某张数据表,则可以将该数据表的变更频率设置为0。
[0056] 具体地,可以首先计算两个数据表组中所包含的数据表的变更频率之和,将变更频率最接近的两个数据表组合并为一个数据表组,依次类推,直到数据表组的分组数量小于或者等于预设数量阈值。
[0057] 例如,数据表组1中包含数据表A、数据表B,以及数据表C,其中,数据表A的变更频率为1,数据表B的变更频率为0,数据表C的变更频率为1,则数据表组1的变更频率为2。数据表组2中包含数据表C、数据表D,以及数据表E,其中,数据表C的变更频率为1,数据表D的变更频率为0,数据表E的变更频率为1,则数据表组2的变更频率为2,此时,可以将数据表组1和数据表组2合并为一个数据表组。
[0058] 进一步,当确定数据表组后,数据分析器103为每个数据表组创建一个与该数据表组对应的数据交付器实例,并且,数据分析器103缓存数据交付器实例与数据表组之间的映射关系,并基于缓存的数据表组与数据交付器实例的映射关系,将事务消息分发至对应的数据交付器104。
[0059] 在本发明的一个实施例中,该数据采集系统10还包括数据交付器104,用于接收数据关系分析器103分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行交付。
[0060] 其中,数据采集系统包含一个或多个的数据交付器104。
[0061] 具体地,数据交付器104支持同时启动多个数据交付器实例,每个数据交付器实例之间独立运行,相互之间不存在干扰,以支持数据的并行处理,数据交付器104按照接收事务消息的顺序执行交付。
[0062] 例如,接收事务消息的顺序为事务1、事务2、事务4、事务3,则按照事务1、事务2、事务4、事务3的顺序对事务消息进行交付。
[0063] 本实施例中,通过获取数据库的重做日志,生成变更记录信息,并将变更记录信息交付至事务合成器,事务合成器在识别到变更记录信息中包含事务提交操作时,分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器,数据关系分析器提取事务消息中产生变更记录信息的数据表,并获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据交付器,数据交付器根据交付目标的类型选择对应的交付算法,以执行交付,能够支持数据的并行处理,有效降低数据共享的延时,提升事务同步的性能和效率。
[0064] 图3是本发明另一实施例提出的用于数据采集系统的分析方法的流程示意图,该方法包括:
[0065] S31:监测数据库中重做日志的变更状态,并在数据库中重做日志产生变更时获取数据库的重做日志,生成变更记录信息,并将变更记录信息交付至事务合成器。
[0066] 例如,当数据库中的数据表插入一条数据时,重做日志会记录本次插入操作,数据库的重做日志产生变更,日志分析器101实时监测重做日志的变更状态,并当重做日志产生变更时获取数据库的重做日志。
[0067] 其中,重做日志(Redo Log)由两个以上的文件组成,用于记录数据库中所有的变更信息、提供数据恢复功能,以及维护数据库的完整性。
[0068] 数据库中的变更信息例如,用户修改了数据表A中的字段。
[0069] 数据库类型包括层次式数据库、网络式数据库和关系式数据库三种。
[0070] 可选地,生成变更记录信息,包括:日志分析器根据连接的数据库的类型选取对应的重做日志分析算法;根据对应的重做日志分析算法和数据库中的变更信息生成变更信息记录。
[0071] 可以通过重做日志中记录的变更信息重现数据库产生变更的具体操作,不同类型的数据库的数据存储结构不同,因此,在不同类型的数据库中,重做日志所记录的变更信息的结构也不相同,对于不同类型的数据库,日志分析器101需要根据对应的重做日志分析算法对重做日志进行分析处理,以生成变更记录信息。
[0072] 例如,如图2所示,为本发明实施例中重做日志中的变更信息存储结构示意图,存储结构的特点包括:(1)属于同一个事务的变更记录信息并非连续存储;(2)多个事务包含的变更记录信息交叉存储;(3)重做日志中既存储了事务提交操作的变更记录,同时也存储了事务回滚操作的变更记录。
[0073] 重做日志中的变更记录信息例如图2所示的事务1开始、事务2开始,或者事务2回滚。
[0074] 进一步,可选地,如图4所示,在本步骤之后,还包括:
[0075] S41:记录每次已生成变更信息记录时重做日志的位置,以在数据库再一次产生变更时,从前一次记录的已生成变更信息记录时重做日志的位置之后获取数据库的重做日志,以避免对已生成变更信息记录的重做日志作二次解析。
[0076] 其中,重做日志的位置可以通过重做日志的排列顺序标记,例如,已生成变更信息记录的重做日志的位置排在第三位,则当监测到数据库再一次产生变更时,获取排列在第四位的重做日志,以对排列在第四位的重做日志进行解析。
[0077] S32:获取变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到变更记录信息中包含事务提交操作时,获取事务提交操作并分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器。
[0078] 其中,在计算机术语中,事务是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),当数据库中的数据项有更新时,生成事务消息。
[0079] 例如,当检测到事务1提交的操作时,生成事务消息,该事务消息可以命名为事务1。
[0080] 具体地,事务合成器102在接收到变更记录信息后,首先根据变更记录信息中的事务序列号对事务进行划分,获取并缓存尚未执行事务提交操作的事务。
[0081] 其中,事务序列号例如1、2、3,划分后的事务例如事务1、事务2、事务3。
[0082] 例如,如图2所示,在重做日志1中,包括事务1开始的变更记录信息,但是不包括事务1提交的变更记录信息,则事务1开始的变更记录信息为尚未执行事务提交操作的变更记录信息。
[0083] 又例如,如图2所示,当事务合成器102识别到重做日志2中的事务1提交的变更记录信息后,获取该事务1提交的变更记录信息,并记录事务1提交的操作对应的缓存位置,且生成事务消息。
[0084] 可选地,如图4所示,在本步骤之后,还包括:
[0085] S42:在识别到变更记录信息中包含事务回滚操作时,清空事务回滚操作对应的事务的缓存信息,并丢弃事务回滚操作对应的事务。
[0086] 由于只有对完成一个程序执行单元的事务进行交付才有意义,所以事务合成器102会清空事务回滚操作对应的事务的缓存信息,并丢弃事务回滚操作对应的事务。
[0087] 例如,如图2所示,在重做日志1中的变更记录信息中包含事务2回滚,则事务合成器102清空事务2的缓存信息,并丢弃事务2,当事务合成器102解析重做日志1时,获取到事务3,则将事务3的事务消息交付至数据关系分析器103,进一步,当事务合成器102解析重做日志2时,获取到事务1的事务消息,则将事务1的事务消息交付至数据关系分析器103。
[0088] 在本发明中,事务合成器102根据重做日志中记录的事务提交操作的顺序,而不是事务的序列号,将事务消息交付至数据关系分析器103,将数据采集系统中传输的单位从单条变更记录信息提升到事务的层面,并且,事务合成器102使得数据采集系统只输出具有提交操作的事务。而现有技术中,数据采集系统只传输单条的变更记录信息,到最终交付阶段再进行事务合成以及事务筛选,本发明有效减少数据采集系统中传输的数据量,将传输的单位提升到事务的层面,有效保证传输数据的完整性和有效性,提升数据同步效率。
[0089] S33:接收事务消息,提取事务消息中产生变更记录信息的数据表,并根据事务消息获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据交付器。
[0090] 可选地,根据事务消息获取数据交付器实例与数据表组之间的映射关系,包括:根据规则库中定义的依赖关系对事务消息包含的数据表进行分组,以得到数据表组和分组数量;判断分组数量是否大于预设数量阈值,并在大于预设数量阈值时,对数据表组进行合并,以得到合并后的数据表组;获取与数据表组,或者,与合并后的数据表组对应的数据交付器实例;根据数据交付器实例获取数据交付器实例与数据表组之间的映射关系。
[0091] 具体地,数据关系分析器103接收事务合成器102交付的事务消息,基于规则库中定义解除事务间的基于时间的顺序依赖关系,将事务交付给数据交付器104进行并行交付,以提升交付效率。
[0092] 本发明中,数据库中的重做日志是根据数据库发生变更的时间顺序进行变更信息存储的,即重做日志只记录数据库变更发生的时间,而不记录数据库变更操作之间的关联关系,这种以时间为依据的记录方式强制地给数据库变更绑定基于时间的顺序依赖关系,忽略数据库变更的关联关系,因此,需要解除事务间的基于时间的顺序依赖关系,恢复数据采集系统并行处理事务的能力,提升同步性能和效率,降低数据共享的延迟时间。
[0093] 其中,根据规则库中定义的依赖关系对事务消息包含的数据表进行分组,包括:将具有依赖关系的数据表划分为一组,其中,依赖关系包括:依赖关系a、两个事务消息包含同一张数据表的变更记录信息;依赖关系b、两个事务消息中所包含的数据表的变更记录信息有主键和外键的依赖关系;依赖关系c、两个事务消息操作的数据表之间存在业务依赖关系。
[0094] 其中,依赖关系a和依赖关系b由系统内置程序预先设定,依赖关系c由用户进行配置。
[0095] 依赖关系a和依赖关系b为强依赖关系,依赖关系c为弱依赖关系。
[0096] 依赖关系a例如,事务1包含对数据表A中的字段a进行删除操作,事务2包含对数据表A中的字段b进行修改操作,由于事务1和事务2均包含对数据表A的操作,则事务1和事务2具有依赖关系a,将事务1和事务2划分到同一组。
[0097] 依赖关系b例如,事务1包含对数据表A的操作,事务2包含对数据表B的操作,且数据表A中的字段a为主键,同时,字段a是数据表B的外键,则事务1和事务2具有依赖关系b,将事务1和事务2划分到同一组。
[0098] 依赖关系c例如,事务1包含对数据表A的操作,事务2包含对数据表B的操作,且数据表A和数据表B存在业务依赖关系,则事务1和事务2具有依赖关系c,将事务1和事务2划分到同一组。
[0099] 其中,预设数量阈值例如为5组。
[0100] 例如,根据规则库中定义的依赖关系对事务消息包含的数据表进行分组,得到的分组数量为3组,未超过预设数量阈值5组,则获取与数据表组对应的数据交付器实例,并根据数据交付器实例获取数据交付器实例与数据表组之间的映射关系。
[0101] 其中,对数据表组进行合并,以得到合并后的数据表组,包括:
[0102] 根据数据表组中的数据表的变更频率,对数据表组进行合并,以得到合并后的数据表组。
[0103] 具体地,在进行数据表组合并时,需要根据数据表组中包含的数据表的变更频率进行合并,最优的合并结果为每个数据表组包含的数据表的变更频率基本一致。
[0104] 其中,数据表的变更频率评定规则为:设定数据表的默认变更频率为1,如果在业务办理过程中,很少修改某张数据表,则可以将该数据表的变更频率设置为0。
[0105] 具体地,可以首先计算两个数据表组中所包含的数据表的变更频率之和,将变更频率最接近的两个数据表组合并为一个数据表组,依次类推,直到数据表组的分组数量小于或者等于预设数量阈值。
[0106] 例如,数据表组1中包含数据表A、数据表B,以及数据表C,其中,数据表A的变更频率为1,数据表B的变更频率为0,数据表C的变更频率为1,则数据表组1的变更频率为2。数据表组2中包含数据表C、数据表D,以及数据表E,其中,数据表C的变更频率为1,数据表D的变更频率为0,数据表E的变更频率为1,则数据表组2的变更频率为2,此时,可以将数据表组1和数据表组2合并为一个数据表组。
[0107] 进一步,当确定数据表组后,数据分析器103为每个数据表组创建一个与该数据表组对应的数据交付器实例,并且,数据分析器103缓存数据交付器实例与数据表组之间的映射关系,并基于缓存的数据表组与数据交付器实例的映射关系,将事务消息分发至对应的数据交付器104。
[0108] 可选地,在本步骤之前,如图4所示,该方法还包括:
[0109] S43:接收用户设置的业务依赖关系,以使用户对依赖关系c进行配置。
[0110] 具体地,用户可以预先配置依赖关系c,以使数据关系分析器103根据依赖关系c对数据表进行分组。
[0111] S34:接收数据关系分析器分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行交付。
[0112] 其中,数据采集系统包含一个或多个的数据交付器104。
[0113] 具体地,数据交付器104支持同时启动多个数据交付器实例,每个数据交付器实例之间独立运行,相互之间不存在干扰,以支持数据的并行处理,数据交付器104按照接收事务消息的顺序执行交付。
[0114] 例如,接收事务消息的顺序为事务1、事务2、事务4、事务3,则按照事务1、事务2、事务4、事务3的顺序对事务消息进行交付。
[0115] 本实施例中,通过获取数据库的重做日志,生成变更记录信息,并将变更记录信息交付至事务合成器,事务合成器在识别到变更记录信息中包含事务提交操作时,分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器,数据关系分析器提取事务消息中产生变更记录信息的数据表,并获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据交付器,数据交付器根据交付目标的类型选择对应的交付算法,以执行交付,能够支持数据的并行处理,有效降低数据共享的延时,提升事务同步的性能和效率。
[0116] 需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0117] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0118] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0119] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0120] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0121] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0122] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0123] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用