一种数据更新方法及终端与流程

文档序号:27832727发布日期:2021-12-07 22:42阅读:56来源:国知局
一种数据更新方法及终端与流程

1.本发明涉及数据存储技术领域,特别涉及一种数据更新方法及终端。


背景技术:

2.elasticsearch(es)是一个基于lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于restful web接口。elasticsearch是用java语言开发的,并作为apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
3.现在很多系统都使用es来进行搜索数据的存储,其中很常见的方式为,创建一个es的公共集群,很多的独立系统都向这个es集群中写入数据。如果只是单独一条数据的更新es数据,es的负载情况还较低,但是还存在以下场景:比如某个系统中库表需要添加一个字段,同样的就需要把原先已经存储在es中的所有这类型的数据都添加一个索引字段,然后,会有一个程序批量的不间断或者偶尔休眠一些时间,向统一的es集群中更新这些数据。此时,可能会存在这样的问题:es集群已经存在较高负载了,然后又进行这样的批量数据操作,会进一步加剧负载量,同时,自身的批量更新任务又无法完成,导致es集群压力增加。


技术实现要素:

4.本发明所要解决的技术问题是:提供一种数据更新方法及终端,能够减少es集群的压力。
5.为了解决上述技术问题,本发明采用的技术方案为:
6.一种数据更新方法,包括步骤:
7.接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集;
8.根据所述数据集对所述全量更新消息的发送方的对应数据进行回调,得到所述数据集的最新数据信息;
9.判断所述es集群的负载水平是否低于预设值,若是,则通过es接入服务接口将所述数据集的最新数据信息更新至所述es集群,否则,限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率。
10.为了解决上述技术问题,本发明采用的另一种技术方案为:
11.一种数据更新终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
12.接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集;
13.根据所述数据集对所述全量更新消息的发送方的对应数据进行回调,得到所述数据集的最新数据信息;
14.判断所述es集群的负载水平是否低于预设值,若是,则通过es接入服务接口将所述数据集的最新数据信息更新至所述es集群,否则,限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率。
15.本发明的有益效果在于:接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集;根据数据集对全量更新消息的发送方的对应数据进行回调,能够主动得到数据集的最新数据信息,提高业务上的数据查询效率;在将最新数据写入es集群之前,查询es集群的负载水平,若负载水平低于预设值,则通过es接入服务接口将数据集的最新数据信息更新至es集群,否则限制es接入服务接口将数据集的最新数据信息更新至es集群的数量或者速率;因此通过主动回调发送方的预设数量的回调数据,便于根据es集群资源情况进行主动控制,并且根据es集群的负载水平确定最新数据写入集群的数量或者速率,能够在保证自身业务的前提下,减少es集群的压力。
附图说明
16.图1为本发明实施例的一种数据更新方法的流程图;
17.图2为本发明实施例的一种数据更新终端的示意图;
18.图3为现有技术的es集群的架构示意图;
19.图4为本发明实施例的一种数据更新方法的es集群的架构示意图。
具体实施方式
20.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
21.请参照图1,本发明实施例提供了一种数据更新方法,包括步骤:
22.接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集;
23.根据所述数据集对所述全量更新消息的发送方的对应数据进行回调,得到所述数据集的最新数据信息;
24.判断所述es集群的负载水平是否低于预设值,若是,则通过es接入服务接口将所述数据集的最新数据信息更新至所述es集群,否则,限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率。
25.从上述描述可知,本发明的有益效果在于:接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集;根据数据集对全量更新消息的发送方的对应数据进行回调,能够主动得到数据集的最新数据信息,提高业务上的数据查询效率;在将最新数据写入es集群之前,查询es集群的负载水平,若负载水平低于预设值,则通过es接入服务接口将数据集的最新数据信息更新至es集群,否则限制es接入服务接口将数据集的最新数据信息更新至es集群的数量或者速率;因此通过主动回调发送方的预设数量的回调数据,便于根据es集群资源情况进行主动控制,并且根据es集群的负载水平确定最新数据写入集群的数量或者速率,能够在保证自身业务的前提下,减少es集群的压力。
26.进一步地,所述接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集包括:
27.接收全量更新消息,根据es集群所包含的资源量确定每次进行数据更新的预设数量;
28.根据所述es集群中的数据的唯一标识,依次从所述es集群中查询预设数量的数据,得到对应的数据集。
29.由上述描述可知,接收全量更新消息后,根据es集群的资源量确定每次进行数据更新的预设数据量,并根据es集群中的数据唯一标识,依次从es集群中查询预设数量的数据,能够由es集群自身的资源情况,对进行数据同步处理,从而在避免对es集群造成较大的查询压力的同时,提高业务数据的查询效率。
30.进一步地,根据所述数据集对所述全量更新消息的发送方的对应数据进行回调,得到所述数据集的最新数据信息包括:
31.根据所述数据集中数据的唯一标识,从所述全量更新消息的发送方的回调接口回调对应的更新后的数据,得到数据集的最新数据信息。
32.由上述描述可知,根据数据集中数据的唯一标识,从全量更新消息的发送方的回调接口回调对应的更新后的数据,能够主动从发送方拉取更新数据,因此能够根据es集群的自身资源情况进行主动控制,并且发送方只需要提供回调接口即可,不需要在每个发送方都编写一套主动同步数据的功能代码,减少工作量。
33.进一步地,所述限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率包括:
34.根据所述负载水平,减少es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量;
35.或者,在所述数据集的最新数据信息更新至所述es集群之后,进入预设时长的休眠或者延迟。
36.由上述描述可知,当负载水平高于或者等于预设值时,根据负载水平较少更新至es集群的数据量,或者在更新之后进入预设时长的休眠或者延迟,能够在高负载的情况下减少es集群的压力。
37.进一步地,所述接收全量更新消息之前包括:
38.根据数据操作类型封装es接入服务接口;
39.接收发送方发送的数据操作指令,根据所述数据操作指令调用对应的所述es接入服务接口对es集群进行数据操作。
40.由上述描述可知,通过根据数据操作类型封装es接入服务接口,能够调用对应的es接入服务接口对es集群进行数据操作,便于对es集群的操作进行统一管理,从而减少es集群的压力。
41.请参照图2,本发明另一实施例提供了一种数据更新终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
42.接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集;
43.根据所述数据集对所述全量更新消息的发送方的对应数据进行回调,得到所述数据集的最新数据信息;
44.判断所述es集群的负载水平是否低于预设值,若是,则通过es接入服务接口将所述数据集的最新数据信息更新至所述es集群,否则,限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率。
45.由上述描述可知,接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集;根据数据集对全量更新消息的发送方的对应数据进行回调,能够主动得到数据集
的最新数据信息,提高业务上的数据查询效率;在将最新数据写入es集群之前,查询es集群的负载水平,若负载水平低于预设值,则通过es接入服务接口将数据集的最新数据信息更新至es集群,否则限制es接入服务接口将数据集的最新数据信息更新至es集群的数量或者速率;因此通过主动回调发送方的预设数量的回调数据,便于根据es集群资源情况进行主动控制,并且根据es集群的负载水平确定最新数据写入集群的数量或者速率,能够在保证自身业务的前提下,减少es集群的压力。
46.进一步地,所述接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集包括:
47.接收全量更新消息,根据es集群所包含的资源量确定每次进行数据更新的预设数量;
48.根据所述es集群中的数据的唯一标识,依次从所述es集群中查询预设数量的数据,得到对应的数据集。
49.由上述描述可知,接收全量更新消息后,根据es集群的资源量确定每次进行数据更新的预设数据量,并根据es集群中的数据唯一标识,依次从es集群中查询预设数量的数据,能够由es集群自身的资源情况,对进行数据同步处理,从而在避免对es集群造成较大的查询压力的同时,提高业务数据的查询效率。
50.进一步地,根据所述数据集对所述全量更新消息的发送方的对应数据进行回调,得到所述数据集的最新数据信息包括:
51.根据所述数据集中数据的唯一标识,从所述全量更新消息的发送方的回调接口回调对应的更新后的数据,得到数据集的最新数据信息。
52.由上述描述可知,根据数据集中数据的唯一标识,从全量更新消息的发送方的回调接口回调对应的更新后的数据,能够主动从发送方拉取更新数据,因此能够根据es集群的自身资源情况进行主动控制,并且发送方只需要提供回调接口即可,不需要在每个发送方都编写一套主动同步数据的功能代码,减少工作量。
53.进一步地,所述限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率包括:
54.根据所述负载水平,减少es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量;
55.或者,在所述数据集的最新数据信息更新至所述es集群之后,进入预设时长的休眠或者延迟。
56.由上述描述可知,当负载水平高于或者等于预设值时,根据负载水平较少更新至es集群的数据量,或者在更新之后进入预设时长的休眠或者延迟,能够在高负载的情况下减少es集群的压力。
57.进一步地,所述接收全量更新消息之前包括:
58.根据数据操作类型封装es接入服务接口;
59.接收发送方发送的数据操作指令,根据所述数据操作指令调用对应的所述es接入服务接口对es集群进行数据操作。
60.由上述描述可知,通过根据数据操作类型封装es接入服务接口,能够调用对应的es接入服务接口对es集群进行数据操作,便于对es集群的操作进行统一管理,从而减少es
集群的压力。
61.本发明的一种数据更新方法及终端,适用于所有es存储场景的系统,能够自动的根据es集群负载水平,智能的主动拉取数据,并更新至es集群中,减少es集群的压力,提高业务上的查询效率,以下通过具体的实施方式进行说明:
62.实施例一
63.请参照图1,一种数据更新方法,包括步骤:
64.s1、接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集。
65.其中,所述接收全量更新消息之前包括:
66.根据数据操作类型封装es接入服务接口;
67.接收发送方发送的数据操作指令,根据所述数据操作指令调用对应的所述es接入服务接口对es集群进行数据操作。
68.具体的,请参照图3和图4,在本实施例的统一es接入服务中,代理封装一层es对外提供的接口,主要为增、删、改、查等功能的接口均封装一层代理接口,相较于现有技术中将各个服务直接连接es集群,本实施例则直接调用es接入服务接口。
69.其中,所述s1具体包括以下步骤:
70.接收全量更新消息,根据es集群所包含的资源量确定每次进行数据更新的预设数量;
71.根据所述es集群中的数据的唯一标识,依次从所述es集群中查询预设数量的数据,得到对应的数据集。
72.具体的,当es接入服务收到需要全量更新数据的消息时,由es接入服务根据es集群自身的资源情况确定获取数据的预设数量,从es集群中批量查询出预设数量的一批数据的主键id。
73.s2、根据所述数据集对所述全量更新消息的发送方的对应数据进行回调,得到所述数据集的最新数据信息。
74.其中,所述s2具体包括以下步骤:
75.根据所述数据集中数据的唯一标识,从所述全量更新消息的发送方的回调接口回调对应的更新后的数据,得到数据集的最新数据信息。
76.具体的,在本实施例中使用es进行重要数据的存储,必须保证es中数据结构与数据库中数据结构以及数据内容一致,这样就导致了当发送方,即服务,在数据库中新增一个字段时,为了保证一致性,es中对应的数据结构需要变更,并且es中的存量数据也需要同步进行更新处理。例如:a服务中的某个数据库新增加了一个字段,需要全量同步更新至es集群中;a服务需要准备两件事情,一个是通知es接入服务,a服务中的某个库表新增加一个字段,需要全量更新旧有es集群中的数据;另一个是提供一个回调接口供es接入服务回调使用,该回调接口主要功能为返回新增字段的那张库表的信息,以主键id为查询条件,返回其相关的所有信息。
77.因此在保证自身业务的前提下,能够友好地支持数据更新的同步。
78.s3、判断所述es集群的负载水平是否低于预设值,若是,则通过es接入服务接口将所述数据集的最新数据信息更新至所述es集群,否则,限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率。
79.其中,所述限制es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量或者速率包括:
80.根据所述负载水平,减少es接入服务接口将所述数据集的最新数据信息更新至所述es集群的数量;
81.或者,在所述数据集的最新数据信息更新至所述es集群之后,进入预设时间的休眠或者延迟。
82.具体的,存在一个es监控服务,该服务将实时监控es集群相关的数据信息,包括资源使用情况,内存使用情况,负载水平以及其他一些监控项;
83.当es接入服务收到需要全量更新数据的消息时,每次会从es集群中批量的查询出一批主键id出来,根据这批id信息回调a服务的回调接口,获取最新的字段信息。之后,在写入es集群之前,会预先向es监控服务中查询此时es的负载情况,如果负载水平低于预设值,则可以直接写入es集群中,否则会减少消息写入es集群的数量,或者每次处理完进行一段时间的休眠或者延迟,或者只记录数据库,不进行相关处理;待es集群负载水平低于预设值时,再次进行更新数据的操作。
84.因此本实施例采用一种重新封装es接口功能,根据实时监控es集群的负载水平数据,通过一种自身可控制的回调方式,主动地实现数据的回调查询,并更新至数据库中,有效减少es集群的负载压力。
85.实施例二
86.请参照图2,一种数据更新终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一的一种数据更新方法的各个步骤。
87.综上所述,本发明提供的一种数据更新方法及终端,接收全量更新消息,依次从es集群中查询预设数量的数据,得到数据集,其中预设数量根据es集群的资源量确定,从而在避免对es集群造成较大的查询压力;根据数据集对全量更新消息的发送方的对应数据进行回调,能够主动得到数据集的最新数据信息,提高业务上的数据查询效率,并且发送方只需要提供回调接口即可,不需要在每个发送方都编写一套主动同步数据的功能代码,减少工作量;在将最新数据写入es集群之前,查询es集群的负载水平,若负载水平低于预设值,则通过es接入服务接口将数据集的最新数据信息更新至es集群,否则限制es接入服务接口将数据集的最新数据信息更新至es集群的数量或者速率,其中在es接入服务中封装es接入服务接口,能够调用es接入服务接口对es集群进行数据操作,便于根据es接入服务对es集群的操作进行统一管理;因此通过主动回调发送方的预设数量的回调数据,便于根据es集群资源情况进行主动控制,并且根据es集群的负载水平确定最新数据写入集群的数量或者速率,能够在保证自身业务的前提下,减少es集群的压力。
88.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1