检测数据表中被删除数据行的方法和装置制造方法及图纸

技术编号:14953925 阅读:77 留言:0更新日期:2017-04-02 10:22
本发明专利技术提供一种检测数据表中被删除数据行的方法和装置,方法包括:从第一数据库中查询第一数据表中包含的数据行;从第二数据库中查询第二数据表中包含的数据行以及各个数据行对应的版本号,其中第一数据表待与第二数据表进行同步,第二数据表中的任一数据行被修改时其对应的版本号增大;将第二数据表中的数据行与第一数据表中的数据行进行比较,查找出第二数据表与第一数据表中相同的数据行,对于查找出的第二数据表中的数据行,为其版本号增大预定的值;查找第二数据表中的非最大值版本号对应的数据行并作为被删除的数据行。根据本发明专利技术的技术方案,无需考虑第二数据表的表结构,即可判断是否包含被进行删除操作的数据行。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体而言,涉及一种检测数据表中被删除数据行的方法和装置
技术介绍
目前,客户端数据库在周期性地与远端数据库同步的过程中,如果需要对远端数据库中删除的数据行进行捕获,那么就需要一个监测哪些数据行已经被删除的方案。ES(ElasticSearch)是一个流行的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,具有实时搜索、稳定、可靠、快速、安装使用方便的特性。以ES为例,在应用ES的river-jdbc插件将远端数据库同步到ES某个索引的过程中,发现该插件只能监测到远端数据库的添加和修改操作,而监测不到删除操作,造成远端数据库中删除的记录依然存在于ES索引中,出现数据不一致的现象。目前针对监测远端数据库中删除的数据行,只能在远端数据库相应数据表中增加一个字段,例如:IsDeleted。字段值为deleted表明该数据行已经被删除,字段值为空表明该数据行未被删除。但是,对于一个不允许修改表结构的现有的远端数据库,如果新增加一个字段,与该数据库有关的项目要重新修改代码以适应删除的数据行,而通常客户端用户往往没有修改远端数据库表结构的权限。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的检测数据表中被删除数据行的方法和装置。依据本专利技术的一个方面,提供了一种检测数据表中被删除数据行的方法,包括:从第一数据库中查询第一数据表中包含的数据行;从第二数据库中查询第二数据表中包含的数据行以及各个数据行对应的版本号,其中所述第一数据表待与所述第二数据表进行同步,所述第二数据表中的任一数据行被修改时其对应的版本号增大;将所述第二数据表中的数据行与所述第一数据表中的数据行进行比较,查找出所述第二数据表与所述第一数据表中相同的数据行,对于查找出的所述第二数据表中的数据行,为其版本号增大预定的值;查找所述第二数据表中的非最大值版本号对应的数据行并作为被删除的数据行。可选地,前述的检测数据表中被删除数据行的方法,为其版本号增大预定的值,具体包括:对于查找出的所述第二数据表中的数据行,为其版本号增大1。可选地,前述的检测数据表中被删除数据行的方法,所述第一数据库为本地数据库,所述第二数据库为设置在预定的服务器上的数据库,从第二数据库中查询第二数据表中包含的数据行以及各个数据行对应版本号,具体包括:向所述服务器发送查询所述第二数据表中包含的数据行以及各个数据行对应的版本号的请求,以及从所述服务器接收所述第二数据表中包含的数据行以及各个数据行对应的版本号。可选地,前述的检测数据表中被删除数据行的方法,还包括:对所述第一数据表中的与所述第二数据表中被删除数据行对应的数据行进行删除。依据本专利技术的另一方面,还提供了一种检测数据表中被删除数据行的装置,包括:第一查询模块,用于从第一数据库中查询第一数据表中包含的数据行;第二查询模块,用于从第二数据库中查询第二数据表中包含的数据行以及各个数据行的版本号,其中所述第一数据表待与所述第二数据表进行同步,所述第二数据表中的任一数据行被修改时其对应的版本号增大;版本号增大模块,用于将所述第二数据表中的数据行与所述第一数据表中的数据行进行比较,查找出所述第二数据表与所述第一数据表中相同的数据行,对于查找出的所述第二数据表中的数据行,为其版本号增大预定的值;删除数据行识别模块,用于查找所述第二数据表中的非最大值版本号对应的数据行并作为被删除的数据行。可选地,前述的检测数据表中被删除数据行的装置,对于查找出的所述第二数据表中的数据行,为其版本号增大1。可选地,前述的检测数据表中被删除数据行的装置,所述第一数据库为本地数据库,所述第二数据库为设置在预定的服务器上的数据库,所述第二查询模块向所述服务器发送查询所述第二数据表中包含的数据行以及各个数据行对应的版本号的请求,以及从所述服务器接收所述第二数据表中包含的数据行以及各个数据行对应的版本号。可选地,前述的检测数据表中被删除数据行的装置,还包括:删除模块,用于对所述第一数据表中的与所述第二数据表中被删除数据行对应的数据行进行删除。根据以上技术方案,本专利技术的检测数据表中被删除数据行的方法和装置至少具有以下优点:根据本专利技术的技术方案,由于第二数据表中的数据行更新时,其版本号也会随之更新,而版本号较小的数据行说明其久未更新,已经被进行了删除操作,而将两个数据表中相同的数据行对应的版本号增大,使得第二数据表中其他的未删除数据行的版本号成为较小值,由于第一数据表不存在相应的数据行,所以利用增大后的版本号可以准确地判断出第一数据表的哪些数据行在与第二数据表进行同步时需被进行删除操作;根据本专利技术的技术方案,无需考虑第二数据表的表结构,即可判断是否包含被进行删除操作的数据行。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术的一个实施例的检测数据表中被删除数据行的方法的流程图;图2示出了根据本专利技术的另一个实施例的检测数据表中被删除数据行的方法的流程图;图3示出了根据本专利技术的一个实施例的检测数据表中被删除数据行的装置的框图;图4示出了根据本专利技术的另一个实施例的检测数据表中被删除数据行的装置的框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。如图1所示,本专利技术的一个实施例中提供了一种检测数据表中被删除数据行的方法,包括:步骤110,从第一数据库中查询第一数据表中包含的数据行。在本实施例的技术方案中,对于目标表格TB要查询其中的数据行,可以采用的查询方式是SELECT*FROMTB。步骤120,从第二数据库中查询第二数据表中包含的数据行以及各个数据行对应的版本号,其中第一数据表待与第二数据表进行同步,第二数据表中的任一数据行被修改时其对应的版本号增大。在本实施例的技术方案中,结合前述内容,可以在第二数据库中对上述查询语句进行解释操作:EXPLAINSELECT*FROMTB。在本实施例的技术方案中,以ES工具为例,ES中每一个数据行都记录有一个_version字段,该字段随着数据行的修改发生更新。步骤130,将第二数据表中的数据行与第一数据表中的数据行进行比较,查找出第二数据表与第一数据表中相同的数据行,对于查找出的第二数据表中的数据行,为其版本号增大预定的值。在本实施例的技术方案中,在数据行不停更新的过程中,远端数据库中删除的数据行已经不能更新ES记录的_version字段,而存在的数据行会使ES中记录的_version字段不断更新,版本号会逐渐增大本文档来自技高网...
检测数据表中被删除数据行的方法和装置

