CN111914020A - 数据同步方法及装置、数据查询方法及装置 - Google Patents

数据同步方法及装置、数据查询方法及装置 Download PDF

Info

Publication number
CN111914020A
CN111914020A CN202010561213.7A CN202010561213A CN111914020A CN 111914020 A CN111914020 A CN 111914020A CN 202010561213 A CN202010561213 A CN 202010561213A CN 111914020 A CN111914020 A CN 111914020A
Authority
CN
China
Prior art keywords
data
database
index
synchronized
databases
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010561213.7A
Other languages
English (en)
Inventor
杨飞
曹素杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kuangshi Technology Co Ltd
Beijing Megvii Technology Co Ltd
Original Assignee
Beijing Kuangshi Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kuangshi Technology Co Ltd filed Critical Beijing Kuangshi Technology Co Ltd
Priority to CN202010561213.7A priority Critical patent/CN111914020A/zh
Priority to PCT/CN2020/119711 priority patent/WO2021253688A1/zh
Publication of CN111914020A publication Critical patent/CN111914020A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Abstract

本公开提供了数据同步方法、数据同步装置、数据查询方法、数据查询装置、电子设备以及计算机可读存储介质,其中数据同步方法包括:获取待同步数据,所述待同步数据包括一个或多个第一数据库的数据库表中的数据;在目标数据库中建立第一索引,将待同步数据对应的全部所述第一数据库的数据库表的数据依次同步至所述第一索引;若当前的第一索引满足索引滚动策略,则建立新的第一索引,将尚未同步的数据继续同步至所述新的第一索引。通过对将多个数据库的数据库表中的数据依次滚动的写入一个或多个索引中,从而节省了占用的分片资源。

Description

