更新消息处理方法、数据同步方法、配置信息配置方法转让专利

申请号 : CN202110952805.6

文献号 : CN113407560B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨永兴

申请人 : 太平金融科技服务(上海)有限公司深圳分公司

摘要 :

本申请涉及一种更新消息处理方法、数据同步方法、配置信息配置方法。数据库更新消息处理方法包括:获取第一数据库的数据更新消息,所述数据更新消息携带有数据表标识;查询预先配置的配置信息以获得与所述数据表标识对应的更新标识;判断是否已存在与所述更新标识对应的数据更新消息;当已存在与所述更新标识对应的数据更新消息,删除所述数据更新消息。采用本方法能够避免数据更新消息重复所造成的重复操作,降低资源利用率,提高处理效率。

权利要求 :

1.一种数据库更新消息处理方法,其特征在于,所述数据库更新消息处理方法包括:获取第一数据库的数据更新消息,所述数据更新消息携带有数据表标识;

查询预先配置的配置信息以获得与所述数据表标识对应的更新标识;

判断是否已存在与所述更新标识对应的数据更新消息;

当已存在与所述更新标识对应的数据更新消息,删除所述数据更新消息;

所述查询预先配置的配置信息以获得与所述数据表标识对应的更新标识,包括:查询预先配置的配置信息中是否存在所述数据表标识;

当存在所述数据表标识时,获取预先配置的配置信息中与所述数据表标识对应的数据模型标识;

根据预先配置的配置信息确定所述数据表标识对应的数据表是否为主表;

当所述数据表标识对应的数据表为主表时,根据所述数据模型标识和所述主表的主键值生成更新标识;

当所述数据表标识对应的数据表为从表时,根据所述数据模型标识和所述从表的外键值生成更新标识。

2.根据权利要求1所述的数据库更新消息处理方法,其特征在于,所述判断是否已存在与所述更新标识对应的数据更新消息之后,还包括:当不存在与所述更新标识对应的数据更新消息,建立所述数据更新消息与所述更新标识的对应关系。

3.根据权利要求2所述的数据库更新消息处理方法,其特征在于,所述建立所述数据更新消息与所述更新标识的对应关系,包括:获取预先配置的配置信息中与所述数据表标识对应的更新标识有效时间;

根据所述更新标识有效时间建立所述数据更新消息与所述更新标识的对应关系。

4.一种数据同步方法,其特征在于,所述数据同步方法包括:获取根据权利要求1至3任意一项所述的数据库更新消息处理方法所得到的数据更新消息;

根据所述数据更新消息从第一数据库获取更新数据;

按照预先配置的配置信息对所述更新数据进行数据转换得到目标数据;

将所述目标数据保存至第二数据库。

5.根据权利要求4所述的数据同步方法,其特征在于,所述按照预先配置的配置信息对所述更新数据进行数据转换得到目标数据,包括:按照预先存储的模板对所述更新数据进行解析得到目标数据;和/或按照预先存储的字段对应关系对所述更新数据进行数据转换得到目标数据。

6.一种数据库配置信息配置方法,其特征在于,所述方法包括:接收针对第一数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第一数据库的连接信息;

接收针对所述第一数据库中各个数据表的关联关系的配置指令,并根据所述关联关系的配置指令对所述第一数据库中各个数据表进行配置,以确定各个数据表标识对应的更新标识以及更新标识的有效时间,所述更新标识以及更新标识的有效时间用于在权利要求1至3中任意一项的数据库更新消息处理方法中使用。

7.根据权利要求6所述的数据库配置信息配置方法,其特征在于,所述根据所述关联关系的配置指令对所述第一数据库中各个数据表进行配置,包括:配置所述第一数据库中各数据模型的数据模型标识、所述数据模型标识对应的更新标识的有效时间以及各个数据模型中的主表和从表,并配置所述主表的主键值和所述从表的外键值。

8.一种数据库配置信息配置方法,其特征在于,所述方法包括:接收针对第二数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第二数据库的连接信息;

接收针对所述第二数据库中的数据与所述第一数据库中的数据的转换规则配置指令,并根据所述转换规则配置指令配置所述第二数据库中的数据与所述第一数据库中的数据的转换规则;所述转换规则用于在权利要求4或5的数据同步方法中使用。

9.一种数据库更新消息处理装置,其特征在于,所述数据库更新消息处理装置包括:第一更新消息获取模块,用于获取第一数据库的数据更新消息,所述数据更新消息携带有数据表标识;

查询模块,用于查询预先配置的配置信息以获得与所述数据表标识对应的更新标识;

判断模块,用于判断是否已存在与所述更新标识对应的数据更新消息;

删除模块,用于当已存在与所述更新标识对应的数据更新消息,删除所述数据更新消息;

所述查询模块包括:

查询单元,用于查询预先配置的配置信息中是否存在所述数据表标识;

数据模型标识获取单元,用于当存在所述数据表标识时,获取预先配置的配置信息中与所述数据表标识对应的数据模型标识;

判断单元,用于根据预先配置的配置信息确定所述数据表标识对应的数据表是否为主表;

更新标识生成单元,用于当所述数据表标识对应的数据表为主表时,根据所述数据模型标识和所述主表的主键值生成更新标识;当所述数据表标识对应的数据表为从表时,根据所述数据模型标识和所述从表的外键值生成更新标识。

10.一种数据同步装置,其特征在于,所述数据同步装置包括:第二更新消息获取模块,用于获取根据权利要求9所述的数据库更新消息处理装置所得到的数据更新消息;

