CN115098525A - 索引更新方法、装置、电子设备及存储介质 - Google Patents
索引更新方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115098525A CN115098525A CN202210876672.3A CN202210876672A CN115098525A CN 115098525 A CN115098525 A CN 115098525A CN 202210876672 A CN202210876672 A CN 202210876672A CN 115098525 A CN115098525 A CN 115098525A
- Authority
- CN
- China
- Prior art keywords
- index
- full
- updated
- updating
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 238000009825 accumulation Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 21
- 230000002159 abnormal effect Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007958 sleep Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种索引更新方法、装置、电子设备及存储介质,该方法包括:通过覆盖索引方式,从数据库中读取待更新索引的全量ID值并存储至消息队列中,将ID总数累加至全量更新索引总数,得到当前全量更新索引总数;监听消息队列;获取消息队列中的待更新索引的全量ID值;通过多线程方式,查询数据库中与待更新索引的全量ID值关联的ID数据,并利用得到的组装数据更新数据库中与待更新索引的全量ID值对应的索引值;若更新成功,将成功更新的索引值对应的数量累加至全量更新索引成功总数,得到当前全量更新索引成功总数;若更新失败,将全量分布式锁的状态置为关闭状态。从而实现全量数据更新完全和提高异常情况处理效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种索引更新方法、装置、电子设备及存储介质。
背景技术
目前,现有的全量更新索引的方法在数据量很大时,需要的更新时间非常长,在全量更新索引时,用户新增的数据无法更新到索引中,导致全量数据更新不全,而且,在全量更新索引的过程中,一旦出现异常情况就无法停止,无法监控是否完全更新完成数据。
此外,无论是现有的全量索引更新技术,还是单台多线程处理,都先查询需要更新索引的全量数据,再一次性更新到索引中,但是,全量更新中无法查询和操作数据,出现问题无法终止全量更新数据。
发明内容
有鉴于此,本发明实施例提供一种索引更新方法、装置、电子设备及存储介质,以实现全量数据更新完全和提高异常情况处理效率的目的。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开了一种索引更新方法,应用于服务器,所述方法包括:
当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值;
将所述待更新索引的全量ID值存储至预先建立的消息队列中,并将所述待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数;
监听所述消息队列;
获取所述消息队列中的待更新索引的全量ID值;
通过多线程方式,查询所述数据库中与所述待更新索引的全量ID值关联的ID数据,并组装所述ID数据,得到组装数据;
利用所述组装数据更新所述数据库中与所述待更新索引的全量ID值对应的索引值;
若更新成功,将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数;
若更新失败,将预先设置的全量分布式锁的状态置为关闭状态。
可选的,在所述当预先设置的全量更新开关状态为开启状态时之前,还包括:
接收全量更新索引的触发请求;
根据所述触发请求,生成待更新索引的全量ID值;
当未在进行所述全量更新索引时,初始化预先设置的全量更新分布式存储键值,所述全量更新分布式存储键值包括所述全量分布式锁、所述全量更新开关状态、所述全量更新索引总数、所述全量更新索引成功总数和全量ID值同步完成状态。
可选的,所述通过覆盖索引方式从预先建立的数据库中读取待更新索引的全量ID值,包括:
通过覆盖索引方式,每次从预先建立的数据库中读取第一预设数量的待更新索引的全量ID值;
相应的,所述将所述待更新索引的全量ID值存储至预先建立的消息队列中,并将所述待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数,包括:
将所述第一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中,并将所述第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
可选的,在所述将所述待更新索引的全量ID值中的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数之后,还包括:
当读取到最后一个所述待更新索引的全量ID值时,将预先设置的全量ID值同步完成状态置为已完成状态;
循环判断所述当前全量更新索引总数是否等于所述当前全量更新索引成功总数,其中,所述循环判断次数为第二预设数量,每次休眠一秒钟;
若否,继续执行循环判断,直至所述当前全量更新索引总数等于所述当前全量更新索引成功总数;
若是,更改当前更新完成的索引名的别名,并删除原索引名的别名。
可选的,还包括:
当监听到所述消息队列中存在增量更新消息时,判断是否在进行全量更新索引,所述增量更新消息由消息数据存储工具将读取到的所述数据库的二进制日志发送至所述消息队列得到,所述增量更新消息至少包括新索引;
若是,更新所述新索引和当前全量更新的索引;
若否,更新所述当前全量更新的索引。
本发明实施例第二方面公开了一种索引更新装置,应用于服务器,所述装置包括:
读取模块,用于当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值;
第一累加模块,用于将所述待更新索引的全量ID值存储至预先建立的消息队列中,并将所述待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数;
监听模块,用于监听所述消息队列;
获取模块,用于获取所述消息队列中的待更新索引的全量ID值;
查询模块,用于通过多线程方式,查询所述数据库中与所述待更新索引的全量ID值关联的ID数据,并组装所述ID数据,得到组装数据;
更新模块,用于利用所述组装数据更新所述数据库中与所述待更新索引的全量ID值对应的索引值,若更新成功,执行第二累加模块,若更新失败,执行第一设置模块;
第二累加模块,用于将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数;
第一设置模块,用于将预先设置的全量分布式锁的状态置为关闭状态。
可选的,在所述读取模块用于当预先设置的全量更新开关状态为开启状态时之前,还包括:
接收模块,用于接收全量更新索引的触发请求;
生成模块,用于根据所述触发请求,生成待更新索引的全量ID值;
初始化模块,用于当未在进行所述全量更新索引时,初始化预先设置的全量更新分布式存储键值,所述全量更新分布式存储键值包括所述全量分布式锁、所述全量更新开关状态、所述全量更新索引总数、所述全量更新索引成功总数和全量ID值同步完成状态。
可选的,所述读取模块具体用于:
通过覆盖索引方式,每次从预先建立的数据库中读取第一预设数量的待更新索引的全量ID值;
相应的,所述第一累加模块具体用于:
将所述第一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中,并将所述第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
本发明实施例第三方面公开了一种电子设备,所述电子设备包括处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于调用并执行所述存储器中存储的计算机程序时,实现如本发明实施例第一方面中任一项所述的索引更新方法。
本发明实施例第四方面公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如本发明实施例第一方面中任一项所述的索引更新方法。
基于上述本发明实施例提供的一种索引更新方法、装置、电子设备及存储介质,所述方法包括:当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值;将所述待更新索引的全量ID值存储至预先建立的消息队列中,并将所述待更新索引的全量ID值中的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数;监听所述消息队列;获取所述消息队列中的待更新索引的全量ID值;通过多线程方式,查询所述数据库中与所述待更新索引的全量ID值关联的ID数据,并组装所述ID数据,得到组装数据;利用所述组装数据更新所述数据库中与所述待更新索引的全量ID值对应的索引值;若更新成功,将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数;若更新失败,将预先设置的全量分布式锁的状态置为关闭状态。在本方案中,先用覆盖索引读取待更新索引的全量ID值并存储至消息队列,再将ID总数累加至全量更新索引总数,在监听消息队列时,获取消息队列中的待更新索引的全量ID值,通过多线程查询数据库中与待更新索引的全量ID值关联的ID数据,并利用得到的组装数据更新数据库中与待更新索引的全量ID值对应的索引值,从而实现全量数据更新完全和提高异常情况处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种索引更新系统的架构示意图;
图2为本发明实施例提供的一种索引更新方法的流程示意图;
图3为本发明实施例提供的一种比对当前全量更新索引总数和当前全量更新索引成功总数是否一致的流程示意图;
图4为本发明实施例提供的一种增量更新的流程示意图;
图5为本发明实施例提供的一种索引更新装置的结构示意图;
图6为本发明实施例提供的一种电子设备60的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
由背景技术可知,现有的全量更新索引方式要么全量数据更新不全,要么无法查询和操作数据,出现问题无法终止全量更新数据。
因此,本发明实施例提供一种索引更新方法、装置、电子设备及存储介质,在本方案中,先用覆盖索引读取待更新索引的全量ID值并存储至消息队列,再将ID总数累加至全量更新索引总数,在监听消息队列时,获取消息队列中的待更新索引的全量ID值,通过多线程查询数据库中与待更新索引的全量ID值关联的ID数据,并利用得到的组装数据更新数据库中与待更新索引的全量ID值对应的索引值,从而实现全量数据更新完全和提高异常情况处理效率。
首先,如图1所示,为本发明实施例提供的一种索引更新系统的架构示意图,该索引更新系统包括:服务器11、数据库12、消息队列13和搜索引擎(Elastic Search,ES)14。
服务器11上设置有ID生成服务器111和索引更新服务器112。
其中,ID生成服务器111用于生成待更新索引的全量ID值,也就是生成需要全量更新索引的ID值;通过覆盖索引方式,从数据库12中读取待更新索引的全量ID值,将待更新索引的全量ID值存储至消息队列13中,以及处理索引更新。
其中,消息队列13可以表示为MQ(Message Queue)。
需要说明的是,消息队列13包括但不限于RabbitMq、Kafka和Pulsar。
优选的,在一具体实施例中,ID生成服务器111可以理解为生产者服务器。
索引更新服务器112用于监听消息队列13,以及,并行处理更新索引。
优选的,在一具体实施例中,索引更新服务器112可以理解为消费者服务器。
优选的,在另一具体实施例中,索引更新服务器112也可以理解为客户端服务器。
基于图1公开的索引更新系统实现索引更新的过程为:
ID生成服务器111接收全量更新索引的触发请求,并根据触发请求,生成待更新索引的全量ID值。
当未在进行全量更新索引时,初始化预先设置的全量更新分布式存储键值。
其中,全量更新分布式存储键值包括全量分布式锁、全量更新开关状态、全量更新索引总数、全量更新索引成功总数和全量ID值同步完成状态。
实际应用中,全量分布式锁表示为index_lock,全量更新开关状态表示为index_flag,全量更新索引总数表示为index_all_sum,全量更新索引成功总数表示为index_success_sum,全量ID值同步完成状态表示为index_sync_id。
当全量更新开关状态为开启状态时,通过覆盖索引方式,从数据库12中读取待更新索引的全量ID值。
也就是,当index_flag=true时,通过覆盖索引方式,从数据库12中读取待更新索引的全量ID值。
将待更新索引的全量ID值存储至消息队列13中,并将待更新索引的全量ID值中的ID总数累加至全量更新索引总数,得到当前全量更新索引总数。
多台索引更新服务器112监听消息队列13,在获取到消息队列13中的待更新索引的全量ID值时,通过多线程方式,利用搜索引擎ES14,查询数据库12中与待更新索引的全量ID值关联的ID数据,并组装ID数据,得到组装数据。
索引更新服务器112利用组装数据更新数据库12中与待更新索引的全量ID值对应的索引值。
若更新成功,将成功更新的索引值对应的数量累加至全量更新索引成功总数,得到当前全量更新索引成功总数。
若更新失败,将全量分布式锁的状态置为关闭状态。
当ID生成服务器111读取到最后一个待更新索引的全量ID值时,将全量ID值同步完成状态置为已完成状态。
循环判断当前全量更新索引总数是否等于当前全量更新索引成功总数。
其中,循环判断次数为第二预设数量,每次休眠一秒钟。
若否,继续执行循环判断,直至当前全量更新索引总数等于当前全量更新索引成功总数。
若是,更改当前更新完成的索引名的别名,并删除原索引名的别名。
需要说明的是,下述过程提及的消息队列13为Kafak。
当索引更新服务器112监听到消息队列13中存在增量更新消息时,判断是否在进行全量更新索引。
其中,增量更新消息由消息数据存储工具将读取到的数据库12的二进制日志发送至消息队列13得到。
增量更新消息至少包括新索引。
在本发明实施例中,消息数据存储工具为Canal。
二进制日志表示为Binary log日志。
若是,更新新索引和当前全量更新的索引。
若否,更新当前全量更新的索引。
基于本发明实施例提供的一种索引更新系统,先用覆盖索引读取待更新索引的全量ID值并存储至消息队列,再将ID总数累加至全量更新索引总数,在监听消息队列时,获取消息队列中的待更新索引的全量ID值,通过多线程查询数据库中与待更新索引的全量ID值关联的ID数据,并利用得到的组装数据更新数据库中与待更新索引的全量ID值对应的索引值,从而实现全量数据更新完全和提高异常情况处理效率。
基于上述示出的索引更新系统,如图2所示,为本发明实施例提供的一种索引更新方法的流程示意图,该索引更新方法应用于服务器,该服务器可以为图1示出的服务器,该索引更新方法主要包括以下步骤:
步骤S201:判断预先设置的全量更新开关状态是否为开启状态,若是,执行步骤S202,若否,结束操作。
需要说明的是,判断预先设置的全量更新开关状态是否为开启状态,即判断index_flag=true?。
其中,当index_flag=true,确定全量更新开关状态为开启状态,则执行步骤S201。
当index_flag=false,确定全量更新开关状态为关闭状态,则结束操作。
需要说明的是,全量更新开关状态用于当全量更新出现问题,比如服务器异常、ES异常、网络异常等情况,能够停止全量更新,保障系统出现异常不会影响线上业务。
可选的,在执行步骤S201判断预先设置的全量更新开关状态是否为开启状态时之前,还包括:
步骤S11:接收全量更新索引的触发请求。
在具体实现步骤S11的过程中,用户手动触发全量更新索引操作,同时,产生全量更新索引的触发请求,则服务器接收全量更新索引的触发请求。
优选的,在一具体实施例中,通过触发预先设置的定时任务实现全量更新索引操作。
步骤S12:根据触发请求,生成待更新索引的全量ID值。
在具体实现步骤S12的过程中,服务器根据接收到的触发请求,生成待更新索引的全量ID值,也就是生成需要全量更新索引的ID值。
步骤S13:判断是否在进行全量更新索引,若是,结束操作,若否,执行步骤S14。
需要说明的是,判断是否在进行全量更新索引,即判断index_lock=true?。
其中,当index_lock=true,确定在进行全量更新索引,则结束操作。
当index_lock=false,确定未在进行全量更新索引,则执行步骤S14。
步骤S14:初始化预先设置的全量更新分布式存储键值。
在步骤S14中,全量更新分布式存储键值包括全量分布式锁、全量更新开关状态、全量更新索引总数、全量更新索引成功总数和全量ID值同步完成状态。
在具体实现步骤S14的过程中,在确定服务器判断出未进行全量更新索引操作的前提条件下,设置全量更新分布式存储键值,并进行初始化,具体为:全量分布式锁index_lock=true,全量更新开关状态index_flag=true,全量更新索引总数index_all_sum=0,全量更新索引成功总数index_success_sum=0,全量ID值同步完成状态index_sync_id=false。
步骤S202:通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值。
在步骤S202中,覆盖索引是一种数据查询方式,在索引数据结构中,通过索引值直接找到要查询字段的值,而不需要通过主键值回表查询,那么就叫覆盖索引。通俗来说,就是能快速读取表的ID数据,一般的数据库都支持这种方式。
在具体实现步骤S202的过程中,在确定服务器判断出全量更新开关状态为开启状态的前提条件下,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值。
需要说明的是,待更新索引的全量ID值预先存储于数据库中。
需要说明的是,数据库可以为图1示出的数据库。
在实际应用中,通过覆盖索引方式,从数据库中循环读取全量ID,也就是按顺序从数据库中读取全量ID。
其中,循环读取全量ID的相关伪代码如下:
可选的,执行步骤S202通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值的过程,包括:
通过覆盖索引方式,每次从预先建立的数据库中读取第一预设数量的待更新索引的全量ID值。
在本发明实施例中,第一预设数量为100。
例如,通过覆盖索引方式,每次从数据库中读取100个待更新索引的全量ID值。
步骤S203:将待更新索引的全量ID值存储至预先建立的消息队列中,并将待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
需要说明的是,消息队列可以为图1示出的消息队列。
需要说明的是,当前全量更新索引总数即为ID生成服务器产生的待更新索引的全量ID值的数量。
在具体实现步骤S203的过程中,服务器在读取待更新索引的全量ID值后,将读取到的待更新索引的全量ID值放入消息队列中,并将待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数(即index_all_num),得到当前全量更新索引总数。
例如,服务器读取到的待更新索引的全量ID值为100个,而预先设置的全量更新索引总数为0,即index_all_num=0,则将待更新索引的全量ID值对应的ID总数累加至全量更新索引总数,即index_all_num=0+100=100,即得到当前全量更新索引总数为100。
可选的,执行步骤S203将待更新索引的全量ID值存储至预先建立的消息队列中,并将待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数的过程,包括:
将第一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中,并将第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
以步骤S202中的例子为例,将每次读取的100个待更新索引的全量ID值存储至消息队列中。
步骤S204:监听消息队列。
在步骤S204中,消息队列为RabbitMq。
在具体实现步骤S204的过程中,服务器监听消息队列RabbitMq。
优选的,在一具体实施例中,索引更新服务器或消费者服务器监听消息队列RabbitMq。
步骤S205:获取消息队列中的待更新索引的全量ID值。
在具体实现步骤S205的过程中,索引更新服务器或消费者服务器获取消息队列RabbitMq中的待更新索引的全量ID值。
步骤S206:通过多线程方式,查询数据库中与待更新索引的全量ID值关联的ID数据,并组装ID数据,得到组装数据。
在具体实现步骤S206的过程中,服务器通过多线程方式,利用搜索引擎,查询数据库中与待更新索引的全量ID值关联的ID数据,也就是说,将数据库中的ID数据与待更新索引的全量ID值进行匹配,得到与待更新索引的全量ID值关联的第一ID数据,并组装该第一ID数据,得到组装数据,以便批量更新索引值。
需要说明的是,搜索引擎可以为图1示出的搜索引擎ES。
步骤S207:利用组装数据更新数据库中与待更新索引的全量ID值对应的索引值。
在具体实现步骤S207的过程中,确定数据库中与待更新索引的全量ID值对应的索引值,利用组装得到的组装数据更新数据库中与待更新索引的全量ID值对应的索引值。
步骤S208:判断是否更新成功,若是,执行步骤S209,若否,执行步骤S210。
步骤S209:将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数。
需要说明的是,当前全量更新索引成功总数即为所有服务器正确同步到搜索引擎ES的待更新索引的全量ID值的数量。
在具体实现步骤S209的过程中,在确定更新成功的前提下,将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数。
例如,成功更新的索引值有150个,而预先设置的全量更新索引成功总数为0,即index_success_sum=0,则将成功更新的索引值对应的数量累加至全量更新索引成功总数,即index_success_sum=0+150=150,得到当前全量更新索引成功总数为150。
步骤S210:将预先设置的全量分布式锁的状态置为关闭状态。
在具体实现步骤S210的过程中,在确定更新失败的前提下,将预先设置的全量分布式锁的状态置为关闭状态,即设置index_lock=false。
基于本发明实施例提供的一种索引更新方法,先用覆盖索引读取待更新索引的全量ID值并存储至消息队列,再将ID总数累加至全量更新索引总数,在监听消息队列时,获取消息队列中的待更新索引的全量ID值,通过多线程查询数据库中与待更新索引的全量ID值关联的ID数据,并利用得到的组装数据更新数据库中与待更新索引的全量ID值对应的索引值,从而实现全量数据更新完全和提高异常情况处理效率。
基于上述示出的索引更新系统和索引更新方法,在执行步骤S203将待更新索引的全量ID值存储至预先建立的消息队列中,并将待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数之后,如图3所示,为本发明实施例提供的一种比对当前全量更新索引总数和当前全量更新索引成功总数是否一致的流程示意图,主要包括以下步骤:
步骤S301:判断是否读取到最后一个待更新索引的全量ID值,若是,执行步骤S302,若否,返回继续执行通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值。
需要说明的是,按顺序循环读取待更新索引的全量ID值时,当读取不到ID值时,就是读取到最后一个ID。
步骤S302:将预先设置的全量ID值同步完成状态置为已完成状态。
在具体实现步骤S302的过程中,在确定当前读取到最后一个待更新索引的全量ID值的前提下,将预先设置的全量ID值同步完成状态置为已完成状态,即:index_sync_id=true。
步骤S303:循环判断当前全量更新索引总数是否等于当前全量更新索引成功总数,若是,执行步骤S304,若否,继续执行步骤S303。
在步骤S303中,循环判断次数为第二预设数量,每次休眠一秒钟。
在本发明实施例中,第二预设数量为3600。
例如,循环判断3600次当前全量更新索引总数是否等于当前全量更新索引成功总数,每次休眠一秒钟。
在具体实现步骤S303的过程中,循环判断当前全量更新索引总数是否等于当前全量更新索引成功总数,即循环判断index_all_sum=index_success_su m?,若是,执行步骤S304,若否,继续执行步骤S303,即继续执行循环判断,直至当前全量更新索引总数等于当前全量更新索引成功总数。
例如,当前全量更新索引总数为500个,而当前全量更新索引成功总数也为500个,即说明index_all_sum=index_success_sum,则执行步骤S304。
又例如:当前全量更新索引总数为500个,而当前全量更新索引成功总数为400个,即说明index_all_sum>index_success_sum,则继续执行步骤S303,即继续执行循环判断,直至当前全量更新索引总数等于当前全量更新索引成功总数。
需要说明的是,当前全量更新索引总数与当前全量更新索引成功总数不一致,即统计所有服务器正确同步到ES的数量跟ID生成服务器产生的数量不一致,表示本次全量更新索引不完全,存在更新索引失败、MQ丢消息、服务器异常等情况;如果数量一致,本次全量更新索引不生效。
步骤S304:更改当前更新完成的索引名的别名,并删除原索引名的别名。
在具体实现步骤S304的过程中,在确定当前全量更新索引总数等于当前全量更新索引成功总数的前提下,更改当前更新完成的索引名的别名,也就是说,更改当前更新完成的索引名index_name_yyyyMMdd的别名为index_name,并删除原索引名的别名。
基于本发明实施例提供的一种索引更新方法,在读取到最后一个待更新索引的全量ID值时,将预先设置的全量ID值同步完成状态置为已完成状态,当循环判断出当前全量更新索引总数等于当前全量更新索引成功总数时,更改当前更新完成的索引名的别名,并删除原索引名的别名,从而实现全量数据更新完全和提高异常情况处理效率。
基于上述示出的索引更新系统和索引更新方法,在执行步骤S210将预先设置的全量分布式锁的状态置为关闭状态之后,如图4所示,为本发明实施例提供的一种增量更新的流程示意图,基于图2,还包括以下步骤:
步骤S401:判断是否监听到消息队列中存在增量更新消息,若是,执行步骤S402,若否,返回继续执行监听消息队列。
在步骤S401中,增量更新消息是指Mysql的Binary log日志中增删改数据,由消息数据存储工具将读取到的数据库的二进制日志(Binary log)发送至消息队列得到。
可以理解的是,当数据库需要进行增量更新时,通过消息数据存储工具Canal读取数据库的二进制日志Binary log,发送到消息队列Kafak。
其中,二进制日志(BinaryLog)也可叫作变更日志(Update Log),是MySQL中非常重要的日志。主要用于记录数据库的变化情况,即SQL语句的DDL语句和DML语句,不包含数据记录查询操作。
Canal,用于基于MySQL数据库增量日志解析,提供增量数据订阅和消费。
增量更新消息至少包括新索引。
需要说明的是,当数据有变动的时候,包括主表的数据和关联表的数据,发生变动,需要增量更新索引。
在具体实现步骤S401的过程中,判断是否监听到消息队列中存在增量更新消息,若是,执行步骤S402,若否,说明服务器未监听到消息队列中存在增量更新消息,也说明数据库当前不需要进行增量更新,则需要继续监听消息队列。
步骤S402:判断是否在进行全量更新索引,若是,执行步骤S403,若否,执行步骤S404。
需要说明的是,判断是否在进行全量更新索引,即判断index_lock=true?。
其中,当index_lock=true,确定在进行全量更新索引,则执行步骤S403。
当index_lock=false,确定未在进行全量更新索引,则执行步骤S404。
需要说明的是,在本发明实施例中,全量更新索引index_lock=true?用于存储当前全量更新的索引名,当有增量数据更新时,会同时更新当前全量更新的索引名和正在使用的索引名,也就是说当系统在全量更新索引时,不会影响增加数据量的更新索引的速度,达到用户无感知的目的,不会出现延迟等现象。
步骤S403:更新新索引和当前全量更新的索引。
在具体实现步骤S403的过程中,在确定在进行全量更新索引的前提下,更新新索引和当前全量更新的索引,也就是说,更新新索引index_name_yyyy MMdd和更新当前索引index_name。
步骤S404:更新当前全量更新的索引。
在具体实现步骤S404的过程中,在确定未在进行全量更新索引的前提下,更新当前全量更新的索引,也就是说,更新当前索引index_name。
基于本发明实施例提供的一种索引更新方法,当监听到消息队列中存在增量更新消息时,判断出在进行全量更新索引,更新新索引和当前全量更新的索引,判断出未在进行全量更新索引,更新当前全量更新的索引,从而实现全量数据更新完全和提高异常情况处理效率。
与上述本发明实施例图2示出的一种索引更新方法相对应,本发明实施例还对应提供了一种索引更新装置,该索引更新装置应用于服务器,如图5所示,该索引更新装置包括:读取模块501、第一累加模块502、监听模块503、获取模块504、查询模块505、更新模块506、第二累加模块507和第一设置模块508。
读取模块501,用于当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值。
第一累加模块502,用于将待更新索引的全量ID值存储至预先建立的消息队列中,并将待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
监听模块503,用于监听消息队列。
获取模块504,用于获取消息队列中的待更新索引的全量ID值。
查询模块505,用于通过多线程方式,查询数据库中与待更新索引的全量ID值关联的ID数据,并组装ID数据,得到组装数据。
更新模块506,用于利用组装数据更新数据库中与待更新索引的全量ID值对应的索引值,若更新成功,执行第二累加模块507,若更新失败,执行第一设置模块508。
第二累加模块507,用于将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数。
第一设置模块508,用于将预先设置的全量分布式锁的状态置为关闭状态。
可选的,基于上述图5示出的索引更新装置,在所述读取模块501用于当预先设置的全量更新开关状态为开启状态时之前,结合图5,该索引更新装置还进一步设置了接收模块、生成模块和初始化模块。
接收模块,用于接收全量更新索引的触发请求。
生成模块,用于根据触发请求,生成待更新索引的全量ID值。
初始化模块,用于当未在进行全量更新索引时,初始化预先设置的全量更新分布式存储键值。
其中,全量更新分布式存储键值包括全量分布式锁、全量更新开关状态、全量更新索引总数、全量更新索引成功总数和全量ID值同步完成状态。
可选的,基于上述图5示出的索引更新装置,所述读取模块501,具体用于:
通过覆盖索引方式,每次从预先建立的数据库中读取第一预设数量的待更新索引的全量ID值。
相应的,所述第一累加模块502,具体用于:
将第一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中,并将第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
需要说明的是,上述本发明实施例公开的索引更新装置中的各个模块具体的原理和执行过程,与上述本发明实施索引更新方法相同,可参见上述本发明实施例公开的索引更新方法中相应的部分,这里不再进行赘述。
基于本发明实施例提供的一种索引更新装置,先用覆盖索引读取待更新索引的全量ID值并存储至消息队列,再将ID总数累加至全量更新索引总数,在监听消息队列时,获取消息队列中的待更新索引的全量ID值,通过多线程查询数据库中与待更新索引的全量ID值关联的ID数据,并利用得到的组装数据更新数据库中与待更新索引的全量ID值对应的索引值,从而实现全量数据更新完全和提高异常情况处理效率。
可选的,基于上述图5示出的索引更新装置,结合图5,该索引更新装置还进一步设置了第二设置模块、循环判断模块、第一处理模块和第二处理模块。
第二设置模块,用于当读取到最后一个待更新索引的全量ID值时,将预先设置的全量ID值同步完成状态置为已完成状态。
循环判断模块,用于循环判断当前全量更新索引总数是否等于当前全量更新索引成功总数,若否,执行第一处理模块,若是,执行第二处理模块。
其中,循环判断次数为第二预设数量,每次休眠一秒钟。
第一处理模块,用于继续执行循环判断,直至当前全量更新索引总数等于当前全量更新索引成功总数。
第二处理模块,用于更改当前更新完成的索引名的别名,并删除原索引名的别名。
基于本发明实施例提供的一种索引更新装置,在读取到最后一个待更新索引的全量ID值时,将预先设置的全量ID值同步完成状态置为已完成状态,当循环判断出当前全量更新索引总数等于当前全量更新索引成功总数时,更改当前更新完成的索引名的别名,并删除原索引名的别名,从而实现全量数据更新完全和提高异常情况处理效率。
可选的,基于上述图5示出的索引更新装置,结合图5,该索引更新装置还进一步设置了增量更新判断模块、第一更新模块和第二更新模块。
增量更新判断模块,用于当监听到消息队列中存在增量更新消息时,判断是否在进行全量更新索引,若是,执行第一更新模块,若否,执行第二更新模块。
其中,增量更新消息由消息数据存储工具将读取到的数据库的二进制日志发送至消息队列得到,增量更新消息至少包括新索引。
第一更新模块,用于更新新索引和当前全量更新的索引。
第二更新模块,用于更新当前全量更新的索引。
基于本发明实施例提供的一种索引更新装置,当监听到消息队列中存在增量更新消息时,判断出在进行全量更新索引,更新新索引和当前全量更新的索引,判断出未在进行全量更新索引,更新当前全量更新的索引,从而实现全量数据更新完全和提高异常情况处理效率。
基于上述本发明实施例公开的索引更新系统,上述各个模块可以通过一种由处理器和存储器构成的硬件设备实现。具体为上述各个模块作为程序单元存储于存储器中,由处理器执行存储在存储器中的上述程序单元来实现索引更新。
其中,处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现索引更新。
本发明实施例提供了一种计算机存储介质,存储介质包括存储索引更新程序,其中,程序被处理器执行时实现如权利要求1至5中任一项的索引更新方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行图2公开的索引更新方法。
本发明实施例提供了一种电子设备,如图6所示,为本发明实施例提供的一种电子设备60的结构示意图。
本发明实施例中的电子设备可以是服务器、PC、PAD、手机等。
该电子设备包括至少一个处理器601,以及与处理器连接的至少一个存储器602,以及总线603。
处理器601、存储器602通过总线603完成相互间的通信。处理器601,用于执行存储器602中存储的程序。
存储器602,用于存储程序,该程序至少用于:当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值;将待更新索引的全量ID值存储至预先建立的消息队列中,并将待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数;监听消息队列;获取消息队列中的待更新索引的全量ID值;通过多线程方式,查询数据库中与待更新索引的全量ID值关联的ID数据,并组装ID数据,得到组装数据;利用组装数据更新数据库中与待更新索引的全量ID值对应的索引值;若更新成功,将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数;若更新失败,将预先设置的全量分布式锁的状态置为关闭状态。
本申请还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有如下方法步骤的程序:
当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值;将待更新索引的全量ID值存储至预先建立的消息队列中,并将待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数;监听消息队列;获取消息队列中的待更新索引的全量ID值;通过多线程方式,查询数据库中与待更新索引的全量ID值关联的ID数据,并组装ID数据,得到组装数据;利用组装数据更新数据库中与待更新索引的全量ID值对应的索引值;若更新成功,将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数;若更新失败,将预先设置的全量分布式锁的状态置为关闭状态。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种索引更新方法,其特征在于,应用于服务器,所述方法包括:
当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值;
将所述待更新索引的全量ID值存储至预先建立的消息队列中,并将所述待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数;
监听所述消息队列;
获取所述消息队列中的待更新索引的全量ID值;
通过多线程方式,查询所述数据库中与所述待更新索引的全量ID值关联的ID数据,并组装所述ID数据,得到组装数据;
利用所述组装数据更新所述数据库中与所述待更新索引的全量ID值对应的索引值;
若更新成功,将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数;
若更新失败,将预先设置的全量分布式锁的状态置为关闭状态。
2.根据权利要求1所述的方法,其特征在于,在所述当预先设置的全量更新开关状态为开启状态时之前,还包括:
接收全量更新索引的触发请求;
根据所述触发请求,生成待更新索引的全量ID值;
当未在进行所述全量更新索引时,初始化预先设置的全量更新分布式存储键值,所述全量更新分布式存储键值包括所述全量分布式锁、所述全量更新开关状态、所述全量更新索引总数、所述全量更新索引成功总数和全量ID值同步完成状态。
3.根据权利要求1所述的方法,其特征在于,所述通过覆盖索引方式从预先建立的数据库中读取待更新索引的全量ID值,包括:
通过覆盖索引方式,每次从预先建立的数据库中读取第一预设数量的待更新索引的全量ID值;
相应的,所述将所述待更新索引的全量ID值存储至预先建立的消息队列中,并将所述待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数,包括:
将所述第一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中,并将所述第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
4.根据权利要求1所述的方法,其特征在于,在所述将所述待更新索引的全量ID值中的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数之后,还包括:
当读取到最后一个所述待更新索引的全量ID值时,将预先设置的全量ID值同步完成状态置为已完成状态;
循环判断所述当前全量更新索引总数是否等于所述当前全量更新索引成功总数,其中,所述循环判断次数为第二预设数量,每次休眠一秒钟;
若否,继续执行循环判断,直至所述当前全量更新索引总数等于所述当前全量更新索引成功总数;
若是,更改当前更新完成的索引名的别名,并删除原索引名的别名。
5.根据权利要求1所述的方法,其特征在于,还包括:
当监听到所述消息队列中存在增量更新消息时,判断是否在进行全量更新索引,所述增量更新消息由消息数据存储工具将读取到的所述数据库的二进制日志发送至所述消息队列得到,所述增量更新消息至少包括新索引;
若是,更新所述新索引和当前全量更新的索引;
若否,更新所述当前全量更新的索引。
6.一种索引更新装置,其特征在于,应用于服务器,所述装置包括:
读取模块,用于当预先设置的全量更新开关状态为开启状态时,通过覆盖索引方式,从预先建立的数据库中读取待更新索引的全量ID值;
第一累加模块,用于将所述待更新索引的全量ID值存储至预先建立的消息队列中,并将所述待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数;
监听模块,用于监听所述消息队列;
获取模块,用于获取所述消息队列中的待更新索引的全量ID值;
查询模块,用于通过多线程方式,查询所述数据库中与所述待更新索引的全量ID值关联的ID数据,并组装所述ID数据,得到组装数据;
更新模块,用于利用所述组装数据更新所述数据库中与所述待更新索引的全量ID值对应的索引值,若更新成功,执行第二累加模块,若更新失败,执行第一设置模块;
第二累加模块,用于将成功更新的索引值对应的数量累加至预先设置的全量更新索引成功总数,得到当前全量更新索引成功总数;
第一设置模块,用于将预先设置的全量分布式锁的状态置为关闭状态。
7.根据权利要求6所述的装置,其特征在于,在所述读取模块用于当预先设置的全量更新开关状态为开启状态时之前,还包括:
接收模块,用于接收全量更新索引的触发请求;
生成模块,用于根据所述触发请求,生成待更新索引的全量ID值;
初始化模块,用于当未在进行所述全量更新索引时,初始化预先设置的全量更新分布式存储键值,所述全量更新分布式存储键值包括所述全量分布式锁、所述全量更新开关状态、所述全量更新索引总数、所述全量更新索引成功总数和全量ID值同步完成状态。
8.根据权利要求6所述的装置,其特征在于,所述读取模块具体用于:
通过覆盖索引方式,每次从预先建立的数据库中读取第一预设数量的待更新索引的全量ID值;
相应的,所述第一累加模块具体用于:
将所述第一预设数量的待更新索引的全量ID值存储至预先建立的消息队列中,并将所述第一预设数量的待更新索引的全量ID值对应的ID总数累加至预先设置的全量更新索引总数,得到当前全量更新索引总数。
9.一种电子设备,其特征在于,所述电子设备包括处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于调用并执行所述存储器中存储的计算机程序时,实现如权利要求1至5中任一项所述的索引更新方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至5中任一项所述的索引更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210876672.3A CN115098525A (zh) | 2022-07-25 | 2022-07-25 | 索引更新方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210876672.3A CN115098525A (zh) | 2022-07-25 | 2022-07-25 | 索引更新方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115098525A true CN115098525A (zh) | 2022-09-23 |
Family
ID=83298320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210876672.3A Pending CN115098525A (zh) | 2022-07-25 | 2022-07-25 | 索引更新方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098525A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149763A (zh) * | 2023-08-08 | 2023-12-01 | 广州方舟信息科技有限公司 | 一种索引切换同步方法、装置及存储介质 |
-
2022
- 2022-07-25 CN CN202210876672.3A patent/CN115098525A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149763A (zh) * | 2023-08-08 | 2023-12-01 | 广州方舟信息科技有限公司 | 一种索引切换同步方法、装置及存储介质 |
CN117149763B (zh) * | 2023-08-08 | 2024-04-02 | 广州方舟信息科技有限公司 | 一种索引切换同步方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661659B (zh) | 一种告警方法、装置、系统及电子设备 | |
CN106899654B (zh) | 一种序列值生成方法、装置及系统 | |
JP2017538200A (ja) | 分散環境におけるサービスアドレッシング | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
EP3258396A1 (en) | Data synchronization method, device and system | |
JP2019517040A (ja) | クラウドプラットフォームベースのクライアントアプリケーション情報統計方法および装置 | |
CN106503158B (zh) | 数据同步方法及装置 | |
CN112487083B (zh) | 一种数据校验方法和设备 | |
CN107870982B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN115098525A (zh) | 索引更新方法、装置、电子设备及存储介质 | |
CN114416868B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN111309548A (zh) | 一种超时监控方法、装置及计算机可读存储介质 | |
CN111046081A (zh) | 一种工业时序数据的访问方法及系统 | |
CN114911872B (zh) | 内外网数据同步方法、装置、系统、外网服务器及存储介质 | |
CN110928885B (zh) | Mysql数据库的数据更新到Es数据库的方法及装置 | |
CN111124650A (zh) | 一种流式数据处理方法及装置 | |
CN116414914A (zh) | 数据的同步方法、装置、处理器及电子设备 | |
CN115455121A (zh) | 一种实时可靠的数据同步传输方法、设备及介质 | |
CN106294721B (zh) | 一种集群数据统计及导出方法及装置 | |
CN115914358A (zh) | 消息推送方法、装置、电子设备及计算机存储介质 | |
CN111291127B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN114398333A (zh) | 一种增量数据实时同步方法、装置、电子设备及存储介质 | |
CN114116646A (zh) | 日志数据处理方法、装置、设备和存储介质 | |
CN113407629A (zh) | 数据同步的方法、装置、电子设备及存储介质 | |
CN110688391A (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 |