【技术保护点】
一种检测数据表中被删除数据行的方法,其特征在于,包括:从第一数据库中查询第一数据表中包含的数据行;从第二数据库中查询第二数据表中包含的数据行以及各个数据行对应的版本号,其中所述第一数据表待与所述第二数据表进行同步,所述第二数据表中的任一数据行被修改时其对应的版本号增大;将所述第二数据表中的数据行与所述第一数据表中的数据行进行比较,查找出所述第二数据表与所述第一数据表中相同的数据行,对于查找出的所述第二数据表中的数据行,为其版本号增大预定的值;查找所述第二数据表中的非最大值版本号对应的数据行并作为被删除的数据行。

【技术特征摘要】
1.一种检测数据表中被删除数据行的方法,其特征在于,包括:从第一数据库中查询第一数据表中包含的数据行;从第二数据库中查询第二数据表中包含的数据行以及各个数据行对应的版本号,其中所述第一数据表待与所述第二数据表进行同步,所述第二数据表中的任一数据行被修改时其对应的版本号增大;将所述第二数据表中的数据行与所述第一数据表中的数据行进行比较,查找出所述第二数据表与所述第一数据表中相同的数据行,对于查找出的所述第二数据表中的数据行,为其版本号增大预定的值;查找所述第二数据表中的非最大值版本号对应的数据行并作为被删除的数据行。2.根据权利要求1所述的检测数据表中被删除数据行的方法,其特征在于,为其版本号增大预定的值,具体包括:对于查找出的所述第二数据表中的数据行,为其版本号增大1。3.根据权利要求1所述的检测数据表中被删除数据行的方法,其特征在于,所述第一数据库为本地数据库,所述第二数据库为设置在预定的服务器上的数据库,从第二数据库中查询第二数据表中包含的数据行以及各个数据行对应版本号,具体包括:向所述服务器发送查询所述第二数据表中包含的数据行以及各个数据行对应的版本号的请求,以及从所述服务器接收所述第二数据表中包含的数据行以及各个数据行对应的版本号。4.根据权利要求1至3中任一项所述的检测数据表中被删除数据行的方法,其特征在于,还包括:对所述第一数据表中的与所述第二数据表中被删除数据行对应的数据行进行删...

【专利技术属性】
技术研发人员:谷雅俊
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京;11

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

1