一种数据处理方法及装置与流程

文档序号:14403183阅读:164来源:国知局
一种数据处理方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种数据处理方法及装置。



背景技术:

随着技术的飞速发展,网络源源不断地在产生新的数据,当产生数据之后,为了之后能够使用该数据,则往往需要将该数据存储,目前,通常使用mysql等数据库存储数据。

当之后需要使用该数据时,可以向mysql发送数据获取请求,该数据获取请求携带该数据的数据标识,mysql接收该数据获取请求,然后从该数据获取请求中提取该数据标识,然后在mysql中存储的数据中获取该数据标识所对应的该数据,并向该数据获取请求的发送方发送获取的该数据。

然而,发明人发现,当mysql中存储了海量的数据时,在mysql中存储的数据中获取该数据标识所对应的数据需要耗费较长的时间,导致获取数据的效率较低。



技术实现要素:

为了提高获取数据的效率,本发明实施例示出了一种数据处理方法及装置。

第一方面,本发明实施例示出了一种数据处理方法,所述方法应用于关系型数据库中,所述关系型数据库与分布式全文搜索引擎es之间通信连接,所述方法包括:

获取第一数据获取请求,所述第一数据获取请求携带待获取数据的数据标识;

根据所述数据标识判断所述待获取数据是否存储在所述es中;

如果所述待获取数据存储在所述es中,则根据所述数据标识从所述es中获取所述待获取数据。

在一个可选的实现方式中,所述待获取数据为多个,所述方法还包括:

如果一部分待获取数据存储在所述关系型数据库中,且另一部分待获取数据存储在所述es中,则从所述关系型数据库中获取所述一部分待获取数据,以及从所述es中获取所述另一部分待获取数据。

在一个可选的实现方式中,所述方法还包括:

接收数据存储请求,所述数据存储请求携带待存储数据;

将所述待存储数据存储在所述es中。

在一个可选的实现方式中,所述接收数据存储请求之后,还包括:

将所述待存储数据存储在所述关系型数据库中;

向所述数据存储请求的发送方发送通知消息,所述通知消息用于通知已将所述待存储数据存储完毕,然后执行所述将所述待存储数据存储在所述es中的步骤。

在一个可选的实现方式中,所述将所述待存储数据存储在所述es中之后,还包括:

删除在所述关系型数据库中存储的所述待存储数据。

在一个可选的实现方式中,所述待存储数据为多个,所述方法还包括:

每当将一个待存储数据存储在所述es中,则将所述一个待存储数据的数据标识存储在预设列表中,所述预设列表用于存储在所述es中存储的数据的数据标识。

在一个可选的实现方式中,所述方法还包括:

接收数据删除请求,所述数据删除请求携带待删除数据的数据标识;

根据所述待删除数据的数据标识判断所述待删除数据是否存储在所述es中;

如果所述待删除数据存储在所述es中,则根据所述待删除数据的数据标识从所述es中删除所述待删除数据。

在一个可选的实现方式中,所述根据所述待删除数据的数据标识从所述es中删除所述待删除数据之后,还包括:

从所述预设列表删除所述待删除数据的数据标识。

第二方面,本发明实施例示出了一种数据处理装置,所述装置应用于关系型数据库中,所述关系型数据库与分布式全文搜索引擎es之间通信连接,所述装置包括:

第一获取模块,用于获取第一数据获取请求,所述第一数据获取请求携带待获取数据的数据标识;

第一判断模块,用于根据所述数据标识判断所述待获取数据是否存储在所述es中;

第二获取模块,用于如果所述待获取数据存储在所述es中,则根据所述数据标识从所述es中获取所述待获取数据。

在一个可选的实现方式中,所述待获取数据为多个,所述装置还包括:

第三获取模块,用于如果一部分待获取数据存储在所述关系型数据库中,且另一部分待获取数据存储在所述es中,则从所述关系型数据库中获取所述一部分待获取数据,以及从所述es中获取所述另一部分待获取数据。

在一个可选的实现方式中,所述装置还包括:

第一接收模块,用于接收数据存储请求,所述数据存储请求携带待存储数据;

第一存储模块,用于将所述待存储数据存储在所述es中。

在一个可选的实现方式中,所述装置还包括:

第二存储模块,用于将所述待存储数据存储在所述关系型数据库中;

发送模块,用于向所述数据存储请求的发送方发送通知消息,所述通知消息用于通知已将所述待存储数据存储完毕,然后执行所述将所述待存储数据存储在所述es中的步骤。

在一个可选的实现方式中,所述装置还包括:

第一删除模块,用于删除在所述关系型数据库中存储的所述待存储数据。

在一个可选的实现方式中,所述待存储数据为多个,所述装置还包括:

第三存储模块,用于每当将一个待存储数据存储在所述es中,则将所述一个待存储数据的数据标识存储在预设列表中,所述预设列表用于存储在所述es中存储的数据的数据标识。

在一个可选的实现方式中,所述装置还包括:

第二接收模块,用于接收数据删除请求,所述数据删除请求携带待删除数据的数据标识;

第二判断模块,用于根据所述待删除数据的数据标识判断所述待删除数据是否存储在所述es中;

第二删除模块,用于如果所述待删除数据存储在所述es中,则根据所述待删除数据的数据标识从所述es中删除所述待删除数据。

在一个可选的实现方式中,所述装置还包括:

第三删除模块,用于从所述预设列表删除所述待删除数据的数据标识。

本发明实施例的有益效果为:

在本发明实施例中,在关系型数据库中可以存储数据,在es中也可以存储数据,在关系型数据库中存储了海量的数据以及在es中也存储了海量的数据的情况下,从关系型数据库中获取需要获取的数据所需耗费的时间往往远远大于从es中获取需要获取的数据所需耗费的时间,因此,当获取到携带待获取数据的数据标识的第一数据获取请求之后,可以根据该数据标识判断待获取数据是否存储在es中,如果待获取数据存储在es中,则根据该数据标识从es中获取待获取数据,无需从关系型数据库中获取待获取数据,从而可以减少获取待获取数据所需耗费的时间,以提高获取待获取数据的效率。

附图说明

图1是本发明的一种数据处理方法实施例的步骤流程图;

图2是本发明的一种数据处理装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,方法应用于关系型数据库中,关系型数据库与es(elasticsearch,分布式全文搜索引擎)之间通信连接,该方法具体可以包括如下步骤:

在步骤s101中,获取第一数据获取请求,第一数据获取请求携带待获取数据的数据标识;

在本发明实施例中,关系型数据库包括oracle、db2、postgresql、microsoftsqlserver、microsoftaccess以及mysql等等。

数据标识用于唯一标识数据。

在步骤s102中,根据该数据标识判断待获取数据是否存储在es中;

在本发明实施例中,待获取数据可能存储在关系型数据库中,也可能存储在es中,为了提高获取待获取数据的效率,则需要判断待获取数据是否存储在es中,如果待获取数据存储在es中,则执行步骤s103。

本步骤的具体判断步骤可参见之后的实施例,在此不做详述。

如果待获取数据存储在es中,在步骤s103中,则根据该数据标识从es中获取待获取数据。

具体地,关系型数据库可以向es发送第一数据获取请求。es接收第一数据获取请求,从第一数据获取请求中提取该数据标识,并根据该数据标识获取存储在es中的待获取数据,并向关系型数据库发送待获取数据。关系型数据库接收es发送的待获取数据。进一步地,关系型数据库还可以向数据获取请求的发送方发送待获取数据。

在本发明实施例中,在关系型数据库中可以存储数据,在es中也可以存储数据,当在关系型数据库中和在es中分别存储了海量且相同的数据时,从关系型数据库中获取需要获取的数据所需耗费的时间往往远远大于从es中获取需要获取的数据所需耗费的时间,因此,当获取到携带待获取数据的数据标识的第一数据获取请求之后,可以根据该数据标识判断待获取数据是否存储在es中,如果待获取数据存储在es中,则根据该数据标识从es中获取待获取数据,无需从关系型数据库中获取待获取数据,从而可以减少获取待获取数据所需耗费的时间,以提高获取待获取数据的效率。

在本发明实施例中,有时候待获取数据可能为多个,当待获取数据为多个时,可能存在一部分待获取数据存储在关系型数据库中,且另一部分待获取数据存储在es中的情况,如果一部分待获取数据中存储在关系型数据库中,且另一部分待获取数据中存储在es中,则需要从关系型数据库中获取该一部分待获取数据,以及从es中获取该另一部分待获取数据。

例如,关系型数据库在关系型数据库中查找该数据标识所对应数据,并作为待获取数据;以及,关系型数据库生成第二数据获取请求,第二数据获取请求携带该另一部分待获取数据的数据标识,向es发送第二数据获取请求。es接收第二数据获取请求,从第二数据获取请求中提取出该另一部分待获取数据的数据标识,并根据该另一部分待获取数据的数据标识获取存储在es中的该另一部分待获取数据,并向关系型数据库发送该另一部分待获取数据。关系型数据库接收es发送的该另一部分待获取数据。

为了关系型数据库在需要获取待获取数据时,能够从es中获取待获取数据,以提高获取效率,在本发明另一实施例中,在关系型数据库需要存储数据时,关系型数据库可以将需要存储的数据存储在es中。具体地,关系型数据库接收数据存储请求,该数据存储请求携带待存储数据,然后将待存储数据存储在es中。其中,关系型数据库可以向es发送该数据存储请求。es接收该数据存储请求,并从该数据存储请求中提取出待存储数据,然后将待存储数据存储在es中。

在本发明实施例中,数据存储请求往往是其他用户向关系型数据库发送的,通常情况下,在关系型数据库将待存储数据存储完毕之后,就会向数据存储请求的发送方发送通知消息,该通知消息用于通知已将待存储数据存储完毕,当数据存储请求的发送方接收到该通知消息之后,就会显示该通知消息,如此使得用户就可以获知关系型数据库已将待存储数据存储完毕。

但是,当在短时间内需要存储海量的数据时,在将海量的数据存储在es中所需耗费的时间往往较长,因此,当需要在es中存储待存储数据时,如果还需要在es中存储其他海量的数据,则在es中存储待存储数据所需耗费的时间往往较长,如此导致数据存储请求的发送方需要等待较长时间才能得到该通知消息,进而导致用户需要等待较长时间才能看到显示的该通知消息,从而导致用户体验较低。

因此,为了提高用户体验,在本发明又一实施例中,在接收到该数据存储请求之后,关系型数据库可以先将待存储数据存储在关系型数据库中,然后向该数据存储请求的发送方发送通知消息,该通知消息用于通知已将待存储数据存储完毕,然后再将待存储数据存储在es中。

其中,虽然关系型数据库在将待存储数据存储完毕之后,才会向数据存储请求的发送方发送该通知消息,但是,当在短时间内需要存储海量的数据时,在将海量的数据存储在关系型数据库中所需耗费的时间往往较短,因此,当需要在关系型数据库中存储待存储数据时,如果还需要在关系型数据库中存储其他海量的数据,在关系型数据库中存储待存储数据所需耗费的时间往往较短,如此使得该数据存储请求的发送方只需要等待较短时间就能得到该通知消息,进而使得用户无需等待较长时间就能看到显示的该通知消息,从而可以提高用户体验。

在前述实施例中,在将待存储数据存储在关系型数据库中之后,关系型数据库也会将待存储数据存储在es中。如此,在关系型数据库和es中同时存储有待存储数据,如果之后关系型数据库需要获取已存储的待存储数据,则往往是从es中获取已存储的待存储数据,而通常不会从关系型数据库中获取已存储的待存储数据,因此,在关系型数据库和es中同时存储待存储数据浪费较多的存储资源,所以为了节省存储资源,在本发明又一实施例中,再将待存储数据存储在es中之后,可以删除在关系型数据库中存储的待存储数据。

进一步地,有时候待存储数据为多个,如果待存储数据为多个,关系型数据库在将多个待存储数据存储在es中时,往往是将多个待存储数据一个一个依次存储在es中,如果此时还需要将海量的数据存储在es中,则会导致在es中存储一个数据所需耗费的时间往往较长,如此将多个待存储数据一个一个依次存储在es中往往会耗费非常多的时间。在将多个待存储数据一个一个依次存储在es中的这段时间内,如果关系型数据库接收到用于获取多个待存储数据中的某一待存储数据的第三数据获取请求,为了在将该待存储数据已存储在es中的情况下,能够从es中获取该待存储数据,以提高获取该待存储数据的获取效率,关系型数据库需要实时获知多个待存储数据在es中的存储情况。

为了使得关系型数据库能够实时获知多个待存储数据在es中的存储情况,每当关系型数据库将一个待存储数据存储在es中,则需要将该一个待存储数据的数据标识存储在预设列表中,预设列表用于存储在es中存储的数据的数据标识。

进一步地,步骤s102具体可以为:在预设列表中查找是否存在待获取数据的数据标识;如果预设列表中存在待获取数据的数据标识,则确定待获取数据存储在es中;如果预设列表中不存在待获取数据的数据标识,则确定待获取数据未存储在es中。

在本发明又一实施例中,有时候可能需要将事先在es中或者关系型数据库中存储的数据删除,当需要将事先在es中或者关系型数据库中存储的某些数据删除时,可以向关系型数据库发送数据删除请求,该数据删除请求携带待删除数据的数据标识;

关系型数据库接收该数据删除请求,从该数据删除请求中提取出待删除数据的数据标识,然后根据待删除数据的数据标识判断待删除数据是否存储在es中,其中,可以在预设列表中查找是否存在待删除数据的数据标识;如果预设列表中存在待删除数据的数据标识,则确定待删除数据存储在es中;如果预设列表中不存在待删除数据的数据标识,则确定待删除数据未存储在es中。如果待删除数据存储在es中,则根据待删除数据的数据标识从es中删除待删除数据。如果待删除数据未存储在es中,则根据待删除数据的数据标识从关系型数据库中删除待删除数据。

进一步地,在根据待删除数据的数据标识从es中删除待删除数据之后,还可以从预设列表删除待删除数据的数据标识。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图2,示出了本发明一种数据处理装置实施例的结构框图,所述装置应用于关系型数据库中,所述关系型数据库与分布式全文搜索引擎es之间通信连接,所述装置具体可以包括如下模块:

第一获取模块11,用于获取第一数据获取请求,所述第一数据获取请求携带待获取数据的数据标识;

第一判断模块12,用于根据所述数据标识判断所述待获取数据是否存储在所述es中;

第二获取模块13,用于如果所述待获取数据存储在所述es中,则根据所述数据标识从所述es中获取所述待获取数据。

在一个可选的实现方式中,所述待获取数据为多个,所述装置还包括:

第三获取模块,用于如果一部分待获取数据存储在所述关系型数据库中,且另一部分待获取数据存储在所述es中,则从所述关系型数据库中获取所述一部分待获取数据,以及从所述es中获取所述另一部分待获取数据。

在一个可选的实现方式中,所述装置还包括:

第一接收模块,用于接收数据存储请求,所述数据存储请求携带待存储数据;

第一存储模块,用于将所述待存储数据存储在所述es中。

在一个可选的实现方式中,所述装置还包括:

第二存储模块,用于将所述待存储数据存储在所述关系型数据库中;

发送模块,用于向所述数据存储请求的发送方发送通知消息,所述通知消息用于通知已将所述待存储数据存储完毕,然后执行所述将所述待存储数据存储在所述es中的步骤。

在一个可选的实现方式中,所述装置还包括:

第一删除模块,用于删除在所述关系型数据库中存储的所述待存储数据。

在一个可选的实现方式中,所述待存储数据为多个,所述装置还包括:

第三存储模块,用于每当将一个待存储数据存储在所述es中,则将所述一个待存储数据的数据标识存储在预设列表中,所述预设列表用于存储在所述es中存储的数据的数据标识。

在一个可选的实现方式中,所述装置还包括:

第二接收模块,用于接收数据删除请求,所述数据删除请求携带待删除数据的数据标识;

第二判断模块,用于根据所述待删除数据的数据标识判断所述待删除数据是否存储在所述es中;

第二删除模块,用于如果所述待删除数据存储在所述es中,则根据所述待删除数据的数据标识从所述es中删除所述待删除数据。

在一个可选的实现方式中,所述装置还包括:

第三删除模块,用于从所述预设列表删除所述待删除数据的数据标识。

在本发明实施例中,在关系型数据库中可以存储数据,在es中也可以存储数据,在关系型数据库中存储了海量的数据以及在es中也存储了海量的数据的情况下,从关系型数据库中获取需要获取的数据所需耗费的时间往往远远大于从es中获取需要获取的数据所需耗费的时间,因此,当获取到携带待获取数据的数据标识的第一数据获取请求之后,可以根据该数据标识判断待获取数据是否存储在es中,如果待获取数据存储在es中,则根据该数据标识从es中获取待获取数据,无需从关系型数据库中获取待获取数据,从而可以减少获取待获取数据所需耗费的时间,以提高获取待获取数据的效率。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种数据处理方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1