更新数据获取模块,用于根据所述数据更新消息从第一数据库获取更新数据;

转换模块,用于按照预先配置的配置信息对所述更新数据进行数据转换得到目标数据;

存储模块,用于将所述目标数据保存至第二数据库。

11.一种数据库配置信息配置装置,其特征在于,所述数据库配置信息配置装置包括:第一接收模块,用于接收针对第一数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第一数据库的连接信息;

第二接收模块,用于接收针对所述第一数据库中各个数据表的关联关系的配置指令,并根据所述关联关系的配置指令对所述第一数据库中各个数据表进行配置,以确定各个数据表标识对应的更新标识以及更新标识的有效时间,所述更新标识以及更新标识的有效时间用于在权利要求9的数据库更新消息处理装置中使用。

12.一种数据库配置信息配置装置,其特征在于,所述数据库配置信息配置装置包括:第三接收模块,用于接收针对第二数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第二数据库的连接信息;

第四接收模块,用于接收针对所述第二数据库中的数据与所述第一数据库中的数据的转换规则配置指令,并根据所述转换规则配置指令配置所述第二数据库中的数据与所述第一数据库中的数据的转换规则;所述转换规则用于在权利要求10的数据同步装置中使用。

13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3或4至5或6至7或8中任一项所述的方法的步骤。

14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3或4至5或6至7或8中任一项所述的方法的步骤。

说明书 :

更新消息处理方法、数据同步方法、配置信息配置方法

技术领域

[0001] 本申请涉及数据库技术领域,特别是涉及一种更新消息处理方法、数据同步方法、配置信息配置方法。

背景技术

[0002] 随着线上化的应用越来越广泛,导致数据量暴增,海量数据搜索及跨数据源结合查询的应用场景越来越多。传统关系型数据库的查询性能相对较差、灵活性不足,需要使用
一些可扩展、高性能的新型数据库做补充。
[0003] 传统技术中,通过将传统关系型数据库的数据同步到新型数据库中,这样搜索时直接从新型数据库进行搜索。
[0004] 然而,目前在数据库之间进行消息同步时,一个数据库中的数据发生更新,需要及时同步到另外一个数据库中,但是一个数据库中的同一个数据可能存在不同的数据表中,
即一个数据模型中包括多个关联的数据表,当对数据进行更新时,多个数据表一起更新,从
而另外一个数据库针对该数据库的一次更新可能需要进行多次同步,造成重复无价值的处
理,降低系统性能。

发明内容

[0005] 基于此,有必要针对上述技术问题,提供一种能够避免数据更新消息重复所造成的重复操作,降低资源利用率,提高处理效率的更新消息处理方法、数据同步方法、配置信
息配置方法。
[0006] 一种数据库更新消息处理方法,所述数据库更新消息处理方法包括:
[0007] 获取第一数据库的数据更新消息,所述数据更新消息携带有数据表标识;
[0008] 查询预先配置的配置信息以获得与所述数据表标识对应的更新标识;
[0009] 判断是否已存在与所述更新标识对应的数据更新消息;
[0010] 当已存在与所述更新标识对应的数据更新消息,删除所述数据更新消息。
[0011] 在其中一个实施例中,所述查询预先配置的配置信息以获得与所述数据表标识对应的更新标识,包括:
[0012] 查询预先配置的配置信息中是否存在所述数据表标识;
[0013] 当存在所述数据表标识时,获取预先配置的配置信息中与所述数据表标识对应的数据模型标识;
[0014] 根据预先配置的配置信息确定所述数据表标识对应的数据表是否为主表;
[0015] 当所述数据表标识对应的数据表为主表时,根据所述数据模型标识和所述主表的主键值生成更新标识;
[0016] 当所述数据表标识对应的数据表为从表时,根据所述数据模型标识和所述从表的外键值生成更新标识。
[0017] 在其中一个实施例中,所述判断是否已存在与所述更新标识对应的数据更新消息之后,还包括:
[0018] 当不存在与所述更新标识对应的数据更新消息,建立所述数据更新消息与所述更新标识的对应关系。
[0019] 在其中一个实施例中,所述建立所述数据更新消息与所述更新标识的对应关系,包括:
[0020] 获取预先配置的配置信息中与所述数据表标识对应的更新标识有效时间;
[0021] 根据所述更新标识有效时间建立所述数据更新消息与所述更新标识的对应关系。
[0022] 一种数据同步方法,所述数据同步方法包括:
[0023] 获取根据上述任意一个实施例中的数据库更新消息处理方法所得到的数据更新消息;
[0024] 根据所述数据更新消息从第一数据库获取更新数据;
[0025] 按照预先配置的配置信息对所述更新数据进行数据转换得到目标数据;
[0026] 将所述目标数据保存至第二数据库。
[0027] 在其中一个实施例中,所述按照预先配置的配置信息对所述更新数据进行数据转换得到目标数据,包括:
[0028] 按照预先存储的模板对所述更新数据进行解析得到目标数据;和/或
[0029] 按照预先存储的字段对应关系对所述更新数据进行数据转换得到目标数据。
[0030] 一种数据库配置信息配置方法,所述方法包括:
[0031] 接收针对第一数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第一数据库的连接信息;
[0032] 接收针对所述第一数据库中各个数据表的关联关系的配置指令,并根据所述关联关系的配置指令对所述第一数据库中各个数据表进行配置,以确定各个数据表标识对应的
更新标识以及更新标识的有效时间,所述更新标识以及更新标识的有效时间用于在上述任
意一个实施例中的数据库更新消息处理方法中使用。
[0033] 在其中一个实施例中,所述根据所述关联关系的配置指令对所述第一数据库中各个数据表进行配置,包括:
[0034] 配置所述第一数据库中各数据模型的数据模型标识、所述数据模型标识对应的更新标识的有效时间以及各个数据模型中的主表和从表,并配置所述主表的主键值和所述从
表的外键值。
[0035] 一种数据库配置信息配置方法,所述方法包括:
[0036] 接收针对第二数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第二数据库的连接信息;
[0037] 接收针对所述第二数据库中的数据与所述第一数据库中的数据的转换规则配置指令,并根据所述转换规则配置指令配置所述第二数据库中的数据与所述第一数据库中的
数据的转换规则;所述转换规则用于在上述任意一个实施例中的数据同步方法中使用。
[0038] 一种数据库更新消息处理装置,所述数据库更新消息处理装置包括:
[0039] 第一更新消息获取模块,用于获取第一数据库的数据更新消息,所述数据更新消息携带有数据表标识;
[0040] 查询模块,用于查询预先配置的配置信息以获得与所述数据表标识对应的更新标识;
[0041] 判断模块,用于判断是否已存在与所述更新标识对应的数据更新消息;
[0042] 删除模块,用于当已存在与所述更新标识对应的数据更新消息,删除所述数据更新消息。
[0043] 一种数据同步装置,所述数据同步装置包括:
[0044] 第二更新消息获取模块,用于获取根据上述任意一个实施例中的数据库更新消息处理装置所得到的数据更新消息;
[0045] 更新数据获取模块,用于根据所述数据更新消息从第一数据库获取更新数据;
[0046] 转换模块,用于按照预先配置的配置信息对所述更新数据进行数据转换得到目标数据;
[0047] 存储模块,用于将所述目标数据保存至第二数据库。
[0048] 一种数据库配置信息配置装置,所述数据库配置信息配置装置包括:
[0049] 第一接收模块,用于接收针对第一数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第一数据库的连接信息;
[0050] 第二接收模块,用于接收针对所述第一数据库中各个数据表的关联关系的配置指令,并根据所述关联关系的配置指令对所述第一数据库中各个数据表进行配置,以确定各
个数据表标识对应的更新标识以及更新标识的有效时间,所述更新标识以及更新标识的有
效时间用于在上述任意一个实施例中的数据库更新消息处理装置中使用。
[0051] 一种数据库配置信息配置装置,所述数据库配置信息配置装置包括:
[0052] 第三接收模块,用于接收针对第二数据库的连接信息配置指令,并根据所述第一数据库的连接信息配置指令配置所述第二数据库的连接信息;
[0053] 第四接收模块,用于接收针对所述第二数据库中的数据与所述第一数据库中的数据的转换规则配置指令,并根据所述转换规则配置指令配置所述第二数据库中的数据与所
述第一数据库中的数据的转换规则;所述转换规则用于在上述任意一个实施例中的数据同
步装置中使用。
[0054] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意一个实施例中所述的方法的步骤。
[0055] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一个实施例中所述的方法的步骤。
[0056] 上述更新消息处理方法、数据同步方法、配置信息配置方法,在接收到第一数据库的数据更新消息后,查询数据表标识对应的更新标识,并判断更新标识是否有效,若是有
效,即标识已经接收到了该数据更新消息,则删除该数据更新消息,避免了多次针对相同的
数据进行更新处理,提高了处理效率。

附图说明

[0057] 图1为一个实施例中更新消息处理方法、数据同步方法、配置信息配置方法的应用环境图;
[0058] 图2为一个实施例中更新消息处理方法的流程示意图;
[0059] 图3为一个实施例中数据同步方法的流程示意图;
[0060] 图4为一个实施例中更配置信息配置方法的流程示意图;
[0061] 图5为另一个实施例中更配置信息配置方法的流程示意图;
[0062] 图6为一个实施例中的结构相异的数据库的数据同步系统的示意图;
[0063] 图7为一个实施例中更新消息处理装置的结构框图;
[0064] 图8为一个实施例中数据同步装置的结构框图;
[0065] 图9为一个实施例中更配置信息配置装置的结构框图;
[0066] 图10为另一个实施例中更配置信息配置装置的结构框图;
[0067] 图11为一个实施例中计算机设备的内部结构图。

具体实施方式

