首页> 中国专利> 数据采集系统和用于数据采集系统的分析方法

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

摘要

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

著录项

  • 公开/公告号CN105426410A

    专利类型发明专利

  • 公开/公告日2016-03-23

    原文格式PDF

  • 申请/专利权人 东软集团股份有限公司;

    申请/专利号CN201510732928.3

  • 发明设计人 井玉成;

    申请日2015-11-02

  • 分类号G06F17/30(20060101);G06F9/46(20060101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 110168 辽宁省沈阳市浑南新区新秀街2号

  • 入库时间 2023-12-18 14:59:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-09

    授权

    授权

  • 2016-04-20

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20151102

    实质审查的生效

  • 2016-03-23

    公开

    公开

说明书

技术领域

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

背景技术

随着“互联网+”以及“工业4.0”时代的到来,业务量爆炸式增长,业务 种类日趋复杂,信息系统也越来越多,核心数据的管理变得日益困难。如何实 现数据的共享,数据采集的高性能,进而提取核心价值是企业信息化建设的关 键。

现有技术中,实现变更数据采集的技术方案包括:触发器、时间戳、标志 位、快照和日志分析,在这些方式下,不能够便捷地实现数据的并行处理,事 务同步的性能和效率较低。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的一个目的在于提出一种数据采集系统,能够支持数据的并 行处理,有效降低数据共享的延时,提升事务同步的性能和效率。

本发明的另一个目的在于提出一种用于数据采集系统的分析方法。

为达到上述目的,本发明第一方面实施例提出的数据采集系统,包括:日 志分析器,用于监测数据库状态,并在所述数据库产生变更时获取所述数据库 的重做日志,生成变更记录信息,并将所述变更记录信息交付至事务合成器; 所述事务合成器,用于获取所述变更记录信息,缓存所述变更记录信息中未提 交的事务,在识别到所述变更记录信息中包含事务提交操作时,获取所述事务 提交操作并分析所述事务提交操作对应的缓存位置,生成事务消息,并将所述 事务消息交付至数据关系分析器;所述数据关系分析器,用于接收所述事务消 息,提取所述事务消息中产生变更记录信息的数据表,并根据所述事务消息获 取数据交付器实例与所述数据表组之间的映射关系,根据所述映射关系将所述 事务消息分发至对应的数据交付器;所述数据交付器,用于接收所述数据关系 分析器分发的事务消息,并根据交付目标的类型选择对应的交付算法,以执行 交付。

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

为达到上述目的,本发明第二方面实施例提出的用于数据采集系统的分析 方法,包括:监测数据库中重做日志的变更状态,并在所述数据库中重做日志 产生变更时获取所述数据库的重做日志,生成变更记录信息,并将所述变更记 录信息交付至事务合成器;获取所述变更记录信息,缓存所述变更记录信息中 未提交的事务,在识别到所述变更记录信息中包含事务提交操作时,获取所述 事务提交操作并分析所述事务提交操作对应的缓存位置,生成事务消息,并将 所述事务消息交付至数据关系分析器;接收所述事务消息,提取所述事务消息 中产生变更记录信息的数据表,并根据所述事务消息获取数据交付器实例与所 述数据表组之间的映射关系,根据所述映射关系将所述事务消息分发至对应的 数据交付器;接收所述数据关系分析器分发的事务消息,并根据交付目标的类 型选择对应的交付算法,以执行交付。

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

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描 述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中 将变得明显和容易理解,其中:

图1是本发明一实施例提出的数据采集系统的结构示意图;

图2是本发明实施例中重做日志中的变更信息存储结构示意图;

图3是本发明另一实施例提出的用于数据采集系统的分析方法的流程示意 图;

图4是本发明另一实施例提出的用于数据采集系统的分析方法的流程示意 图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自 始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元 件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能 理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的 精神和内涵范围内的所有变化、修改和等同物。

图1是本发明一实施例提出的数据采集系统的结构示意图,该数据采集系 统10包括日志分析器101,用于监测数据库中重做日志的变更状态,并在重做 日志产生变更时获取数据库的重做日志,生成变更记录信息,并将变更记录信 息交付至事务合成器102;事务合成器102,用于获取变更记录信息,缓存所述 变更记录信息中未提交的事务,在识别到变更记录信息中包含事务提交操作时, 获取事务提交操作并分析事务提交操作对应的缓存位置,生成事务消息,并将 事务消息交付至数据关系分析器103;数据关系分析器103,用于接收事务消息, 提取事务消息中产生变更记录信息的数据表,并根据事务消息获取数据交付器 实例与数据表组之间的映射关系,根据映射关系将事务消息分发至对应的数据 交付器104;数据交付器104,用于接收数据关系分析器103分发的事务消息, 并根据交付目标的类型选择对应的交付算法,以执行交付。

在本发明的一个实施例中,该数据采集系统10包括日志分析器101,用于 监测数据库中重做日志的变更状态,并在重做日志产生变更时获取数据库的重 做日志,生成变更记录信息,并将变更记录信息交付至事务合成器102。

例如,当数据库中的数据表插入一条数据时,重做日志会记录本次插入操 作,数据库的重做日志产生变更,日志分析器101实时监测重做日志的变更状 态,并当重做日志产生变更时获取数据库的重做日志。

其中,重做日志(RedoLog)由两个以上的文件组成,用于记录数据库中 所有的变更信息、提供数据恢复功能,以及维护数据库的完整性。

数据库中的变更信息例如,用户修改了数据表A中的字段。

数据库类型包括层次式数据库、网络式数据库和关系式数据库三种。

可选地,生成变更记录信息,包括:日志分析器101根据连接的数据库的 类型选取对应的重做日志分析算法;根据对应的重做日志分析算法和数据库中 的变更信息生成变更信息记录。

可以通过重做日志中记录的变更信息重现数据库产生变更的具体操作,不 同类型的数据库的数据存储结构不同,因此,在不同类型的数据库中,重做日 志所记录的变更信息的结构也不相同,对于不同类型的数据库,日志分析器101 需要根据对应的重做日志分析算法对重做日志进行分析处理,以生成变更记录 信息。

例如,如图2所示,为本发明实施例中重做日志中的变更信息存储结构示 意图,存储结构的特点包括:(1)属于同一个事务的变更记录信息并非连续存 储;(2)多个事务包含的变更记录信息交叉存储;(3)重做日志中既存储了事 务提交操作的变更记录,同时也存储了事务回滚操作的变更记录。

重做日志中的变更记录信息例如图2所示的事务1开始、事务2开始,或 者事务2回滚。

可选地,日志分析器101还用于记录每次已生成变更信息记录时重做日志 的位置,以在数据库再一次产生变更时,从前一次记录的已生成变更信息记录 时重做日志的位置之后获取数据库的重做日志,以避免对已生成变更信息记录 的重做日志作二次解析。

其中,重做日志的位置可以通过重做日志的排列顺序标记,例如,已生成 变更信息记录的重做日志的位置排在第三位,则当监测到数据库再一次产生变 更时,获取排列在第四位的重做日志,以对排列在第四位的重做日志进行解析。

在本发明的一个实施例中,该数据采集系统10还包括事务合成器102,用 于获取变更记录信息,缓存所述变更记录信息中未提交的事务,在识别到变更 记录信息中包含事务提交操作时,获取事务提交操作并分析事务提交操作对应 的缓存位置,生成事务消息,并将事务消息交付至数据关系分析器103。

其中,在计算机术语中,事务是指访问并可能更新数据库中各种数据项的 一个程序执行单元(unit),当数据库中的数据项有更新时,生成事务消息。

例如,当检测到事务1提交的操作时,生成事务消息,该事务消息可以命 名为事务1。

具体地,事务合成器102在接收到变更记录信息后,首先根据变更记录信 息中的事务序列号对事务进行划分,获取并缓存尚未执行事务提交操作的事务。

其中,事务序列号例如1、2、3,划分后的事务例如事务1、事务2、事务 3。

例如,如图2所示,在重做日志1中,包括事务1开始的变更记录信息, 但是不包括事务1提交的变更记录信息,则事务1开始的变更记录信息为尚未 执行事务提交操作的变更记录信息。

又例如,如图2所示,当事务合成器102识别到重做日志2中的事务1提 交的变更记录信息后,获取该事务1提交的变更记录信息,并记录事务1提交 的操作对应的缓存位置,且生成事务消息。

可选地,事务合成器102还用于在识别到变更记录信息中包含事务回滚操 作时,清空事务回滚操作对应的事务的缓存信息,并丢弃事务回滚操作对应的 事务。

由于只有对完成一个程序执行单元的事务进行交付才有意义,所以事务合 成器102会清空事务回滚操作对应的事务的缓存信息,并丢弃事务回滚操作对 应的事务。

例如,如图2所示,在重做日志1中的变更记录信息中包含事务2回滚, 则事务合成器102清空事务2的缓存信息,并丢弃事务2,当事务合成器102 解析重做日志1时,获取到事务3,则将事务3的事务消息交付至数据关系分 析器103,进一步,当事务合成器102解析重做日志2时,获取到事务1的事 务消息,则将事务1的事务消息交付至数据关系分析器103。

在本发明中,事务合成器102根据重做日志中记录的事务提交操作的顺序, 而不是事务的序列号,将事务消息交付至数据关系分析器103,将数据采集系 统中传输的单位从单条变更记录信息提升到事务的层面,并且,事务合成器102 使得数据采集系统只输出具有提交操作的事务。而现有技术中,数据采集系统 只传输单条的变更记录信息,到最终交付阶段再进行事务合成以及事务筛选, 本发明有效减少数据采集系统中传输的数据量,将传输的单位提升到事务的层 面,有效保证传输数据的完整性和有效性,提升数据同步效率。

在本发明的一个实施例中,该数据采集系统10还包括数据关系分析器103, 用于接收事务消息,提取事务消息中产生变更记录信息的数据表,并根据事务 消息获取数据交付器实例与数据表组之间的映射关系,根据映射关系将事务消 息分发至对应的数据交付器104。

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

具体地,数据关系分析器103接收事务合成器102交付的事务消息,基于 规则库中定义解除事务间的基于时间的顺序依赖关系,将事务交付给数据交付 器104进行并行交付,以提升交付效率。

本发明中,数据库中的重做日志是根据数据库发生变更的时间顺序进行变 更信息存储的,即重做日志只记录数据库变更发生的时间,而不记录数据库变 更操作之间的关联关系,这种以时间为依据的记录方式强制地给数据库变更绑 定基于时间的顺序依赖关系,忽略数据库变更的关联关系,因此,需要解除事 务间的基于时间的顺序依赖关系,恢复数据采集系统并行处理事务的能力,提 升同步性能和效率,降低数据共享的延迟时间。

可选地,根据规则库中定义的依赖关系对事务消息包含的数据表进行分组, 包括:将具有依赖关系的数据表划分为一组,其中,依赖关系包括:依赖关系 a、两个事务消息包含同一张数据表的变更记录信息;依赖关系b、两个事务消 息中所包含的数据表的变更记录信息有主键和外键的依赖关系;依赖关系c、 两个事务消息操作的数据表之间存在业务依赖关系。

其中,依赖关系a和依赖关系b由系统内置程序预先设定,依赖关系c由 用户进行配置,数据关系分析器还用于接收用户设置的业务依赖关系,以使用 户对依赖关系c进行配置。

依赖关系a和依赖关系b为强依赖关系,依赖关系c为弱依赖关系。

依赖关系a例如,事务1包含对数据表A中的字段a进行删除操作,事务 2包含对数据表A中的字段b进行修改操作,由于事务1和事务2均包含对数 据表A的操作,则事务1和事务2具有依赖关系a,将事务1和事务2划分到 同一组。

依赖关系b例如,事务1包含对数据表A的操作,事务2包含对数据表B 的操作,且数据表A中的字段a为主键,同时,字段a是数据表B的外键,则 事务1和事务2具有依赖关系b,将事务1和事务2划分到同一组。

依赖关系c例如,事务1包含对数据表A的操作,事务2包含对数据表B 的操作,且数据表A和数据表B存在业务依赖关系,则事务1和事务2具有依 赖关系c,将事务1和事务2划分到同一组。

其中,预设数量阈值例如为5组。

例如,根据规则库中定义的依赖关系对事务消息包含的数据表进行分组, 得到的分组数量为3组,未超过预设数量阈值5组,则获取与数据表组对应的 数据交付器实例,并根据数据交付器实例获取数据交付器实例与数据表组之间 的映射关系。

另一方面,如果分组数量超过预设数量阈值,则根据数据表组中的数据表 的变更频率,对数据表组进行合并,以得到合并后的数据表组。

具体地,在进行数据表组合并时,需要根据数据表组中包含的数据表的变 更频率进行合并,最优的合并结果为每个数据表组包含的数据表的变更频率基 本一致。

其中,数据表的变更频率评定规则为:设定数据表的默认变更频率为1, 如果在业务办理过程中,很少修改某张数据表,则可以将该数据表的变更频率 设置为0。

具体地,可以首先计算两个数据表组中所包含的数据表的变更频率之和, 将变更频率最接近的两个数据表组合并为一个数据表组,依次类推,直到数据 表组的分组数量小于或者等于预设数量阈值。

例如,数据表组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合并为一个数据表组。

进一步,当确定数据表组后,数据分析器103为每个数据表组创建一个与 该数据表组对应的数据交付器实例,并且,数据分析器103缓存数据交付器实 例与数据表组之间的映射关系,并基于缓存的数据表组与数据交付器实例的映 射关系,将事务消息分发至对应的数据交付器104。

在本发明的一个实施例中,该数据采集系统10还包括数据交付器104,用 于接收数据关系分析器103分发的事务消息,并根据交付目标的类型选择对应 的交付算法,以执行交付。

其中,数据采集系统包含一个或多个的数据交付器104。

具体地,数据交付器104支持同时启动多个数据交付器实例,每个数据交 付器实例之间独立运行,相互之间不存在干扰,以支持数据的并行处理,数据 交付器104按照接收事务消息的顺序执行交付。

例如,接收事务消息的顺序为事务1、事务2、事务4、事务3,则按照事 务1、事务2、事务4、事务3的顺序对事务消息进行交付。

本实施例中,通过获取数据库的重做日志,生成变更记录信息,并将变更 记录信息交付至事务合成器,事务合成器在识别到变更记录信息中包含事务提 交操作时,分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息 交付至数据关系分析器,数据关系分析器提取事务消息中产生变更记录信息的 数据表,并获取数据交付器实例与数据表组之间的映射关系,根据映射关系将 事务消息分发至对应的数据交付器,数据交付器根据交付目标的类型选择对应 的交付算法,以执行交付,能够支持数据的并行处理,有效降低数据共享的延 时,提升事务同步的性能和效率。

图3是本发明另一实施例提出的用于数据采集系统的分析方法的流程示意 图,该方法包括:

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

例如,当数据库中的数据表插入一条数据时,重做日志会记录本次插入操 作,数据库的重做日志产生变更,日志分析器101实时监测重做日志的变更状 态,并当重做日志产生变更时获取数据库的重做日志。

其中,重做日志(RedoLog)由两个以上的文件组成,用于记录数据库中 所有的变更信息、提供数据恢复功能,以及维护数据库的完整性。

数据库中的变更信息例如,用户修改了数据表A中的字段。

数据库类型包括层次式数据库、网络式数据库和关系式数据库三种。

可选地,生成变更记录信息,包括:日志分析器根据连接的数据库的类型 选取对应的重做日志分析算法;根据对应的重做日志分析算法和数据库中的变 更信息生成变更信息记录。

可以通过重做日志中记录的变更信息重现数据库产生变更的具体操作,不 同类型的数据库的数据存储结构不同,因此,在不同类型的数据库中,重做日 志所记录的变更信息的结构也不相同,对于不同类型的数据库,日志分析器101 需要根据对应的重做日志分析算法对重做日志进行分析处理,以生成变更记录 信息。

例如,如图2所示,为本发明实施例中重做日志中的变更信息存储结构示 意图,存储结构的特点包括:(1)属于同一个事务的变更记录信息并非连续存 储;(2)多个事务包含的变更记录信息交叉存储;(3)重做日志中既存储了事 务提交操作的变更记录,同时也存储了事务回滚操作的变更记录。

重做日志中的变更记录信息例如图2所示的事务1开始、事务2开始,或 者事务2回滚。

进一步,可选地,如图4所示,在本步骤之后,还包括:

S41:记录每次已生成变更信息记录时重做日志的位置,以在数据库再一次 产生变更时,从前一次记录的已生成变更信息记录时重做日志的位置之后获取 数据库的重做日志,以避免对已生成变更信息记录的重做日志作二次解析。

其中,重做日志的位置可以通过重做日志的排列顺序标记,例如,已生成 变更信息记录的重做日志的位置排在第三位,则当监测到数据库再一次产生变 更时,获取排列在第四位的重做日志,以对排列在第四位的重做日志进行解析。

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

其中,在计算机术语中,事务是指访问并可能更新数据库中各种数据项的 一个程序执行单元(unit),当数据库中的数据项有更新时,生成事务消息。

例如,当检测到事务1提交的操作时,生成事务消息,该事务消息可以命 名为事务1。

具体地,事务合成器102在接收到变更记录信息后,首先根据变更记录信 息中的事务序列号对事务进行划分,获取并缓存尚未执行事务提交操作的事务。

其中,事务序列号例如1、2、3,划分后的事务例如事务1、事务2、事务 3。

例如,如图2所示,在重做日志1中,包括事务1开始的变更记录信息, 但是不包括事务1提交的变更记录信息,则事务1开始的变更记录信息为尚未 执行事务提交操作的变更记录信息。

又例如,如图2所示,当事务合成器102识别到重做日志2中的事务1提 交的变更记录信息后,获取该事务1提交的变更记录信息,并记录事务1提交 的操作对应的缓存位置,且生成事务消息。

可选地,如图4所示,在本步骤之后,还包括:

S42:在识别到变更记录信息中包含事务回滚操作时,清空事务回滚操作对 应的事务的缓存信息,并丢弃事务回滚操作对应的事务。

由于只有对完成一个程序执行单元的事务进行交付才有意义,所以事务合 成器102会清空事务回滚操作对应的事务的缓存信息,并丢弃事务回滚操作对 应的事务。

例如,如图2所示,在重做日志1中的变更记录信息中包含事务2回滚, 则事务合成器102清空事务2的缓存信息,并丢弃事务2,当事务合成器102 解析重做日志1时,获取到事务3,则将事务3的事务消息交付至数据关系分 析器103,进一步,当事务合成器102解析重做日志2时,获取到事务1的事 务消息,则将事务1的事务消息交付至数据关系分析器103。

在本发明中,事务合成器102根据重做日志中记录的事务提交操作的顺序, 而不是事务的序列号,将事务消息交付至数据关系分析器103,将数据采集系 统中传输的单位从单条变更记录信息提升到事务的层面,并且,事务合成器102 使得数据采集系统只输出具有提交操作的事务。而现有技术中,数据采集系统 只传输单条的变更记录信息,到最终交付阶段再进行事务合成以及事务筛选, 本发明有效减少数据采集系统中传输的数据量,将传输的单位提升到事务的层 面,有效保证传输数据的完整性和有效性,提升数据同步效率。

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

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

具体地,数据关系分析器103接收事务合成器102交付的事务消息,基于 规则库中定义解除事务间的基于时间的顺序依赖关系,将事务交付给数据交付 器104进行并行交付,以提升交付效率。

本发明中,数据库中的重做日志是根据数据库发生变更的时间顺序进行变 更信息存储的,即重做日志只记录数据库变更发生的时间,而不记录数据库变 更操作之间的关联关系,这种以时间为依据的记录方式强制地给数据库变更绑 定基于时间的顺序依赖关系,忽略数据库变更的关联关系,因此,需要解除事 务间的基于时间的顺序依赖关系,恢复数据采集系统并行处理事务的能力,提 升同步性能和效率,降低数据共享的延迟时间。

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

其中,依赖关系a和依赖关系b由系统内置程序预先设定,依赖关系c由 用户进行配置。

依赖关系a和依赖关系b为强依赖关系,依赖关系c为弱依赖关系。

依赖关系a例如,事务1包含对数据表A中的字段a进行删除操作,事务 2包含对数据表A中的字段b进行修改操作,由于事务1和事务2均包含对数 据表A的操作,则事务1和事务2具有依赖关系a,将事务1和事务2划分到 同一组。

依赖关系b例如,事务1包含对数据表A的操作,事务2包含对数据表B 的操作,且数据表A中的字段a为主键,同时,字段a是数据表B的外键,则 事务1和事务2具有依赖关系b,将事务1和事务2划分到同一组。

依赖关系c例如,事务1包含对数据表A的操作,事务2包含对数据表B 的操作,且数据表A和数据表B存在业务依赖关系,则事务1和事务2具有依 赖关系c,将事务1和事务2划分到同一组。

其中,预设数量阈值例如为5组。

例如,根据规则库中定义的依赖关系对事务消息包含的数据表进行分组, 得到的分组数量为3组,未超过预设数量阈值5组,则获取与数据表组对应的 数据交付器实例,并根据数据交付器实例获取数据交付器实例与数据表组之间 的映射关系。

其中,对数据表组进行合并,以得到合并后的数据表组,包括:

根据数据表组中的数据表的变更频率,对数据表组进行合并,以得到合并 后的数据表组。

具体地,在进行数据表组合并时,需要根据数据表组中包含的数据表的变 更频率进行合并,最优的合并结果为每个数据表组包含的数据表的变更频率基 本一致。

其中,数据表的变更频率评定规则为:设定数据表的默认变更频率为1, 如果在业务办理过程中,很少修改某张数据表,则可以将该数据表的变更频率 设置为0。

具体地,可以首先计算两个数据表组中所包含的数据表的变更频率之和, 将变更频率最接近的两个数据表组合并为一个数据表组,依次类推,直到数据 表组的分组数量小于或者等于预设数量阈值。

例如,数据表组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合并为一个数据表组。

进一步,当确定数据表组后,数据分析器103为每个数据表组创建一个与 该数据表组对应的数据交付器实例,并且,数据分析器103缓存数据交付器实 例与数据表组之间的映射关系,并基于缓存的数据表组与数据交付器实例的映 射关系,将事务消息分发至对应的数据交付器104。

可选地,在本步骤之前,如图4所示,该方法还包括:

S43:接收用户设置的业务依赖关系,以使用户对依赖关系c进行配置。

具体地,用户可以预先配置依赖关系c,以使数据关系分析器103根据依 赖关系c对数据表进行分组。

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

其中,数据采集系统包含一个或多个的数据交付器104。

具体地,数据交付器104支持同时启动多个数据交付器实例,每个数据交 付器实例之间独立运行,相互之间不存在干扰,以支持数据的并行处理,数据 交付器104按照接收事务消息的顺序执行交付。

例如,接收事务消息的顺序为事务1、事务2、事务4、事务3,则按照事 务1、事务2、事务4、事务3的顺序对事务消息进行交付。

本实施例中,通过获取数据库的重做日志,生成变更记录信息,并将变更 记录信息交付至事务合成器,事务合成器在识别到变更记录信息中包含事务提 交操作时,分析事务提交操作对应的缓存位置,生成事务消息,并将事务消息 交付至数据关系分析器,数据关系分析器提取事务消息中产生变更记录信息的 数据表,并获取数据交付器实例与数据表组之间的映射关系,根据映射关系将 事务消息分发至对应的数据交付器,数据交付器根据交付目标的类型选择对应 的交付算法,以执行交付,能够支持数据的并行处理,有效降低数据共享的延 时,提升事务同步的性能和效率。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描 述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除 非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表 示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码 的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其 中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或 按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员 所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。 在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执 行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方 式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有 用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合 逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA) 等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部 分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计 算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块 中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品 销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、 “具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特 征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明 书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描 述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中 以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例 是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的 范围内可以对上述实施例进行变化、修改、替换和变型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号