同步数据变更信息的方法及装置制造方法及图纸

技术编号:18458787 阅读:41 留言:0更新日期:2018-07-18 12:42
本说明书实施例提供同步数据库中的变更信息的方法和装置。方法包括,首先接收来自数据库的数据变更消息,所述数据变更消息指示出发生变更的特定数据表中的特定数据项。接着根据上述数据变更消息,在与特定数据表对应的特定镜像表中更新与特定数据项对应的记录。并且,确定与所述特定镜像表相关联的上级表,所述上级表包含与所述特定镜像表的主键相关联的外键;然后,对所述上级表和与所述上级表相关联的下级表进行重新连接,生成更新的宽表,其中所述下级表的主键与所述上级表的外键相关联。所述装置与上述方法相对应。这样的方法和装置能够对数据库中的数据变更进行有效的同步和更新。

Method and device for synchronizing data change information

The embodiment of the specification provides a method and device for synchronizing the change information in the database. The method includes, first, receiving data change messages from the database, and the data change message indicates a specific data item in a specific data table that has changed. Then, according to the above data change message, update the record corresponding to the specific data item in the specific mirror table corresponding to the specific data table. Furthermore, the superior table associated with the specified mirror table includes the external key associated with the primary key of the specific mirror table, and then the lower table associated with the superior table is reconnected to generate the updated wide table, the main key of the lower table described in the table and the superior. The external keys of the table are associated. The device corresponds to the above method. Such a method and device can effectively synchronize and update data changes in the database.

【技术实现步骤摘要】
同步数据变更信息的方法及装置
本说明书一个或多个实施例涉及计算机和数据库领域,更具体地,涉及同步数据库中的数据变更信息的方法和装置。
技术介绍
随着互联网的升级,人们越来越多地使用搜索引擎对网络上的海量数据进行搜索。搜索引擎为了进行快速搜索,需要对数据库中的文档建立索引,以便在接收到查询请求时,根据索引快速搜索数据库中的文档。一般地,数据库中存在大量的数据表来记录与文档相关的各种数据项,为了对文档构建索引,通常会将多个数据表进行连接(join),形成一个宽表,基于该宽表来构建索引。随着网络上数据量的激增,数据库中的数据表也急速增加,并且经常性地发生变更。面对海量数据表的频繁变更,如何更有效地将变更信息同步到搜索引擎,如何更新索引,成为有待解决的问题。
技术实现思路
本说明书一个或多个实施例描述了一种方法和装置,能够对数据库中的数据变更进行高效同步,降低更新索引的成本,提高性能和效率。根据第一方面,提供了同步数据库中的变更信息的方法,包括:接收来自数据库的第一数据变更消息,所述第一数据变更消息指示出发生变更的第一数据表中的第一数据项;根据所述第一数据变更消息,在与所述第一数据表对应的第一镜像表中更新与所述第一数据项对应的记录;确定与所述第一镜像表相关联的上级表,所述上级表包含与所述第一镜像表的主键相关联的外键;对所述上级表和与所述上级表相关联的下级表进行重新连接,生成更新的宽表,其中所述下级表的主键与所述上级表的外键相关联。在一种可能的设计中,确定与所述数据表相关联的上级表的步骤包括:确定所述第一镜像表的主键;确定第一主表作为所述上级表,所述第一主表以所述第一镜像表的主键为外键。在进一步的设计中,所述确定与所述数据表相关联的上级表还包括:确定所述第一主表的主键;确定第二主表作为所述上级表,所述第二主表以所述第一主表的主键为外键。在一种可能的设计中,对所述上级表和与所述上级表相关联的下级表进行重新连接的步骤包括:确定与所述上级表相关联的下级表;将所述上级表与所述下级表进行连接。在进一步的设计中,所述上级表包括第一外键,所述确定与所述上级表相关联的下级表包括:确定第一辅表作为所述下级表,所述第一辅表的主键等于所述第一外键。在更进一步的设计中,上述第一辅表包括第二外键,所述确定与所述上级表相关联的下级表还包括:确定第二辅表作为所述下级表,所述第二辅表的主键等于所述第二外键。在一种可能的设计中,将所述上级表与所述下级表进行连接包括:采取内连接、外连接、自然连接之一,对所述上级表和所述下级表进行连接。在一种设计中,所述上级表和所述下级表分别为数据库中对应数据表的镜像表。在一种可能的设计中,方法还包括:在预定时间间隔内接收第二数据变更消息,所述第二数据变更消息指示出发生变更的第二数据表中的第二数据项,所述第二数据表与所述第一数据表具有相同的主键;将所述第二数据变更消息路由到用于处理所述第一数据变更消息的线程。在一种可能的设计中,上述方法还包括:将所述更新的宽表发送到搜索引擎,用于更新数据索引。根据第二方面,提供一种同步数据库中的变更信息的装置,包括:接收单元,配置为接收来自数据库的第一数据变更消息,所述第一数据变更消息指示出发生变更的第一数据表中的第一数据项;更新单元,配置为根据所述第一数据变更消息,在与所述第一数据表对应的第一镜像表中更新与所述第一数据项对应的记录;上级表确定单元,配置为确定与所述第一镜像表相关联的上级表,所述上级表包含与所述第一镜像表的主键相关联的外键;多连接单元,配置为对所述上级表和与所述上级表相关联的下级表进行重新连接,生成更新的宽表,其中所述下级表的主键与所述上级表的外键相关联。根据第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。通过本说明书实施例提供的方法及装置,一旦数据库中发生数据变更,在镜像空间中更新修改的数据表,并确定出相关联的数据表而进行重新连接。如此,避免了频繁查询原数据表对原数据库带来的查询压力和性能压力,并且宽表的更新仅基于与修改相关联的数据表,且重新连接的过程不受不同数据库的格式和连接逻辑的限制,具有更好的通用性,以及更好的性能。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1示出本说明书披露的一个实施例的实施场景示意图;图2根据一个实施例的同步数据库变更信息的方法的流程图;图3A和3B示出镜像表修改的一个例子;图4示出根据一个实施例的上级表的示意图;图5示出确定下级表的示意图;图6示出根据数据表B确定出的下级表的示意图;图7示出根据一个实施例的同步装置的示意性框图。具体实施方式下面结合附图,对本说明书提供的方案进行描述。图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,在数据库存储平台100中存储有大量的数据表。一般地,数据库存储平台为分布式存储系统,例如HDFS,各个数据表可以存储在不同的物理存储空间。并且,各个数据表可以位于不同格式的数据库中,例如MySQL,Oracle,Oceanbase等。为了应对这些数据表的变更,为数据库中的数据表建立镜像空间200,在其中存储各个数据表的镜像表。在一个实施例中,镜像空间200也可以采用分布式数据库,例如HBase(HadoopDatabase)实现。计算平台300维护镜像空间200中的镜像表与存储平台100中的数据表的同步,并基于镜像空间200中的镜像表进行数据表的连接(join),将生成的宽表提供给搜索引擎400。具体地,在存储平台100中的数据表发生变更时,会发出一条变更消息。计算平台300获取到这样的变更信息后,首先相应地修改镜像空间中的镜像表,然后在镜像空间中将该修改扩散到相关联的上级表,对于相关联的上级表调用多连接引擎。上述多连接引擎可以将上述上级表与其下级表进行多维多级的连接,由此生成更新的宽表。该更新的宽表可以提供给搜索引擎,用于更新数据索引。通过以上的方式,避免对原始数据表进行大量的查询,提升了性能;并且数据表的连接过程不受原始数据表所在数据库的格式约束,具有更好的通用性。下面描述计算平台的具体执行过程。图2示出根据一个实施例的同步数据库变更信息的方法的流程图。该方法可以通过任何具有计算和处理能力的装置、设备或系统来执行,例如由图1所示的计算平台300。如图2所示,该方法包括以下步骤:步骤21,接收来自数据库的数据变更消息,所述数据变更消息指示出发生变更的特定数据表中的特定数据项;步骤22,根据所述数据变更消息,在与所述特定数据表对应的特定镜像表中更新与所述特定数据项对应的记录;步骤23,确定与所述特定镜像表相关联的上级表,所述上级表包含与所述特定镜像表的主键相关联的外键;步骤24,对所述上级表和与所述上级表相关联的下级表进行重新连接,生成更新的宽表,其中所述下级表的主键与本文档来自技高网...

【技术保护点】
1.一种同步数据库中的变更信息的方法,包括:接收来自数据库的第一数据变更消息,所述第一数据变更消息指示出发生变更的第一数据表中的第一数据项;根据所述第一数据变更消息,在与所述第一数据表对应的第一镜像表中更新与所述第一数据项对应的记录;确定与所述第一镜像表相关联的上级表,所述上级表包含与所述第一镜像表的主键相关联的外键;对所述上级表和与所述上级表相关联的下级表进行重新连接,生成更新的宽表,其中所述下级表的主键与所述上级表的外键相关联。

【技术特征摘要】
1.一种同步数据库中的变更信息的方法,包括:接收来自数据库的第一数据变更消息,所述第一数据变更消息指示出发生变更的第一数据表中的第一数据项;根据所述第一数据变更消息,在与所述第一数据表对应的第一镜像表中更新与所述第一数据项对应的记录;确定与所述第一镜像表相关联的上级表,所述上级表包含与所述第一镜像表的主键相关联的外键;对所述上级表和与所述上级表相关联的下级表进行重新连接,生成更新的宽表,其中所述下级表的主键与所述上级表的外键相关联。2.根据权利要求1所述的方法,其中,所述确定与所述数据表相关联的上级表包括:确定所述第一镜像表的主键;确定第一主表作为所述上级表,所述第一主表以所述第一镜像表的主键为外键。3.根据权利要求2所述的方法,其中所述确定与所述数据表相关联的上级表包括:确定所述第一主表的主键;确定第二主表作为所述上级表,所述第二主表以所述第一主表的主键为外键。4.根据权利要求1所述的方法,其中,对所述上级表和与所述上级表相关联的下级表进行重新连接包括:确定与所述上级表相关联的下级表;将所述上级表与所述下级表进行连接。5.根据权利要求4所述的方法,其中所述上级表包括第一外键,所述确定与所述上级表相关联的下级表包括:确定第一辅表作为所述下级表,所述第一辅表的主键等于所述第一外键。6.根据权利要求5所述的方法,其中所述第一辅表包括第二外键,所述确定与所述上级表相关联的下级表还包括:确定第二辅表作为所述下级表,所述第二辅表的主键等于所述第二外键。7.根据权利要求4所述的方法,其中将所述上级表与所述下级表进行连接包括:采取内连接、外连接、自然连接之一,对所述上级表和所述下级表进行连接。8.根据权利要求1-7中任一项所述的方法,其中所述上级表和所述下级表分别为所述数据库中对应数据表的镜像表。9.根据权利要求1所述的方法,还包括:在预定时间间隔内接收第二数据变更消息,所述第二数据变更消息指示出发生变更的第二数据表中的第二数据项,所述第二数据表与所述第一数据表具有相同的主键;将所述第二数据变更消息路由到用于处理所述第一数据变更消息的线程。10.根据权利要求1所述的方法,还包括:将所述更新的宽表发送到搜索引擎,用于更新数据索引。11.一种同步数据库中的变更信息的装置,包括:接收单元,配置为接收来自数据库的第一数据变更消息,所述第一数据变更消息指示出发生变更的第一数据表中的第一数据项;更新单元,配置为根据所述第一数据变更消息,在与所述第一数据表对应的第...

【专利技术属性】
技术研发人员:李飞飞
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1