[0068] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不
用于限定本申请。
[0069] 本申请提供的更新消息处理方法、数据同步方法、配置信息配置方法,可以应用于如图1所示的应用环境中。其中,其中服务器102分别与第一数据库104第二数据库106相通
信。其中服务器102获取第一数据库104的数据更新消息,数据更新消息携带有数据表标识;
查询预先配置的配置信息以获得与数据表标识对应的更新标识;判断是否已存在与更新标
识对应的数据更新消息;当已存在与更新标识对应的数据更新消息,删除数据更新消息。此
外,服务器102根据整合后的数据更新消息从第一数据库104获取更新数据;按照预先配置
的配置信息对更新数据进行数据转换得到目标数据;将目标数据保存至第二数据库106中。
且上述的执行过程都依靠服务器102预先配置的置信息,其中包括第一数据库104和第二数
据库106的连接信息,第一数据库104的数据更新消息的处理规则以及第二数据库106与第
一数据库104的数据转换规则等。这样在接收到第一数据库的数据更新消息后,查询数据表
标识对应的更新标识,并判断更新标识是否有效,若是有效,即标识已经接收到了该数据更
新消息,则删除该数据更新消息,避免了多次针对相同的数据进行更新处理,提高了处理效
率。服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。第一数据
库104和第二数据库106的结构存在差异,其中可选地,第一数据库104为关系型数据库,例
如MySQL(是一种关系型数据库管理系统,将数据保存在不同的表中),第二数据库106为新
型数据库,例如ES(ElasticSearch,是一个分布式、高扩展、高实时的搜索与数据分析引擎。
它能很方便的使大量数据具有搜索、分析和探索的能力)。
[0070] 在一个实施例中,如图2所示,提供了一种数据库更新消息处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0071] S202:获取第一数据库的数据更新消息,数据更新消息携带有数据表标识。
[0072] 具体地,第一数据库的数据更新消息是服务器通过监控第一数据库所获得的。其中可选地,服务器可以通过设置监控模块来监控第一数据库,并将监控所得到的数据更新
消息进行存储,然后再通过另外的线程读取所存储的数据更新消息以进行处理。
[0073] 在实际应用中,通过Canal(是一种基于数据库增量日志解析的工具,对数据的变化进行监听并产生消息,目前主要支持了MySQL数据库。)监听第一数据库是否存在数据更
新,若是生成数据更新消息,并将所生成的数据更新消息存储至一集群中,例如存储至
kafka(是一种高吞吐量的分布式发布订阅消息系统)集群中,后续服务器通过另外的线程
从集群中获取数据更新消息进行处理后得到整合后的数据更新消息,并存储至另外一个集
群中,例如存储至另外一个kafka集群中。
[0074] 具体地,数据表标识是指第一数据库中的数据表的唯一标识,其可以通过数据表的名称来表示,或者是通过数据模型和数据表的名称来共同表示。
[0075] 其中需要说明的是,服务器中预先配置有第一数据库的连接信息,从而服务器可以根据该第一数据库的连接信息去连接对应的第一数据库,从而可以监听第一数据库的数
据更新消息,进一步地,服务器中预先配置有库名、数据库类型、IP、端口号、用户名、密码
(加密保存)等,服务器通过该些信息去连接第一数据库,从而保证第一数据库中数据的安
全性。
[0076] S204:查询预先配置的配置信息以获得与数据表标识对应的更新标识。
[0077] 具体地,配置信息是服务器中预先配置的,其包括第一数据库的连接信息、第一数据库中的关联配置以及第一数据库的数据更新消息的处理规则。其中关联配置是指第一数
据库中数据模型编号、数据模型包含那些表、每个表和数据库对应关系、每个表要取哪些字
段、哪张表为主表、表之间的关联关系(主键、外键)等。数据更新消息的处理规则是根据关
联配置所生成的,例如其与数据模型编号一一对象,同时设置同一组数据更新消息的处理
延时时间。
[0078] 其中服务器查询配置信息以获取到与数据表标识对应的数据模型标识,这样根据数据模型标识和对应的键以唯一确定本次所更新的数据,也即根据数据模型标识和对应的
键确定了变更标识。
[0079] S206:判断是否已存在与更新标识对应的数据更新消息。
[0080] S208:当已存在与更新标识对应的数据更新消息,删除数据更新消息。
[0081] 具体地,服务器判断是否存在与更新标识对应的数据更新消息,若是当前存在该数据更新消息,则说明已经存储了该数据变更信息,则删除当前来的数据更新消息,避免重
复。
[0082] 在其中一个实施例中,当不存在与更新标识对应的数据更新消息,建立数据更新消息与更新标识的对应关系,也即生成新的整合后的数据更新消息,以为后续的消息处理
奠定基础。
[0083] 其中为了避免后续数据再次变更的消息也被删除,本实施例中还可以设置数据更新消息的有效时间,也即上述配置信息中的延时时间,即每次存储了数据更新消息后,则设
置该数据更新消息的有效时间,在该有效时间内,若是存在与该数据更新消息重复的数据
更新消息则删除,在有效时间过了以后,即使接收到了针对同一数据操作的数据更新消息,
也进行存储,避免后续数据再次变更的消息也被删除。其中该有效时间的设置可以是人工
预设的,或者是根据数据库的数据更新时间来设置的,例如更新一个数据,同步到数据库中
对应的时间为a,则该延时时间可以根据a来进行设置,以将该一个数据的更新作为一条数
据更新消息。
[0084] 上述更新消息处理方法,在接收到第一数据库的数据更新消息后,查询数据表标识对应的更新标识,并判断更新标识是否有效,若是有效,即标识已经接收到了该数据更新
消息,则删除该数据更新消息,避免了多次针对相同的数据进行更新处理,提高了处理效
率。
[0085] 在其中一个实施例中,查询预先配置的配置信息以获得与数据表标识对应的更新标识,包括:查询预先配置的配置信息中是否存在数据表标识;当存在数据表标识时,获取
预先配置的配置信息中与数据表标识对应的数据模型标识;根据预先配置的配置信息确定
数据表标识对应的数据表是否为主表;当数据表标识对应的数据表为主表时,根据数据模
型标识和主表的主键值生成更新标识;当数据表标识对应的数据表为从表时,根据数据模
型标识和从表的外键值生成更新标识。
[0086] 在其中一个实施例中,建立数据更新消息与更新标识的对应关系,包括:获取预先配置的配置信息中与数据表标识对应的更新标识有效时间;根据更新标识有效时间建立数
据更新消息与更新标识的对应关系。
[0087] 具体地,数据更新消息完全跟第一数据库的数据变更操作一一对应,举例说明:一张客户表customer,其关联的还有电话表phone,地址表address,假设保存客户信息在
customer、phone、address3张表中各插入了一条数据,这时候服务器会产生3条数据更新消
息。服务器不需要重复对每一条数据更新消息都做处理,数据只需要同步一次即可。因此服
务器对数据更新消息做归并,产生一条整合消息:服务器获取配置“第一数据库表关联配
置”和其对应“处理延时时长”,当服务器获取到数据更新消息时,则获取到数据更新消息的
数据表名,当数据表明匹配上了“第一数据库表关联配置”中的某一张表,则先判定该数据
更新消息中的表是否为主表,若为主表,则获取配置中的主表主键名并从数据更新消息中
获取该主键值,若不为主表,则获取配置中的外键名并从数据更新消息中获取该外键值,然
后以数据模型编号和主键值或外键值为维度创建定时失效的锁,锁失效的时间为配置的
“处理延时时长”,后续消息按照上述方式处理与锁碰撞的话直接舍弃,如此第一条数据更
新消息会被处理,后面在“处理延时时长”内的其他数据更新消息都会被舍弃掉,同样的以
数据模型编号和主键值或外键值为维度创建的数据更新消息即为最后的数据更新消息。
[0088] 在一个实施例中,如图3所示,提供了一种数据同步方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0089] S302:获取根据上述任意一个实施例中的数据库更新消息处理方法所得到的数据更新消息。
[0090] 具体地,数据更新消息的获取方式可以参见上文,在此不再赘述。
[0091] S304:根据数据更新消息从第一数据库获取更新数据。
[0092] 具体地,服务器根据数据更新消息从第一数据库中获取到更新数据,例如根据配置信息获取到第一数据库的连接信息,然后服务器连接第一数据库,并在连接第一数据库
成功后,根据数据更新消息获取到更新数据。
[0093] S306:按照预先配置的配置信息对更新数据进行数据转换得到目标数据。
[0094] S308:将目标数据保存至第二数据库。
[0095] 具体地,对更新数据进行转换是为了使得更新后的数据符合第二数据库的要求,服务器根据预先配置的数据转换规则对更新数据进行转换得到目标数据。
[0096] 其中可选地,按照预先配置的配置信息对更新数据进行数据转换得到目标数据,包括:按照预先存储的模板对更新数据进行解析得到目标数据;和/或按照预先存储的字段
对应关系对更新数据进行数据转换得到目标数据。
[0097] 即服务器可以支持两种转换方式,一种是根据FreeMarker(是一款模板引擎,即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码
等)的通用工具)模板解析方式转换,另外一种是根据字段对应关系转换,并保存到第二数
据库中。
[0098] 上述实施例中,对数据更新消息进行整合,这样针对同一数据的更新仅生成一条数据更新消息,从而时候后续对第二数据库进行数据同步时,仅需要一次操作,减少了重复
次数,降低了资源占用,提高了处理效率。
[0099] 在一个实施例中,如图4所示,提供了一种数据库配置信息配置方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0100] S402:接收针对第一数据库的连接信息配置指令,并根据第一数据库的连接信息配置指令配置第一数据库的连接信息。
[0101] 具体地,此步骤主要是对第一数据库的连接信息进行配置,其中服务器可以提供“数据库连接信息”管理页面:管理第一数据库连接信息。通过点击“新增数据库连接”按钮
可新添加连接配置。初始化展示所有历史配置过的数据库连接信息(数据库名,数据库类
型,用户名),并且点击历史一条配置可以进行编辑。
[0102] 其中,第一数据库连接信息可以包括库名、数据库类型、IP、端口号、用户名、密码(加密保存)等。第一数据库连接信息是用于连接第一数据库查询最新数据。例:库名A、数据
库类型MySQL、IP地址10.1.1.1、端口号1521、用户名queryuser、密码123。
[0103] S404:接收针对第一数据库中各个数据表的关联关系的配置指令,并根据关联关系的配置指令对第一数据库中各个数据表进行配置,以确定各个数据表标识对应的更新标
识以及更新标识的有效时间,更新标识以及更新标识的有效时间用于在上述任意一个实施
例中的数据库更新消息处理方法中使用。
[0104] 具体地,该步骤主要是对第一数据库的数据模型的管理以及对数据更新消息的处理规则的配置。
[0105] 其中,对于数据模型的管理,服务器可以提供数据模型管理页面,通过点击“新增数据模型”按钮可新添加数据模型配置,创建数据模型编号,填写描述,并引导用户完成“数
据采集”“数据转换以及同步”的配置。页面初始化展示业务模型信息(数据模型编号、描述
等),点击按钮可查看详情、可编辑。
[0106] 可选地,对于数据更新消息的处理规则,即根据关联关系的配置指令对第一数据库中各个数据表进行配置,包括:配置第一数据库中各数据模型的数据模型标识、数据模型
标识对应的更新标识的有效时间以及各个数据模型中的主表和从表,并配置主表的主键值
和从表的外键值。
[0107] 其中,服务器可以提供数据采集配置页面,以配置第一数据库表关联关系和数据更新消息的处理规则,其中包括上述的延时时间。
[0108] 其中数据模型的管理可以是包括第一数据库表关联配置,包括但不限于数据模型编号、数据模型包含那些表、每个表和数据库对应关系、每个表要取哪些字段、哪张表为主
表以及表之间的关联关系(主键、外键)等。
[0109] 例如配置数据模型编号为RLT0000000001,一张客户表customer存在A库,有客户ID(主键)、姓名、证件类型、证件号等字段;其关联的还有电话表phone存在B库,有主键ID、
客户ID、手机号、录入时间等字段;地址表address存在B库,有主键ID、省、市、区、详细地址
等字段;那么主表为customer,电话表phone、地址表address中保存了客户ID为外键对应的
客户表customer的主键。
[0110] 在一个实施例中,如图5所示,提供了一种数据库配置信息配置方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0111] S502:接收针对第二数据库的连接信息配置指令,并根据第一数据库的连接信息配置指令配置第二数据库的连接信息。
[0112] 具体地,此步骤主要是对第二数据库的连接信息进行配置,其中服务器可以提供 “数据库连接信息”管理页面:管理第二数据库连接信息。通过点击“新增数据库连接”按钮
可新添加连接配置。初始化展示所有历史配置过的数据库连接信息(数据库名,数据库类
型,用户名),并且点击历史一条配置可以进行编辑。
[0113] 第二数据库连接信息包括库名、数据库类型、IP、端口号、用户名、密码等。第二数据库连接信息用于连接第二数据库。
[0114] 第二数据库数据结构:第二数据库中创建的一般都是扁平化的数据结构。需要设置数据模型编号、库名、表名、字段信息,字段信息包括:字段名、字段类型、索引类型、分词
器等。
[0115] 例:在ES创建customer表,设置字段name为text类型,支持索引,使用分词器IKAnalyzer;设置phones、addresses为nested类型。
[0116] S504:接收针对第二数据库中的数据与第一数据库中的数据的转换规则配置指令,并根据转换规则配置指令配置第二数据库中的数据与第一数据库中的数据的转换规
则;转换规则用于在上述任意一个实施例中的数据同步方法中使用。
[0117] 具体地,服务器中还可以提供数据转换规则配置页面,从而用于用户对数据转换规则进行配置。
[0118] 具体地数据转换规则与数据模型编号一一对应,描述第一数据库中的各个表里的字段和第二数据库中字段的对应关系。支持两种方式FreeMarker模板解析方式转换和字段
对应关系转换。
[0119] 例:A库(MySQL)中的CUSTOMER表中的NAME字段对应B库(ES)中customer表中的name字段,那么对应的配置A库(MySQL)中的CUSTOMER表中的NAME字段对应B库(ES)中
customer表中的name字段;A库PHONE表的CONTENT字段对应B库customer表中的nested字段
phones中的content字段,那么对应的配置A库PHONE表的CONTENT字段对应B库customer表
中的nested字段phones。
[0120] 具体地,结合图6所示,图6为一个实施例中的结构相异的数据库的数据同步系统的示意图。
[0121] 在该实施例中,首先通过后台管理模块来进行配置信息的配置,其中包括第一数据库的连接信息、第二数据库的连接信息、第一数据库的表关联信息、第一数据库的数据更
新消息处理规则、第二数据库的结构信息以及第一数据库和第二数据库的数据转换规则。
[0122] 其次,通过Canal监听第一数据库的数据变化,并生成数据更新消息,将数据更新消息存储至kafka集群中,这样消息加工模块从kafka集群中读取数据更新消息并按照数据
更新消息处理规则对数据更新消息进行处理,其中包括先查询数据更新消息中数据表标识
是否存在,若是不存在,则输出报警,若是存在,则获取该数据表标识对应的数据模型标识
和对应的主键或外键,进而从数据更新消息中读取主键值或外键值,其中主键和外键主要
是根据数据表标识对应的数据表是否为主表来确定,若是主表,则获取主键,若非主表,则
获取从键,这样消息加工模块计算得到该数据更新消息对应的更新标识,也即数据模型标
识和键值,并判断目前是否存在该更新标识对应的数据更新消息,若是存在,则表明已经存
在了对应的数据更新消息,则删除新来的数据更新消息,即对数据更新消息进行整合。若是
不存在,则存储该数据更新消息至另外一个kafka中,其中消息加工模块还可以获取更新标
识的延时时间,以设置更新标识的有效时间,在该有效时间过后,删除该条数据更新消息和
更新标识,并继续获取后续的数据更新消息。
[0123] 此外,数据加工模块会定期或者是根据用户触发从kafka中获取到整合后的数据更新消息,然后根据该数据更新消息从第一数据库中获取更新数据,并根据第一数据库和
第二数据库的数据转换规则对更新数据进行转换得到目标数据,并将目标数据存储至第二
数据库,从而后续可以从第二数据库查询到数据。
[0124] 上述实施例中,可实现不同类型的数据库之间的数据同步工作,如:MySQL数据同步到ES中。仅配置(0编码)即可将数据转换为所需的结构并保存到目标数据库中,如:将多
表关联的数据转换为扁平化结构的数据并保存到ES中。最后减少了重复数据同步处理的次
数,提升了系统性能。
[0125] 应该理解的是,虽然图2至图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些
步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图5中的
至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时
刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次
进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地
执行。
[0126] 在一个实施例中,如图7所示,提供了一种数据库更新消息处理装置,包括:第一更新消息获取模块701、查询模块702、判断模块703和删除模块704,其中:
[0127] 第一更新消息获取模块701,用于获取第一数据库的数据更新消息,数据更新消息携带有数据表标识;
[0128] 查询模块702,用于查询预先配置的配置信息以获得与数据表标识对应的更新标识;
[0129] 判断模块703,用于判断是否已存在与更新标识对应的数据更新消息;
[0130] 删除模块704,用于当已存在与更新标识对应的数据更新消息,删除数据更新消息。
[0131] 在其中一个实施例中,上述查询模块702包括:
[0132] 查询单元,用于查询预先配置的配置信息中是否存在数据表标识;
[0133] 数据模型标识获取单元,用于当存在数据表标识时,获取预先配置的配置信息中与数据表标识对应的数据模型标识;
[0134] 判断单元,用于根据预先配置的配置信息确定数据表标识对应的数据表是否为主表;
[0135] 更新标识生成单元,用于当数据表标识对应的数据表为主表时,根据数据模型标识和主表的主键值生成更新标识;当数据表标识对应的数据表为从表时,根据数据模型标
识和从表的外键值生成更新标识。
[0136] 在其中一个实施例中,上述数据库更新消息处理装置还包括:
[0137] 建立模块,用于当不存在与更新标识对应的数据更新消息,建立数据更新消息与更新标识的对应关系。
[0138] 在其中一个实施例中,上述建立模块包括:
[0139] 时间获取单元,用于获取预先配置的配置信息中与数据表标识对应的更新标识有效时间;
[0140] 建立单元,用于根据更新标识有效时间建立数据更新消息与更新标识的对应关系。
[0141] 在一个实施例中,如图8所示,提供了一种数据同步装置,包括:第二更新消息获取模块801、更新数据获取模块802、转换模块803和存储模块804,其中:
[0142] 第二更新消息获取模块801,用于获取根据上述任意一个实施例中的数据库更新消息处理装置所得到的数据更新消息;
[0143] 更新数据获取模块802,用于根据数据更新消息从第一数据库获取更新数据;
[0144] 转换模块803,用于按照预先配置的配置信息对更新数据进行数据转换得到目标数据;
[0145] 存储模块804,用于将目标数据保存至第二数据库。
[0146] 在其中一个实施例中,上述转换模块803还用于按照预先存储的模板对更新数据进行解析得到目标数据;和/或按照预先存储的字段对应关系对更新数据进行数据转换得
到目标数据。
[0147] 在一个实施例中,如图9所示,提供了一种数据库配置信息配置装置,包括:第一接收模块901和第二接收模块902,其中:
[0148] 第一接收模块901,用于接收针对第一数据库的连接信息配置指令,并根据第一数据库的连接信息配置指令配置第一数据库的连接信息;
[0149] 第二接收模块902,用于接收针对第一数据库中各个数据表的关联关系的配置指令,并根据关联关系的配置指令对第一数据库中各个数据表进行配置,以确定各个数据表
标识对应的更新标识以及更新标识的有效时间,更新标识以及更新标识的有效时间用于在
上述任意一个实施例中的数据库更新消息处理装置中使用。
[0150] 在其中一个实施例中,上述第二接收模块902还用于配置第一数据库中各数据模型的数据模型标识、数据模型标识对应的更新标识的有效时间以及各个数据模型中的主表
和从表,并配置主表的主键值和从表的外键值。
[0151] 在一个实施例中,如图10所示,提供了一种数据库配置信息配置装置,包括:第三接收模块1001和第四接收模块1002,其中:
[0152] 第三接收模块1001,用于接收针对第二数据库的连接信息配置指令,并根据第一数据库的连接信息配置指令配置第二数据库的连接信息;
[0153] 第四接收模块1002,用于接收针对第二数据库中的数据与第一数据库中的数据的转换规则配置指令,并根据转换规则配置指令配置第二数据库中的数据与第一数据库中的
数据的转换规则;转换规则用于在上述任意一个实施例中的数据同步装置中使用。
[0154] 关于更新消息处理装置、数据同步装置、配置信息配置装置的具体限定可以参见上文中对于更新消息处理方法、数据同步方法、配置信息配置方法的限定,在此不再赘述。
上述更新消息处理装置、数据同步装置、配置信息配置装置中的各个模块可全部或部分通
过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的
处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以
上各个模块对应的操作。
[0155] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。
其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易
失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该
内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备
的数据库用于缓存数据更新消息。该计算机设备的网络接口用于与外部的终端通过网络连
接通信。该计算机程序被处理器执行时以实现一种更新消息处理方法、数据同步方法、配置
信息配置方法。
[0156] 本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设
备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0157] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取第一数据库的数据更新消息,
数据更新消息携带有数据表标识;查询预先配置的配置信息以获得与数据表标识对应的更
新标识;判断是否已存在与更新标识对应的数据更新消息;当已存在与更新标识对应的数
据更新消息,删除数据更新消息。
[0158] 在一个实施例中,处理器执行计算机程序时所实现的查询预先配置的配置信息以获得与数据表标识对应的更新标识,包括:查询预先配置的配置信息中是否存在数据表标
识;当存在数据表标识时,获取预先配置的配置信息中与数据表标识对应的数据模型标识;
根据预先配置的配置信息确定数据表标识对应的数据表是否为主表;当数据表标识对应的
数据表为主表时,根据数据模型标识和主表的主键值生成更新标识;当数据表标识对应的
数据表为从表时,根据数据模型标识和从表的外键值生成更新标识。
[0159] 在一个实施例中,处理器执行计算机程序时所实现的判断是否已存在与更新标识对应的数据更新消息之后,还包括:当不存在与更新标识对应的数据更新消息,建立数据更
新消息与更新标识的对应关系。
[0160] 在一个实施例中,处理器执行计算机程序时所实现的建立数据更新消息与更新标识的对应关系,包括:获取预先配置的配置信息中与数据表标识对应的更新标识有效时间;
根据更新标识有效时间建立数据更新消息与更新标识的对应关系。
[0161] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取根据上述任意一个实施例中
的数据库更新消息处理方法所得到的数据更新消息;根据数据更新消息从第一数据库获取
更新数据;按照预先配置的配置信息对更新数据进行数据转换得到目标数据;将目标数据
保存至第二数据库。
[0162] 在一个实施例中,处理器执行计算机程序时所实现的按照预先配置的配置信息对更新数据进行数据转换得到目标数据,包括:按照预先存储的模板对更新数据进行解析得
到目标数据;和/或按照预先存储的字段对应关系对更新数据进行数据转换得到目标数据。
[0163] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收针对第一数据库的连接信息
配置指令,并根据第一数据库的连接信息配置指令配置第一数据库的连接信息;接收针对
第一数据库中各个数据表的关联关系的配置指令,并根据关联关系的配置指令对第一数据
库中各个数据表进行配置,以确定各个数据表标识对应的更新标识以及更新标识的有效时
间,更新标识以及更新标识的有效时间用于在上述任意一个实施例中的数据库更新消息处
理方法中使用。
[0164] 在一个实施例中,处理器执行计算机程序时所实现的根据关联关系的配置指令对第一数据库中各个数据表进行配置,包括:配置第一数据库中各数据模型的数据模型标识、
数据模型标识对应的更新标识的有效时间以及各个数据模型中的主表和从表,并配置主表
的主键值和从表的外键值。
[0165] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收针对第二数据库的连接信息
配置指令,并根据第一数据库的连接信息配置指令配置第二数据库的连接信息;接收针对
第二数据库中的数据与第一数据库中的数据的转换规则配置指令,并根据转换规则配置指
令配置第二数据库中的数据与第一数据库中的数据的转换规则;转换规则用于在上述任意
一个实施例中的数据同步方法中使用。
[0166] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取第一数据库的数据更新消息,数据更新消息携
带有数据表标识;查询预先配置的配置信息以获得与数据表标识对应的更新标识;判断是
否已存在与更新标识对应的数据更新消息;当已存在与更新标识对应的数据更新消息,删
除数据更新消息。
[0167] 在一个实施例中,计算机程序被处理器执行时所实现的查询预先配置的配置信息以获得与数据表标识对应的更新标识,包括:查询预先配置的配置信息中是否存在数据表
标识;当存在数据表标识时,获取预先配置的配置信息中与数据表标识对应的数据模型标
识;根据预先配置的配置信息确定数据表标识对应的数据表是否为主表;当数据表标识对
应的数据表为主表时,根据数据模型标识和主表的主键值生成更新标识;当数据表标识对
应的数据表为从表时,根据数据模型标识和从表的外键值生成更新标识。
[0168] 在一个实施例中,计算机程序被处理器执行时所实现的判断是否已存在与更新标识对应的数据更新消息之后,还包括:当不存在与更新标识对应的数据更新消息,建立数据
更新消息与更新标识的对应关系。
[0169] 在一个实施例中,计算机程序被处理器执行时所实现的建立数据更新消息与更新标识的对应关系,包括:获取预先配置的配置信息中与数据表标识对应的更新标识有效时
间;根据更新标识有效时间建立数据更新消息与更新标识的对应关系。
[0170] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取根据上述任意一个实施例中的数据库更新消息
处理方法所得到的数据更新消息;根据数据更新消息从第一数据库获取更新数据;按照预
先配置的配置信息对更新数据进行数据转换得到目标数据;将目标数据保存至第二数据
库。
[0171] 在一个实施例中,计算机程序被处理器执行时所实现的按照预先配置的配置信息对更新数据进行数据转换得到目标数据,包括:按照预先存储的模板对更新数据进行解析
得到目标数据;和/或按照预先存储的字段对应关系对更新数据进行数据转换得到目标数
据。
[0172] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收针对第一数据库的连接信息配置指令,并根据
第一数据库的连接信息配置指令配置第一数据库的连接信息;接收针对第一数据库中各个
数据表的关联关系的配置指令,并根据关联关系的配置指令对第一数据库中各个数据表进
行配置,以确定各个数据表标识对应的更新标识以及更新标识的有效时间,更新标识以及
更新标识的有效时间用于在上述任意一个实施例中的数据库更新消息处理方法中使用。
[0173] 在一个实施例中,计算机程序被处理器执行时所实现的根据关联关系的配置指令对第一数据库中各个数据表进行配置,包括:配置第一数据库中各数据模型的数据模型标
识、数据模型标识对应的更新标识的有效时间以及各个数据模型中的主表和从表,并配置
主表的主键值和从表的外键值。
[0174] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收针对第二数据库的连接信息配置指令,并根据
第一数据库的连接信息配置指令配置第二数据库的连接信息;接收针对第二数据库中的数
据与第一数据库中的数据的转换规则配置指令,并根据转换规则配置指令配置第二数据库
中的数据与第一数据库中的数据的转换规则;转换规则用于在上述任意一个实施例中的数
据同步方法中使用。
[0175] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑
Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器
(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种
形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存
储器(Dynamic Random Access Memory,DRAM)等。
[0176] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
[0177] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护
范围。因此,本申请专利的保护范围应以所附权利要求为准。