数据同步方法及装置、数据查询方法及装置
技术领域
本公开一般地涉及数据库存储领域,具体涉及一种数据同步方法、数据同步装置、数据查询方法、数据查询装置、电子设备以及计算机可读存储介质。
背景技术
在数据存储和检索过程中,尤其在分布式存储的数据中,需要将底库数据同步到检索引擎才能进行属性检索,为了提高检索效率,需要对检索引擎中存储的数据建立索引。在一些分布式存储和分布式检索的相关技术中,检索引擎会设置有一定数量的分片(shards),每个分片对应一个索引,一个索引对应写入一个数据库的数据库表,也即对每个数据库的数据库表建立独立的索引,在这种情况下,如果待同步中包含的数据库的数量较多时,则会需要大量的分片资源,如果分片数量不够,则会导致不能够建立新的索引,造成部分数据库的数据无法同步、无法检索。
发明内容
为了解决现有技术中存在的上述问题,本公开的第一方面提供一种数据同步方法,其中,方法包括:获取待同步数据,待同步数据包括一个或多个第一数据库的数据库表中的数据;在目标数据库中建立第一索引,将待同步数据对应的全部第一数据库的数据库表的数据依次同步至第一索引;若当前的第一索引满足索引滚动策略,则建立新的第一索引,将尚未同步的数据继续同步至新的第一索引。
在一例中,当前的第一索引满足索引滚动策略,包括以下至少一项:当前的第一索引占用的存储空间达到存储阈值;同步至当前的第一索引的数据量达到容量阈值。
在一例中,当前的第一索引满足索引滚动策略,还包括:对当前的第一索引进行数据同步的时间达到时间阈值。
在一例中,待同步数据还包括一个或多个第二数据库的数据库表中的数据,其中,第二数据库的数据量大于第一数据库的数据量;方法还包括:在目标数据库中建立与每个第二数据库的数据库表一一对应的一个或多个第二索引;将每个第二数据库的数据库表的内容分别同步至其对应的第二索引。
在一例中,方法还包括:基于数据库表的表名确定建立索引的类型,其中,第一数据库的数据库表的表名包含第一标识,第二数据库的数据库表包含第二标识;若数据库表的表名包含第一标识,则执行建立第一索引,将待同步数据对应的全部第一数据库的数据库表的数据依次同步至第一索引的步骤;若数据库表的表名包含第二标识,则执行建立与每个第二数据库的数据库表一一对应的一个或多个第二索引的步骤。
在一例中,方法还包括:响应于删除任一第一数据库的数据删除请求,确定与待删除的第一数据库对应的一个或多个第一索引;删除一个或多个第一索引中与删除的第一数据库对应的数据。
在一例中,方法还包括:响应于删除任一第二数据库的数据删除请求,删除待删除的第二数据库对应的第二索引。
在一例中,方法还包括:当检测到对任一第一数据库的数据库表中第一数据的操作时,基于第一数据,在全部第一索引中确定第一数据对应的第一索引中数据的位置;并根据操作,同步修正第一数据对应的第一索引中的数据;其中,操作包括增加数据、修改数据或删除数据。
在一例中,方法还包括:当检测到对任一第二数据库的数据库表中第二数据的操作时,在第二数据库的数据库表对应的第二索引中,根据操作,同步修正第二数据对应的第二索引中的数据;其中,操作包括增加数据、修改数据或删除数据。
本公开的第二方面提供一种数据同步装置,包括:数据获取模块,用于获取待同步数据,待同步数据包括一个或多个第一数据库的数据库表中的数据;数据同步模块,用于在目标数据库中建立第一索引,将待同步数据对应的全部第一数据库的数据库表的数据依次同步至第一索引;若当前的第一索引满足索引滚动策略,则建立新的第一索引,将尚未同步的数据继续同步至新的第一索引。
本公开的第三方面提供一种数据查询方法,方法包括:获取待查询数据的查询信息;基于查询信息,在目标数据库的索引中查询待查询数据对应的同步数据;基于同步数据,确定待查询数据在其对应的数据库中的位置;其中,通过如权利要求1-8任一项的数据同步方法将数据库中的待同步数据同步至目标数据库的索引中。
本公开的第四方面提供一种数据查询装置包括:接收模块,用于获取待查询数据的查询信息;搜索模块,用于基于查询信息,在目标数据库的索引中查询待查询数据对应的同步数据;查询模块,用于基于同步数据,确定待查询数据在其对应的数据库中的位置;其中,通过如第一方面的数据同步方法将与数据库中的待同步数据同步至目标数据库的索引中。
本公开的第五方面提供一种电子设备,包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行如第一方面的数据同步方法或如第三方面的数据查询方法。
本公开的第六方面提供一种计算机可读存储介质,其中存储有指令,指令被处理器执行时,执行如第一方面的数据同步方法或如第三方面的数据查询方法。
本公开提供的数据同步方法、数据同步装置、数据查询方法、数据查询装置、电子设备以及计算机可读存储介质,通过对将多个数据库的数据库表中的数据依次滚动的写入一个或多个索引中,从而节省了占用的分片资源。
附图说明
通过参考附图阅读下文的详细描述,本公开实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了根据本公开一实施例数据同步方法的流程示意图;
图2示出了根据本公开另一实施例数据同步方法的流程示意图;
图3示出了根据本公开另一实施例数据同步方法的流程示意图;
图4示出了根据本公开另一实施例数据同步方法的流程示意图;
图5示出了根据本公开另一实施例数据同步方法的流程示意图;
图6示出了根据本公开一实施例数据查询方法的流程示意图;
图7示出了根据本公开一实施例的数据同步装置示意图。
图8示出了根据本公开另一实施例的数据同步装置示意图。
图9示出了根据本公开一实施例的数据查询装置示意图。
图10是本公开实施例提供的一种电子设备示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
需要注意,虽然本文中使用“第一”、“第二”等表述来描述本公开的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。
待同步数据可以为底库。底库包含静态库(数据量大,通常一个静态库中包含8000w条以上的数据)、动态库(数据量小,通常一个动态库中包含100w条以下的数据),底库中的一条数据通常是一张图片、姓名、身份证号等属性信息。一些相关技术中,要想对底库中的数据进行检索,需要通过例如Monstache的同步工具,将存储于分布式文件存储的数据库(如MongoDB)的底库数据同步至分布式检索引擎(如Elasticsearch),再在分布式检索引擎中实现对属性的模糊检索等检索查询功能。同步时,需要用MongoDB数据库的同步工具Monstache,通过读取操作日志(oplog),将MongoDB数据库中底库数据,即静态库、动态库数据同步到搜索引擎Elasticsearch中。在相关技术中,一个静态库放入Elasticsearch的一个索引,一个动态库也放入Elasticsearch的一个索引。
将底库数据由MongoDB同步至Elasticsearch时,MongoDB中每个数据库对应Elasticsearch中一个索引,索引的创建会占用分片资源,一个索引占用一个分片。动态库中包含的数据量小,当一个动态库对应一个索引、占用一个分片时,该动态库中的数据实际只使用了该分片的一小部分,但是由于该动态库占用了这个分片,其他数据库中的数据无法写入该分片。当待同步的动态库数目较多时,同步完成后,大量的分片都处于被占用但未存满的状态,会对Elasticsearch中分片资源产生极大浪费。另外,目前Elasticsearch单机仅有1000个分片可供使用,如果用一个数据库对应一个分片,则Elasticsearch单机最多只能存储1000个动态库/静态库,一旦待同步的动态库/静态库超过此数量,则需扩展Elasticsearch单机为集群。
为了解决上述问题,本公开实施例提供了一种数据同步方法10,可以应用于分布式文件存储的数据库中。如图1所示,数据同步方法10可以包括:步骤S11至步骤S13。下文分别对上述步骤进行详细说明:
步骤S11,获取待同步数据,待同步数据包括一个或多个第一数据库的数据库表中的数据。
本公开中的待同步数据可以是任何形式的数据,例如可以是用于图像识别领域中,待同步数据可以是存在底库中的数据,如可以包括图片、姓名、身份证号以及人员属性等信息。其中,第一数据库可以是动态库,该数据库的特点是数据量相对较小,一般一个第一数据库中包含为0-100万条数据,但待同步的第一数据库的个数相对较多,如果每个第一数据库的数据库表的数据分别放入一个索引,即占用一个分片,则会使大量的分片都处于被占用但未存满的状态,浪费大量分片资源。对于每个数据库的数据,在写入MongoDB数据库时均会写入MongoDB的一张数据库表中,每个数据库分别对应于一个数据库表。
第一数据库的数据库表第一数据库的数据库表步骤S12,在目标数据库中建立第一索引,将待同步数据对应的全部第一数据库的数据库表的数据依次同步至第一索引。
步骤S13,若当前的第一索引满足索引滚动策略,则建立新的第一索引,将尚未同步的数据继续同步至新的第一索引。
本公开实施例中,将各第一数据库的数据库表的内容,依次写入第一索引中。实现了把多个第一数据库的数据库表写入在一个索引内;而在一个索引满足索引滚动策略之后,可以建立一个新的索引,继续存入当前未存入的内容,从而减少了分片资源的浪费。在本实施例中,一个第一索引中可能存入了多个第一数据库的数据库表中的数据,一个第一数据库的数据库表的数据可能存在不同索引中(由于第一数据库中的数据量较小,一个第一数据库的数据库表中的部分数据存在于前一个第一索引、部分数据存在于后一个第一索引中的概率较小)。
在一实施例中,当前的第一索引满足索引滚动策略,包括以下至少一项:当前的第一索引占用的存储空间达到存储阈值;同步至当前的第一索引的数据量达到容量阈值。本实例中,可以根据索引占用的存储空间设置滚动策略的满足条件,例如,一个第一索引A中存入了10个第一数据库的数据库表的内容,其仅占用了一个分片资源,如果第11个第一数据库的数据库表的内容写入了前一半时,当前的第一索引A已把其占用的分片资源占满,则在一个新的分片上建立一个新的第一索引B,将第11个第一数据库的数据库表尚未写入的后半部分,继续写在新的第一索引B内,从而实现了“多个数据库表写入一个索引,超出索引容量自动新建另一索引”的滚动存储,大量节省了存储资源。另一方面,也可以根据同步至索引中的数据量设置滚动策略,即在一个第一索引内,写入了一定数量的数据后,可以重新创建新的第一索引继续写入数据,保证了每个第一索引内的数据量。例如,设置数据量为1亿条,第10个第一数据库的数据库表在第一索引C内同步数据时,第一索引C内的数据量达到了1亿条,则创建新的第一索引D,将第10个第一数据库的数据库表中未写入索引C的内容继续同步至第一索引D。上述两种方式可以择其一,也可以满足任一一项即满足索引滚动策略。
在一实施例中,在前述满足索引滚动策略的条件基础上,还可以包括:对当前的第一索引进行数据同步的时间达到时间阈值,即满足索引滚动策略。本实施例中,设置有时间阈值,在对一个第一索引进行数据同步的过程中,如果时间超过该时间阈值,还有新的待同步数据需要同步至第一索引,则可以创建一个新的第一索引。
在一实施例中,待同步数据还包括一个或多个第二数据库的数据库表中的数据,其中,第二数据库的数据量大于第一数据库的数据量。每个第二数据库同样分别对应于一个MongoDB中的数据库表。可以理解的是,可以设置一数据量阈值,当待同步数据中数据库的数据量大于数据量阈值时,则认为该数据库为第二数据库,否则该数据库为第一数据库。如图2所示,数据同步方法10还可以包括:步骤S14,在目标数据库中建立与每个第二数据库的数据库表一一对应的一个或多个第二索引;步骤S15,将每个第二数据库的数据库表的内容分别同步至其对应的第二索引。本实施例中,待同步数据还可以包括第二数据库,且第二数据库的数据量大于第一数据库,第二数据库如静态库,其特点是数据量相对较大,通常为8000万条以上,因此,即便一个分片对应一个静态库的数据库表,静态库对应的分片也会处于较满的状态;此外,静态库的个数相对较少,即便静态库所对应的分片未存满,也不会造成大量分片浪费。同时,一个索引仅存入一个静态库的数据库表时,由于静态库的数据量较大,在对该静态库中的数据进行检索时,直接在对应的索引中检索即可,因此可以提高效率。在对静态库进行删除操作时,可直接删除该静态库对应的索引,因此可提高数据删除效率。相反,如果对静态库也进行滚动存储,大概率会出现一个静态库中的数据存在不同索引中的情况。在对静态库中的数据进行检索时,需要先确定该静态库中的数据存储在哪几个索引中,再在这几个索引中进行检索,因此会降低检索效率。基于上述原因,在目标数据库中建立与每个第二数据库的数据库表一一对应的第二索引,即每个第二数据库的数据库表都有对应的一个第二索引,再将每个第二数据库的数据库表的内容分别同步至其对应的第二索引内。即对数量多、包含的数据量小的第一数据库采用“多个数据库表写入一个索引,超出索引容量自动新建另一索引”的滚动存储策略,对数量少、包含的数据量大第二数据库采用数据库表和索引一一对应的存储策略,通过对不同数据库采用不同的策略,节约了存储资源,也兼顾了检索效率。
在一实施例中,如图3所示,数据同步方法10还可以包括:步骤S16,基于数据库表的表名确定建立索引的类型,其中,第一数据库的数据库表的表名包含第一标识,第二数据库的数据库表包含第二标识;若数据库表的表名包含第一标识,则执行步骤S12;若数据库表的表名包含第二标识,则执行步骤S14。本实施例中,不同数据库类型对应的数据库表的命名规则可以不同,可以通过在表名中包含的标识,来确定该数据库表对应的数据库类型,从而能够方便的根据不同类型的数据库采用对应的策略进行创建索引。
例如,在外部将一个动态库数据写入MongoDB的情况下,同一个动态库的数据写入MongoDB的对应的一张数据库表,数据库表表名中带有monitor或其他标识,写入时产生操作日志oplog被同步工具Monstache实时监听到,从而会将写入的数据实时同步到搜索引擎Elasticsearch中,在同步到Elasticsearch的过程中,根据识别这数据库表表名带有monitor标识,则采用步骤S12的方式,即使用Elasticsearch上设置的针对动态库的同步模板,将这张数据库表的全部内容写入当前索引,当前索引满了再滚动存储到新索引。
在外部将静态库数据写入MongoDB的情况下,同一个静态库的数据写入MongoDB的对应的一张数据库表,数据库表表名中带有staitc或其他标识,同样,在写入时产生oplog被Monstache监听到,从而会将写入的数据实时同步到Elasticsearch中,在同步到Elasticsearch的过程中,根据识别这数据库表表名带有static标识,则采用步骤S14的方式,即使用Elasticsearch上设置的针对静态库的同步模板,将这张数据库表的全部内容写入一个单独的索引。在一实施例中,如图4所示,数据同步方法10还可以包括:步骤S171,响应于删除任一第一数据库的数据删除请求,确定与待删除的第一数据库对应的一个或多个第一索引;步骤S172,删除一个或多个第一索引中与删除的第一数据库对应的数据。本实施例中,根据实际需求需要对某一第一数据库的数据进行删除时,由于第一数据库与索引并非一一对应,因此响应于删除任一第一数据库的数据删除请求,需要先在全部第一索引中确定该待删除的第一数据库对应的第一索引,可能对应的是一个第一索引,也可能基于滚动策略同步从而对应的是多个第一索引。在确定对应的一个或多个第一索引后,删除在第一索引中的对应的数据,从而完成索引中的数据与数据库的同步。
在另一实施例中,如图5所示,数据同步方法10还可以包括:步骤S173,响应于删除任一第二数据库的数据删除请求,删除待删除的第二数据库对应的第二索引。本实施例中,根据实际需求需要对某一第二数据库的数据进行删除时,由于第二数据库与第二索引有一一对应的关系,与该待删除的第二数据库对应的第二索引可以预先或实时的进行确定,直接删除第二数据库对应的第二索引即完成数据删除。如此,可提高数据删除效率。在一例中,可将第二索引的索引名设置为包含第二数据库或第二数据库的数据库表的名称,或者,可将第二索引的索引名设置为与第二数据库或第二数据库的数据库表的名称相同,如此,可根据待删除的第二数据库的名称快速确定其对应的第二索引。
在一实施例中,数据同步方法10还可以包括:当检测到对任一第一数据库的数据库表中第一数据的操作时,基于第一数据,在全部第一索引中确定第一数据对应的第一索引中数据的位置;并根据操作,同步修正第一数据对应的第一索引中的数据;其中,操作包括增加数据、修改数据或删除数据。本实施例中,针对任一第一数据库的数据库表的第一数据进行操作时,由于第一数据库的数据库表是通过滚动策略同步至第一索引中的,因此,需要先确定该被操作的第一数据在哪个第一索引中以及在该第一索引中的位置,继而才能进行同步,可以通过在全部第一索引中进行检索,从而确定该第一数据的位置,之后根据实际操作类型,如增加数据、修改数据或删除数据,对第一索引中的内容进行同步。
在另一实施例中,数据同步方法10还可以包括:当检测到对任一第二数据库的数据库表中第二数据的操作时,在第二数据库的数据库表对应的第二索引中,根据操作,同步修正第二数据应的第二索引中的数据,其中,操作包括增加数据、修改数据或删除数据。不同于对第一数据库的数据库表中的第一数据进行操作之后的同步,对一个第二数据库的数据库表的第二数据进行操作后,由于每个第二数据库的数据库表均有一一对应的第二索引,因此,可以直接在对应的第二索引对该第二数据对应的数据进行与具体操作相应的同步修正。
基于同一发明构思,本公开还提供一种数据查询方法20,如图6所示,数据查询方法20可以包括:步骤S21获取待查询数据的查询信息;步骤S22基于查询信息,在目标数据库的索引中查询待查询数据对应的同步数据;步骤S23基于同步数据,确定待查询数据在其对应的数据库中的位置;其中,通过前述任一实施例的数据同步方法10将数据库中的待同步数据同步至目标数据库的索引中。通过数据同步方法10建立的索引能够降低对分片资源的占用,提高效率,并且能够根据同步至索引中的数据方便的进行查询。
基于同一发明构思,本公开还提供一种数据同步装置100,如图7所示,数据同步装置100包括:数据获取模块110,用于获取待同步数据,待同步数据包括一个或多个第一数据库的数据库表中的数据;数据同步模块120,用于在目标数据库中建立第一索引,将待同步数据对应的全部第一数据库的数据库表的数据依次同步至第一索引;若当前的第一索引满足索引滚动策略,则建立新的第一索引,将尚未同步的数据继续同步至新的第一索引。
在一例中,当前的第一索引满足索引滚动策略,包括以下至少一项:当前的第一索引占用的存储空间达到存储阈值;同步至当前的第一索引的数据量达到容量阈值。
在一例中,当前的第一索引满足索引滚动策略,还包括:对当前的第一索引进行数据同步的时间达到时间阈值。
在一例中,待同步数据还包括一个或多个第二数据库,其中,第二数据库的数据量大于第一数据库的数据量的数据库表中的数据;数据同步模块120还用于:在目标数据库中建立与每个第二数据库的数据库表一一对应的一个或多个第二索引;将每个第二数据库的数据库表的内容分别同步至其对应的第二索引。
在一例中,数据同步模块120还用于基于数据库表的表名确定建立索引的类型,其中,第一数据库的数据库表的表名包含第一标识,第二数据库的数据库表的表名包含第二标识;若数据库表的表名包含第一标识,则执行在目标数据库中建立第一索引,将待同步数据对应的全部第一数据库的数据库表的数据依次同步至第一索引;若数据库表的表名包含第二标识,则执行在目标数据库中建立与每个第二数据库的数据库表一一对应的一个或多个第二索引。
在一例中,如图8所示,数据同步装置100还包括:同步修正模块130,用于响应于删除任一第一数据库的数据删除请求,确定与待删除的第一数据库对应的一个或多个第一索引;删除一个或多个第一索引中与删除的第一数据库对应的数据。
在一例中,同步修正模块130还用于:响应于删除任一第二数据库的数据删除请求,删除待删除的第二数据库对应的第二索引。
在一例中,同步修正模块130还用于:当检测到对任一第一数据库的数据库表中第一数据的操作时,基于第一数据,在全部第一索引中确定第一数据对应的第一索引中数据的位置;并根据操作,同步修正第一数据对应的第一索引中的数据;其中,操作包括增加数据、修改数据或删除数据。
在一例中,同步修正模块130还用于:当检测到对任一第二数据库的数据库表中第二数据的操作时,在第二数据库的数据库表对应的第二索引中,根据操作,同步修正第二数据对应的第二索引中的数据;其中,操作包括增加数据、修改数据或删除数据。
关于上述实施例中的数据同步装置100,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本公开还提供一种数据查询装置200,如图9所示,数据查询装置200包括:接收模块210,用于获取待查询数据的查询信息;搜索模块220,用于基于查询信息,在目标数据库的索引中查询待查询数据对应的同步数据;查询模块230,用于基于同步数据,确定待查询数据在其对应的数据库中的位置;其中,通过如前述任一实施例中的数据同步方法10将与数据库中的待同步数据同步至目标数据库的索引中。
关于上述实施例中的数据查询装置200,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
如图10所示,本公开的一个实施方式提供了一种电子设备400。其中,该电子设备400包括存储器401、处理器402、输入/输出(Input/Output,I/O)接口403。其中,存储器401,用于存储指令。处理器402,用于调用存储器401存储的指令执行本公开实施例的数据同步方法或数据查询方法。其中,处理器402分别与存储器401、I/O接口403连接,例如可通过总线系统和/或其他形式的连接机构(未示出)进行连接。存储器401可用于存储程序和数据,包括本公开实施例中涉及的数据同步方法或数据查询方法的程序,处理器402通过运行存储在存储器401的程序从而执行电子设备400的各种功能应用以及数据处理。
本公开实施例中处理器402可以采用数字信号处理器(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现,所述处理器402可以是中央处理单元(Central Processing Unit,CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元中的一种或几种的组合。
本公开实施例中的存储器401可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(Random Access Memory,RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(Read-OnlyMemory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)等。
本公开实施例中,I/O接口403可用于接收输入的指令(例如数字或字符信息,以及产生与电子设备400的用户设置以及功能控制有关的键信号输入等),也可向外部输出各种信息(例如,图像或声音等)。本公开实施例中I/O接口403可包括物理键盘、功能按键(比如音量控制按键、开关按键等)、鼠标、操作杆、轨迹球、麦克风、扬声器、和触控面板等中的一个或多个。
可以理解的是,本公开实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本公开实施例涉及的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
出于示例和描述的目的,已经给出了本公开实施的前述说明。前述说明并非是穷举性的也并非要将本公开限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本公开的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本公开的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本公开。

Claims (14)

1.一种数据同步方法,其中,所述方法包括:
获取待同步数据,所述待同步数据包括一个或多个第一数据库的数据库表中的数据;
在目标数据库中建立第一索引,将所述待同步数据对应的全部所述第一数据库的数据库表的数据依次同步至所述第一索引;
若当前的第一索引满足索引滚动策略,则建立新的第一索引,将尚未同步的数据继续同步至所述新的第一索引。
2.根据权利要求1所述的方法,其中,所述当前的第一索引满足所述索引滚动策略,包括以下至少一项:
所述当前的第一索引占用的存储空间达到存储阈值;
同步至所述当前的第一索引的数据量达到容量阈值。
3.根据权利要求2所述的方法,其中,所述当前的第一索引满足所述索引滚动策略,还包括:
对所述当前的第一索引进行数据同步的时间达到时间阈值。
4.根据权利要求1所述的方法,其中,所述待同步数据还包括一个或多个第二数据库的数据库表中的数据,其中,所述第二数据库的数据量大于所述第一数据库的数据量;
所述方法还包括:
在目标数据库中建立与每个所述第二数据库的数据库表一一对应的一个或多个第二索引;
将每个所述第二数据库的数据库表的内容分别同步至其对应的第二索引。
5.根据权利要求4所述的方法,其中,所述方法还包括:
基于数据库表的表名确定建立索引的类型,其中,所述第一数据库的数据库表的表名包含第一标识,所述第二数据库的数据库表包含第二标识;
若数据库表的表名包含所述第一标识,则执行所述建立第一索引,将所述待同步数据对应的全部所述第一数据库的数据库表的数据依次同步至所述第一索引的步骤;
若所述数据库表的表名包含所述第二标识,则执行所述建立与每个所述第二数据库的数据库表一一对应的一个或多个第二索引的步骤。
6.根据权利要求4所述的方法,其中,所述方法还包括:
响应于删除任一第一数据库的数据删除请求,确定与待删除的第一数据库对应的一个或多个第一索引;
删除所述一个或多个第一索引中与所述待删除的第一数据库对应的数据。
7.根据权利要求4-6任一项所述的方法,其中,所述方法还包括:
响应于删除任一第二数据库的数据删除请求,删除待删除的第二数据库对应的第二索引。
8.根据权利要求4所述的方法,其中,所述方法还包括:
当检测到对任一第一数据库的数据库表中第一数据的操作时,基于所述第一数据,在全部所述第一索引中确定所述第一数据对应的第一索引中数据的位置;
并根据所述操作,同步修正所述第一数据对应的第一索引中的数据;
其中,所述操作包括增加数据、修改数据或删除数据。
9.根据权利要求4-6任一项所述的方法,其中,所述方法还包括:
当检测到对任一第二数据库的数据库表中第二数据的操作时,在所述第二数据库的数据库表对应的第二索引中,根据所述操作,同步修正所述第二数据对应的第二索引中的数据;
其中,所述操作包括增加数据、修改数据或删除数据。
10.一种数据同步装置,其中,所述装置包括:
数据获取模块,用于获取待同步数据,所述待同步数据包括一个或多个第一数据库的数据库表中的数据;
数据同步模块,用于在目标数据库中建立第一索引,将所述待同步数据对应的全部所述第一数据库的数据库表的数据依次同步至所述第一索引;若当前的第一索引满足索引滚动策略,则建立新的第一索引,将尚未同步的数据继续同步至所述新的第一索引。
11.一种数据查询方法,其中,所述方法包括:
获取待查询数据的查询信息;
基于所述查询信息,在目标数据库的索引中查询所述待查询数据对应的同步数据;
基于所述同步数据,确定所述待查询数据在其对应的数据库中的位置;
其中,通过如权利要求1-9任一项所述的数据同步方法将数据库中的待同步数据同步至所述目标数据库的索引中。
12.一种数据查询装置,其中,所述装置包括:
接收模块,用于获取待查询数据的查询信息;
搜索模块,用于基于所述查询信息,在目标数据库的索引中查询所述待查询数据对应的同步数据;
查询模块,用于基于所述同步数据,确定所述待查询数据在其对应的数据库中的位置;
其中,通过如权利要求1-9任一项所述的数据同步方法将与数据库中的待同步数据同步至所述目标数据库的索引中。
13.一种电子设备,其中,所述电子设备包括:
存储器,用于存储指令;以及
处理器,用于调用所述存储器存储的指令执行如权利要求1-9任一项所述的数据同步方法或如权利要求11所述的数据查询方法。
14.一种计算机可读存储介质,其中存储有指令,所述指令被处理器执行时,执行如权利要求1-9任一项所述的数据同步方法或如权利要求11所述的数据查询方法。
CN202010561213.7A 2020-06-18 2020-06-18 数据同步方法及装置、数据查询方法及装置 Pending CN111914020A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010561213.7A CN111914020A (zh) 2020-06-18 2020-06-18 数据同步方法及装置、数据查询方法及装置
PCT/CN2020/119711 WO2021253688A1 (zh) 2020-06-18 2020-09-30 数据同步方法及装置、数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010561213.7A CN111914020A (zh) 2020-06-18 2020-06-18 数据同步方法及装置、数据查询方法及装置

Publications (1)

Publication Number Publication Date
CN111914020A true CN111914020A (zh) 2020-11-10

Family

ID=73237947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010561213.7A Pending CN111914020A (zh) 2020-06-18 2020-06-18 数据同步方法及装置、数据查询方法及装置

Country Status (2)

Country Link
CN (1) CN111914020A (zh)
WO (1) WO2021253688A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866763A (zh) * 2020-12-28 2021-05-28 网宿科技股份有限公司 Hls多码率流切片的序列号生成方法、服务器及存储介质
CN113342832A (zh) * 2021-08-04 2021-09-03 北京快立方科技有限公司 一种数据库索引方法
CN113407785A (zh) * 2021-06-11 2021-09-17 西北工业大学 一种基于分布式储存系统的数据处理方法和系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115840788B (zh) * 2023-02-21 2023-04-28 创意信息技术股份有限公司 一种MySql数据同步到ES的方法、装置、终端及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116279A1 (en) * 2015-10-27 2017-04-27 International Business Machines Corporation Preventing staleness in query results when using asynchronously updated indexes
CN109885589A (zh) * 2017-12-06 2019-06-14 腾讯科技(深圳)有限公司 数据查询方法、装置、计算机设备及存储介质
CN110110007A (zh) * 2019-04-15 2019-08-09 平安普惠企业管理有限公司 数据管理方法及相关产品
CN110119427A (zh) * 2019-04-15 2019-08-13 平安普惠企业管理有限公司 数据管理方法及相关产品
CN110427364A (zh) * 2019-06-21 2019-11-08 北京奇艺世纪科技有限公司 一种数据处理方法、装置、电子设备及存储介质
CN110532272A (zh) * 2019-08-30 2019-12-03 北京东软望海科技有限公司 数据查询方法、装置、电子设备及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339315B (zh) * 2011-09-30 2014-11-19 亿赞普(北京)科技有限公司 一种广告数据的索引更新方法和系统
CN104199881B (zh) * 2014-08-21 2018-07-06 广州华多网络科技有限公司 数据库集群、数据查询方法、数据同步方法和装置
CN106469158B (zh) * 2015-08-17 2019-10-08 杭州海康威视系统技术有限公司 数据同步方法和装置
CN106294860A (zh) * 2016-08-23 2017-01-04 浪潮电子信息产业股份有限公司 一种实时索引数据同步的系统及其实现方法
US10885121B2 (en) * 2017-12-13 2021-01-05 International Business Machines Corporation Fast filtering for similarity searches on indexed data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116279A1 (en) * 2015-10-27 2017-04-27 International Business Machines Corporation Preventing staleness in query results when using asynchronously updated indexes
CN109885589A (zh) * 2017-12-06 2019-06-14 腾讯科技(深圳)有限公司 数据查询方法、装置、计算机设备及存储介质
CN110110007A (zh) * 2019-04-15 2019-08-09 平安普惠企业管理有限公司 数据管理方法及相关产品
CN110119427A (zh) * 2019-04-15 2019-08-13 平安普惠企业管理有限公司 数据管理方法及相关产品
CN110427364A (zh) * 2019-06-21 2019-11-08 北京奇艺世纪科技有限公司 一种数据处理方法、装置、电子设备及存储介质
CN110532272A (zh) * 2019-08-30 2019-12-03 北京东软望海科技有限公司 数据查询方法、装置、电子设备及计算机可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866763A (zh) * 2020-12-28 2021-05-28 网宿科技股份有限公司 Hls多码率流切片的序列号生成方法、服务器及存储介质
CN113407785A (zh) * 2021-06-11 2021-09-17 西北工业大学 一种基于分布式储存系统的数据处理方法和系统
CN113407785B (zh) * 2021-06-11 2023-02-28 西北工业大学 一种基于分布式储存系统的数据处理方法和系统
CN113342832A (zh) * 2021-08-04 2021-09-03 北京快立方科技有限公司 一种数据库索引方法

Also Published As

Publication number Publication date
WO2021253688A1 (zh) 2021-12-23

Similar Documents

Publication Publication Date Title
CN111914020A (zh) 数据同步方法及装置、数据查询方法及装置
US10817258B2 (en) Clustering storage method and apparatus
JP6998928B2 (ja) データを記憶およびクエリするための方法、装置、設備、および媒体
US11347787B2 (en) Image retrieval method and apparatus, system, server, and storage medium
CN101727465B (zh) 分布式列存储数据库索引建立、查询方法及装置与系统
US20080005183A1 (en) Method And Apparatus for Propagating Tables While Preserving Cyclic Foreign Key Relationships
CN104881466A (zh) 数据分片的处理以及垃圾文件的删除方法和装置
EP3292481A1 (en) Method, system and computer program product for performing numeric searches
CN112579595A (zh) 数据处理方法、装置、电子设备及可读存储介质
JP2019057082A (ja) データ検索システム、データ検索方法、及びプログラム
JP2020123320A (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
WO2021258853A1 (zh) 词汇纠错方法、装置、计算机设备及存储介质
CN110019644B (zh) 对话实现中的搜索方法、装置和计算机可读存储介质
WO2019165763A1 (zh) 一种用于查询数据的方法
KR101640733B1 (ko) 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법
EP3267329A1 (en) Data processing method having structure of cache index specified to transaction in mobile environment dbms
WO2024078122A1 (zh) 数据库表扫描的方法、装置以及设备
US10042957B2 (en) Devices and methods for implementing dynamic collaborative workflow systems
US7505997B1 (en) Methods and apparatus for identifying cached objects with random numbers
CN110413617B (zh) 一种根据数据量的大小动态调节哈希表组的方法
US11921690B2 (en) Custom object paths for object storage management
CN113805787A (zh) 数据写入方法、装置、设备及存储介质
CN111078139A (zh) 一种实现s3标准对象存储接口的方法及装置
US20190370259A1 (en) Devices and methods for implementing dynamic collaborative workflow systems
CN111078671A (zh) 数据表字段的修改方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination