您的位置  > 互联网

互联网云计算领域的海量数据处理方法及处理装置

本发明涉及互联网云计算领域,具体涉及一种海量数据处理方法、提取方法及处理装置。

背景技术:

随着计算机领域的快速发展,信息量增长到惊人的程度。 海量数据的存储、提取和计算受到广泛关注。 由于海量数据的数据量太大,数据中任何情况都可能存在。 如果有10条数据,那么最坏的情况就是逐条检查并手动处理。 如果数据有上百条,也可以考虑。 如果数据达到千万级,甚至过亿级,就无法手动解决。 一定是在通过工具或者程序进行处理的时候,尤其是海量的数据,任何情况都可能存在。 例如,数据中某处存在格式问题。 尤其是用程序处理的时候,之前处理是正常的,但是突然某个地方出现了问题。 ,程序终止。 海量数据对软硬件要求较高,系统资源利用率较高。

现有技术中,可以采用直接提取的方法来提取海量数据。 但这种提取速度较慢,不能满足当前快速处理的要求。 海量数据也可以分页提取,即一次提取一小部分。 虽然这种方法可以提高提取速度。 但目前还不太理想。 用户每次检索数据都需要等待。

另外,在提取海量数据的过程中,对数据的准确性要求较高。

针对上述问题,目前尚未提出有效的解决方案。

技术实现要素:

本发明实施例提供一种海量数据处理方法、提取方法及处理装置,以提高海量数据的提取速度和提取精度。 该方法包括:

响应于提取请求,从数据库中获取提取请求对应的数据需求总量;

按照单项需求和总数据需求对数据库中的数据进行顺序分组;

在提取出与提取请求对应的第一组数据后,按照组顺序依次缓存数据库中位于该组数据之后的数据。

进一步地,所述步骤“按照单项需求和总数据需求对数据库中的数据进行顺序分组”包括:

设置单次需求的数据量。

进一步的,在步骤“提取出与提取请求对应的第一组数据后,将位于数据库中位于该组数据之后的数据按照分组顺序缓存”之后,还包括:

响应于需求请求,确定需求请求对应的数据的数据位置。

进一步地,所述步骤“响应于需求请求,确定需求请求对应的数据的数据位置”包括:

如果该需求请求对应的数据的数据位置在已完成的缓存数据内,则从数据库中提取该需求请求对应的数据组。

进一步地,如果所述需求请求对应的数据的数据位置位于已完成的缓存数据内,则从数据库中提取所述需求请求对应的数据组”包括:

数据库中位于需求请求对应的数据之后的一组数据按照组顺序依次缓存。

进一步地,所述步骤“响应于需求请求,确定需求请求对应的数据的数据位置”包括:

若需求请求对应的数据的数据位置在提取请求对应的数据之外,则响应于需求请求,对数据库中的数据进行重新分组。

本发明实施例公开了一种海量数据的提取方法,包括:

判断该fetch请求对应的数据是否位于缓存服务器中;

如果取请求对应的数据位于缓存服务器中,则取取该取请求对应的一组数据,取完后尽可能按照组顺序缓存位于该组数据之后的数据。

进一步,包括:

如果该获取请求对应的数据位于缓存服务器中,则对数据库中的数据进行分组。

本发明实施例公开了一种海量数据处理装置,包括:

获取模块,用于响应提取请求,从数据库中获取提取请求对应的数据需求总量;

分组模块用于将数据库中的数据按照单项需求和总数据需求进行顺序分组;

缓存模块,用于在提取出与提取请求对应的第一组数据后,将位于该组数据之后的数据按照组顺序依次缓存在数据库中。

进一步,包括:

提取模块,用于提取缓存模块中的数据。

本发明实施例根据提取请求对数据库中的数据进行分组,按照分组顺序提取出一组数据后,尽可能缓存后续的数据,从而提高了提取速度。 以保证提取的准确性。

附图说明

图1为本发明实施例提供的一种海量数据处理方法的流程图;

图2为本发明实施例提供的海量数据提取方法的流程图;

图3为本发明实施例提供的海量数据处理装置的结构框图。

详细方式

下面结合附图并通过具体实施方式对本发明的技术方案进行进一步说明。

本发明实施例提供一种海量数据处理方法,如图1所示,可以包括以下步骤:

步骤101、响应于提取请求,从数据库中获取提取请求对应的数据需求总量;

用户可以通过硬件或软件发出检索请求。 例如,可以通过鼠标、键盘等硬件敲入获取请求。再比如,用户还可以通过程序输出来提取请求。

得到提取请求后,就可以计算出用户所需数据的总数据需求量。 例如,在一种实施方式中,通过计算得到用户需求数据库中的100亿条数据。

步骤102、按照单项需求和总数据需求对数据库中的数据进行顺序分组;

在本实施例中,可以将单个需求量设置为恒定值。 例如单次需求可以设置为1000万条数据。 那么该提取请求对应的数据库中的100亿总数据就可以分为1000组。 并根据数据的位置,依次定义为组1、组2、组3……组998、组999、组1000。

或者,在另一种可选的实施方式中,可以根据实际需要或用户设置,将单次需求金额设置为增​​加、减少或按照一定的规则设置。 例如,当单个需求按照组顺序依次增加时,第一组至第九组数据的数据量可以为6亿、7亿、8亿、9亿、10亿、11亿、12亿、1.3十亿,十四亿。

步骤103、提取出与提取请求对应的第一组数据后,将位于该组数据之后的数据按照组顺序依次缓存在数据库中。

即提取第一组数据后,按组顺序缓存第二组数据、第三组数据、第四组数据等。 如果没有进一步的指令,数据将继续被缓存,直到所有数据被缓存。 可以通过缓存模块从数据库中检索缓存数据来缓存数据。

进一步地,提取第一组数据后,可以将数据输出给用户,以便用户读取第一组数据。 或者,也可以将数据输出到机器外部,供机器计算或读取。

在另一种可选的实现方式中,步骤103还可以包括步骤104:响应于需求请求,确定需求请求对应的数据的数据位置。

如果该需求请求对应的数据的数据位置在已完成的缓存数据内,则从数据库中提取该需求请求对应的数据组。 也就是说,如果请求的数据在分组数据内,例如用户请求第二、第三或其他组数据,则可以直接从缓存中提取第二、第三或其他组数据。 数据,从而加快数据提取速度。 并在提取完成后,继续按照组顺序依次缓存后续数据。

如果需求请求需要第70组数据,但此时缓存只缓存第60组数据,则可以重新获取所需的总数据量,然后重新分组缓存。

本发明实施例提供一种海量数据的提取方法,包括:

步骤201、判断提取请求对应的数据是否位于缓存服务器中;

步骤202、若提取请求对应的数据位于缓存服务器中,则提取该提取请求对应的一组数据,并在提取后尽可能按组顺序缓存位于该组数据之后的数据。

进一步地,还可以执行步骤203:如果缓存服务器中不存在提取请求对应的数据,则在提取一次所需数据后,按照分组顺序将数据依次缓存到数据库中。

下面结合具体实施例对上述写请求处理方法和读请求处理方法进行说明。 但值得注意的是,该具体实施例只是为了更好地说明本发明,并不构成对本发明的不当限制。

下面介绍一下海量数据的处理方法:

1)用户发出提取指令;

2)根据提取指令在数据库中查找用户所需的数据量;

3)对数据库中的数据进行分组;

4)提取第一组数据供用户读取;

5)提取出第一组数据后,依次缓存第二组、第三组、第四组……数据。

此外,用户在读取第一组数据后,还可以请求读取第二组数据。 当提取第二组数据后,可以继续缓存未缓存的数据。

如果用户需要读取的数据不在分组或缓冲的数据之后,则数据库中的数据会重新分组并再次缓存。

基于同一发明构思,本发明实施例还提供了一种海量数据处理装置,如下实施例所述。 由于海量数据处理装置的解决问题原理与写请求处理方法类似,因此海量数据处理装置的实现可以参见写请求处理方法的实现,不再赘述。重复。 如下面所使用的,术语“单元”或“模块”可以是实现预定功能的软件和/或硬件的组合。 尽管以下实施例中所描述的装置优选地以软件来实现,但是以硬件、或者软件和硬件的组合来实现也是可能的并且可以预期的。 图3为本发明实施例提供的海量数据处理装置的结构框图。 如图3所示,可以包括:获取模块301、分组模块302和缓存模块303。下面对该结构进行描述。

获取模块301,用于响应提取请求,从数据库中获取该提取请求对应的数据需求总量;

分组模块302,用于根据单项需求和总数据需求对数据库中的数据进行顺序分组;

缓存模块303,用于在提取出与提取请求对应的第一组数据后,将位于该组数据之后的数据按照组顺序依次缓存在数据库中。

进一步地,海量数据处理设备还包括提取模块304,用于提取缓存模块中的数据。

在另一个实施例中,还提供了一种软件,用于执行上述实施例及优选实施方式描述的技术方案。

在20世纪90年代,技术的改进可以明确区分为硬件改进(例如二极管、晶体管、开关等电路结构的改进)或软件改进(方法流程的改进)。 然而,随着技术的发展,当今方法流程的许多改进都可以视为硬件电路结构的直接改进。 设计者几乎总是通过将改进的方法流程编程到硬件电路中来获得相应的硬件电路结构。 因此,不能说不能利用硬件实体模块来实现方法流程的改进。 例如,可编程逻辑器件(Logic,PLD)(如现场可编程门阵列(FPGA))就是这样的集成电路,其逻辑功能由用户对该器件进行编程来决定。 设计人员可以自己编程,在PLD上“集成”数字系统,而不需要芯片制造商设计和生产专用集成电路芯片。 而且,如今,这种编程大多采用“逻辑编译器(logic)”软件来实现,而不是手工制作集成电路芯片。 它类似于程序开发和编写中使用的软件编译器,需要编译前面的原始代码,也必须用特定的编程语言编写,这种语言称为硬件描述语言(HDL)。 HDL不只有一种,有很多种,比如ABEL()、AHDL()、CUPL()、HDCal、JHDL(Java)、Lava、Lola、MyHDL、RHDL(Ruby)等。目前最常见的有使用的是VHDL(超高速)和。 本领域技术人员还应该知道,通过简单地利用上述硬件描述语言对方法流程进行逻辑编程并编程到集成电路中,就可以容易地获得实现该逻辑方法流程的硬件电路。

控制器可以以任何合适的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储由(微控制器)可执行的计算机可读程序代码(例如,软件或固件)的计算机可读介质的形式。 )处理器。 、逻辑门、开关、专用集成电路 (ASIC)、可编程逻辑控制器和嵌入式微控制器。 控制器的示例包括但不限于以下微控制器:ARC 625D、Atmel 和 Labs、存储器控制 该控制器还可以实现为存储器控制逻辑的一部分。 本领域技术人员还知道,控制器除了以纯计算机可读程序代码的形式实现之外,还可以通过逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入式逻辑来完全编程控制器。对方法步骤进行逻辑编程。 单片机等实现同样的功能。 因此,该控制器可以被认为是一个硬件部件,并且其中包含的用于实现各种功能的装置也可以被认为是该硬件部件内部的结构。 或者甚至,用于实现各种功能的装置可以被视为硬件组件内的结构以及实现该方法的软件模块。

上述实施例描述的系统、设备、模块或单元可以由计算机芯片或实体、或者具有一定功能的产品来实现。 典型的实施设备是计算机。 具体地,计算机可以是例如个人计算机、膝上型计算机、蜂窝电话、照相电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板电脑、可穿戴设备或这些设备的组合。

为了描述方便,在描述上述装置时,将功能划分为各个单元单独描述。 当然,在实现本申请时,各单元的功能可以用同一个或多个软件和/或硬件来实现。

本领域技术人员将理解,本发明的实施例可以被提供为方法、系统或计算机程序产品。 因此,本发明可以采取完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。 此外,本发明可以采取在一个或多个具有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储、CD-ROM、光存储等)上体现的计算机程序产品的形式。体现在其中。

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

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

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

在典型配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和存储器。

存储器可以包括计算机可读介质中的非永久存储装置、随机存取存储器(RAM)和/或只读存储器(ROM)或闪存(闪存RAM)形式的非易失性存储器。 存储器是计算机可读介质的示例。

计算机可读介质包括可以通过用于存储信息的任何方法或技术来实现的持久性和非易失性、可移动和不可移动介质。 信息可以是计算机可读指令、数据结构、程序模块或其他数据。 计算机存储介质的示例包括但不限于相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)和只读存储器。记忆。 (ROM)、电可擦除可编程只读存储器 ()、闪存或其他存储技术、光盘只读存储器 (CD-ROM)、数字多功能光盘 (DVD) 或其他光存储、磁带、磁带磁盘存储器或其他磁存储设备或可用于存储可由计算设备访问的信息的任何其他非传输介质。 如本文所定义,计算机可读介质不包括临时计算机可读介质(媒体),例如调制数据信号和载波。

还应当注意的是,术语“包括”、“包括”或其任何其他变体旨在涵盖非排他性包含,使得包括一系列元件的过程、方法、物品或装置不仅包括这些要素,还包括未明确列出的或工艺、方法、物品或设备固有的其他要素。 在没有进一步限制的情况下,由陈述“包括……”定义的元件不排除在包括所述元件的过程、方法、物品或设备中存在附加的相同元件。

本领域技术人员将理解,本申请的实施例可以提供为方法、系统或计算机程序产品。 因此,本申请可以采用完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。 此外,本申请可以采取包含在一个或多个具有计算机可用程序的计算机可用存储介质(包括但不限于磁盘存储、CD-ROM、光存储等)上的计算机程序产品的形式。其中包含的代码。

可以在计算机可执行指令(例如由计算机执行的程序模块)的一般上下文中描述应用程序。 通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。 本申请还可以在分布式计算环境中实践,其中任务由通过通信网络连接的远程处理设备执行。 在分布式计算环境中,程序模块可以位于本地和远程计算机存储介质(包括存储设备)中。

本说明书中各个实施例均采用递进的方式描述。 各个实施例之间相同相似部分互相参见即可。 每个实施例集中于其与其他实施例的差异。 尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单。 相关细节请参见方法实施例的部分描述。

以上所述仅为本申请的示例而已,并不用于限制本申请。 对于本领域的技术人员来说,本申请可以进行各种修改和变型。 凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。