CN117235078B - 一种高速处理海量数据的方法、系统、装置及存储介质 - Google Patents
一种高速处理海量数据的方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN117235078B CN117235078B CN202311517981.2A CN202311517981A CN117235078B CN 117235078 B CN117235078 B CN 117235078B CN 202311517981 A CN202311517981 A CN 202311517981A CN 117235078 B CN117235078 B CN 117235078B
- Authority
- CN
- China
- Prior art keywords
- data
- container
- processing
- binary
- containers
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 127
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000015654 memory Effects 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 31
- 230000004048 modification Effects 0.000 claims description 13
- 238000012986 modification Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,公开了一种高速处理海量数据的方法、系统、装置及存储介质,本发明通过将目标数据类型所存储在的数据表分割成多个容器,其中,容器存储着数据且具有分页索引,响应于数据处理指令,基于各个容器的分页索引直接控制各容器进行相应的数据处理,本方案可直接通过分割得到的数据容器进行数据的处理,无需部署第三方数据库服务器,在客户端应用上更具优势,且不需要依托服务,节省了与服务通信的性能消耗以及数据处理的效率更高,且将数据表分割成多个容器可以利用多线程进行数据处理,提高了数据处理的效率。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种高速处理海量数据的方法、系统、装置及存储介质。
背景技术
计算机程序中经常遇到要处理海量数据的情况,现有技术中程序会借助成熟的第三方数据库管理系统来处理,虽然技术成熟,通用性强,但在特定需求下可能并不能完全满足数据处理的需求。比如以远程字典服务(Remote Dictionary Server, Redis)为代表的服务型内存数据库,虽然数据的读写效率较快,但由于其是以服务的形式存在,和程序交互需要通过通信实现,通信效率成为读写效率的瓶颈,且在处理海量数据时会消耗大量内存。
发明内容
有鉴于此,本发明提供了一种高速处理海量数据的方法、系统、装置及存储介质,以解决处理数据时借用第三方数据库管理系统来处理,在特定需求下并不能完全满足数据处理的需求的技术问题。
一方面,本发明提供了一种高速处理海量数据的方法,所述方法包括:将目标数据类型所存储在的数据表分割成预设数量个数据页,所述数据页为存储着数据且具备分页索引的容器;响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理。
本发明提供的高速处理海量数据的方法,通过将目标数据类型所存储在的数据表分割成多个容器,其中,容器存储着数据且具有分页索引,响应于数据处理指令,基于各个容器的分页索引直接控制各容器进行相应的数据处理,本方案可直接通过分割得到的数据容器进行数据的处理,无需部署第三方数据库服务器,在客户端应用上更具优势,且不需要依托服务,节省了与服务通信的性能消耗以及数据处理的效率更高。
在一种可选的实施方式中,响应于接收到目标数据新增指令,计算目标数据对应的哈希值;将所述哈希值对所述预设数量进行取余处理,得到取余值;基于所述取余值,控制相应分页索引对应的容器将所述目标数据添加到本数据页中。
本发明在新增目标数据时,通过计算目标数据的哈希值,通过哈希值确定存储的容器,方便后续查找目标数据时,可直接导向对应的容器进行目标数据的查找,减少了资源的浪费,同时提高了数据处理的效率。
在一种可选的实施方式中,响应于接收到目标数据删除指令,计算目标数据对应的哈希值;将所述哈希值对所述预设数量进行取余处理,得到取余值;基于所述取余值,控制相应分页索引对应的容器将所述目标数据从本数据页中删除。
本发明通过对在容器中处理的数据计算哈希值,可直接通过哈希值导向对应的容器,使得对应的容器进行数据的删除,避免了在所有容器中进行查找需要的处理数据,提高了数据处理的效率。
在一种可选的实施方式中,响应于接收到目标数据查找指令,基于各个容器的分页索引控制所有容器同时进行所述目标数据的查找,所述目标数据查找指令中包括目标数据的查找条件;当查找到的任一数据满足所述目标数据的查找条件时,或当所有容器均结束目标数据查找操作时,获取容器查找到的目标数据。
本发明通过将目标数据类型所存储在的数据表分割成多个数据页,在进行目标数据查找时利用了多线程操作使得所有容器同时进行数据的查找,提高了数据查找的效率。
在一种可选的实施方式中,所述方法还包括:响应于接收到目标数据修改指令,控制容器将其查找到的目标数据修改为新的数据。
本发明通过多线程查找到目标数据后,还可响应于接收到目标数据修改指令,控制相应容器将查找到的目标数据修改为新的数据,实现了数据的多方面处理功能,提升了目标数据修改的效率。
在一种可选的实施方式中,所述方法还包括:响应于接收到数据存储指令,对所有容器中的数据同时进行序列化处理,获得每一容器对应的二进制数组,所述二进制数组包括容器中存储的数据和页头,所述页头存储该容器对应的数据长度和其对应的分页索引;将所有容器对应的二进制数组进行合并,并添加表头,得到目标数据类型所存储在数据表对应的二进制数据,并保存在本地文件,所述表头存储所述数据表对应的二进制数据对应的数据长度以及数据类型。
本发明通过对所有容器中的数据利用多线程同时进行序列化处理获得二进制数据,并把每一容器对应的二进制数据进行合并,并添加表头,得到目标数据类型所存储在数据表对应的二进制数据,并保存在本地,能够实现对海量数据进行高速访问写入操作。
在一种可选的实施方式中,所述方法还包括:响应于接收到数据读取指令,基于表头存储的数据类型和其数据表对应的数据长度,从本地文件读取所述数据表对应的数据长度的二进制数据;基于所述二进制数据中页头存储的分页索引和其容器对应的数据长度,读取所述容器对应的数据长度的二进制数据并进行反序列化处理,得到对应的容器,直至所述二进制数据均转化为容器。
本发明通过从本地基于表头存储的数据类型和其数据表对应的数据长度读取二进制数据,通过二进制数据中页头存储的分页索引和其容器对应的数据长度,读取该容器对应数据长度的二进制数据并进行反序列化处理,得到对应的容器,能够实现对海量数据进行高速读取操作,实现了能高速访问和兼顾读和写效率的功能。
第二方面,本发明提供了一种高速处理海量数据系统,包括:
控制器,所述控制器包括存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的高速处理海量数据的方法;
预设数量个容器,用于存储数据并进行数据处理。
第三方面,本发明提供了一种高速处理海量数据装置,所述装置包括:数据表分割模块,用于将目标数据类型所存储在的数据表分割成预设数量个数据页,所述数据页为存储着数据且具备分页索引的容器;数据处理模块,用于响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的高速处理海量数据的方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的高速处理海量数据的方法的流程示意图;
图2是根据本发明实施例的数据容器结构示意图;
图3是根据本发明实施例的另一高速处理海量数据的方法的流程示意图;
图4是根据本发明实施例的新数据新增的流程示例图;
图5是根据本发明实施例的又一高速处理海量数据的方法的流程示意图;
图6是根据本发明实施例的对数据进行存储的流程示例图;
图7是根据本发明实施例的将数据表生成序列化结果的示例图;
图8是根据本发明实施例的高速处理海量数据系统的结构框图;
图9是根据本发明实施例的高速处理海量数据装置的结构框图;
图10是本发明实施例的控制器的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有一个常见的“对海量数据进行高速读写操作”的需求,传统的做法一般有以下几种:
使用服务型数据库中的内存数据库(数据都在内存中处理),最常见的为redis。由于是内存数据库,它具有良好的高速读写效率。是目前已知的对上述需求最优的解决办法。该数据库技术被广泛运用在游戏服务器等需要对大量数据进行读写的场景,但由于其以服务的形式存在,和程序交互需要通过通信实现,因此通信效率成为读写效率的瓶颈,redis的序列化方案是json(JavaScript Object Notation,JS对象简谱),在处理海量数据时,json序列化效率以及内存占用都不具有良好性能。尤其是内存占用大的弊端,在处理海量数据时会消耗大量内存。
使用文件型数据库。如sqlite(关系型数据库)。它的优点是轻量,可以直连,但文件型数据库本身的读写效率均不佳,只比服务型数据库多了轻量无需通信的优势。
使用只读数据库。只读数据库读取和查询的性能优异,反序列化快,但反过来写入性能就会很差,只能兼顾一边。
现有技术中程序会借助成熟的第三方数据库管理系统来处理,虽然技术成熟,通用性强,但在特定需求下可能并不能完全满足数据处理的需求。
根据本发明实施例,提供了一种高速处理海量数据的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种高速处理海量数据的方法,可用于上述的高速处理海量数据系统,图1是根据本发明实施例的高速处理海量数据的方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,将目标数据类型所存储在的数据表分割成预设数量个数据页,数据页为存储着数据且具备分页索引的容器。
本发明实施例中同一数据类型的数据存储在同一数据表中,可将目标数据类型所存储在的数据表分割成预设数量个数据页,其中,预设数量可根据数据表中的数据的多少来设定,比如数据表中的数据较多,则可设定较多数量个数据页,预设数量可用N来表示,每个数据页都是存储着数据的且具备分页索引的容器,每个容器中实际存储着数据,其中,本发明实施例的容器可以是顺序容器,如图2所示,将目标数据类型的数据表分割成N个容器,每个容器具备其对应的分页索引,且每个容器均实际存储着数据,具体存储的数据在此不再赘述。
步骤S102,响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理。
本发明实施例中数据处理指令可以是数据新增、数据删除、数据查找和数据修改指令等指令,本发明实施例在接收到数据删除指令后,可控制所有的容器进行目标数据的查找,当任一容器在本数据页中查找到目标数据后,即可进行目标数据的删除,仅作为举例,本发明实施例在接收到数据新增指令后,可随机将新增的数据添加到任一容器中,或者可随机选取任意整型值作为哈希值,利用该哈希值对容器的数量进行取余,可获得一个大于0小于N的取余值P,P可作为该新增数据的分页索引,将新增的数据添加到该容器中,不作限定,仅作为举例,在接收到数据查找指令后,可按照分页索引依次控制容器进行目标数据的查找,直至找到目标数据,仅作为举例,数据修改指令则某容器在查找到目标数据后可直接进行数据的修改。
本实施例提供的高速处理海量数据的方法,通过将目标数据类型所存储在的数据表分割成多个容器,其中,容器存储着数据且具有分页索引,响应于数据处理指令,基于各个容器的分页索引直接控制各容器进行相应的数据处理,本方案可直接通过分割得到的数据容器进行数据的处理,无需部署第三方数据库服务器,在客户端应用上更具优势,且不需要依托服务,节省了与服务通信的性能消耗以及数据处理的效率更高。
在本实施例中提供了一种高速处理海量数据的方法,可用于上述的高速处理海量数据系统,图3是根据本发明实施例的高速处理海量数据的方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,将目标数据类型所存储在的数据表分割成预设数量个数据页,数据页为存储着数据且具备分页索引的容器。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S302,响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理。
具体地,上述步骤S302包括:
步骤S3021,响应于接收到目标数据新增指令,计算目标数据对应的哈希值。
本发明实施例在接收到目标数据的新增指令时,可先计算目标数据对应的哈希值,其中,计算目标数据对应的哈希值可以是在未获得数据的情况下通过与数据有关的其他值计算得到目标数据对应的哈希值,也可以是直接通过目标数据计算对应的哈希值,本发明在前者的支持下有着比后者更高的效率,也可以用一般的哈希算法求值,不作限定,其中哈希值的计算可通过任意哈希函数生成,也可通过哈希表查找得到。
步骤S3022,将哈希值对预设数量进行取余处理,得到取余值。
本发明实施例在得到目标数据的哈希值后,即可将哈希值对预设数量N进行取余处理,可得到一个大于零小于N的取余值P。
步骤S3023,基于取余值,控制相应分页索引对应的容器将目标数据添加到本数据页中。
本发明实施例中,如图4所示,获取新数据对应的整型哈希值,利用该整型哈希值对容器的数量N进行取余处理,求得取余值P,将取余值P作为新数据需要添加的分页索引,即分页索引也为P,将新数据插入到相应分页索引对应的容器中,仅作为举例。
本发明实施例得到取余值P后,可直接将P作为目标数据应在的分页索引,则可控制该分页索引的容器将目标数据插入到本数据页中,再后续对目标数据进行查找时,也可计算需要查找的目标数据的哈希值,可直接导向对应的分页索引,控制该分页索引的容器查找到目标数据,其他分页索引的容器可不执行查找操作,减少资源的浪费。
本发明在新增目标数据时,通过计算目标数据的哈希值,通过哈希值确定存储的容器,方便后续查找目标数据时,可直接导向对应的容器进行目标数据的查找,减少了资源的浪费,同时提高了数据处理的效率。
步骤a1,响应于接收到目标数据删除指令,计算目标数据对应的哈希值;将哈希值对预设数量进行取余处理,得到取余值;基于取余值,控制相应分页索引对应的容器将目标数据从本数据页中删除。
本发明实施例在接收到目标数据删除指令后,也可计算需要删除的目标数据D的哈希值,也可将哈希值对预设数量N进行取余处理,得到取余值P,将取余值P作为目标数据所在的分页索引,则相应分页索引的容器即可找到该目标数据并将其删除。
本发明通过对在容器中处理的数据计算哈希值,可直接通过哈希值导向对应的容器,使得对应的容器进行数据的删除,避免了在所有容器中进行查找需要的处理数据,提高了数据处理的效率。
在本实施例中提供了一种高速处理海量数据的方法,可用于上述的高速处理海量数据系统,图5是根据本发明实施例的高速处理海量数据的方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,将目标数据类型所存储在的数据表分割成预设数量个数据页,数据页为存储着数据且具备分页索引的容器。详细请参见图1所示实施例的步骤S301,在此不再赘述。
步骤S502,响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理。
具体地,上述步骤S502包括:
步骤S5021,响应于接收到目标数据查找指令,基于各个容器的分页索引控制所有容器同时进行目标数据的查找。
其中,目标数据查找指令中包括目标数据的查找条件。
本发明实施例在数据库中查找数据通常要有一个查找条件,比如ID为1,Age>18等,仅作为举例,需要传入一个形参为数据,返回值为bool的委托,则可以该委托为依据,控制每个容器开启多线程的目标数据的查找,即控制所有容器同时进行目标数据的查找。
步骤S5022,当查找到的任一数据满足目标数据的查找条件时,或当所有容器均结束目标数据查找操作时,获取容器查找到的目标数据。
本发明实施例中当某一容器查找到满足目标数据的查找条件的数据后,则可控制所有的容器提前结束所有的线程,则该容器则可将查找到的数据发送给系统,也可以控制所有容器均正常结束目标数据查找的线程,则可获取符合查找条件的所有数据,不作限定,在获取到满足目标数据的查找条件的数据后,可将数据返回至计算机操作系统的客户界面端。
本发明通过将目标数据类型所存储在的数据表分割成多个数据页,在进行目标数据查找时利用了多线程操作使得所有容器同时进行数据的查找,提高了数据查找的效率。
步骤S5023,响应于接收到目标数据修改指令,控制容器将其查找到的目标数据修改为新的数据。
本发明实施例在获取到满足目标数据的查找条件的数据后,可直接响应于接收到目标数据修改指令中的新的修改数据,控制容器将其查找到的目标数据更换为新的修改数据,具体实施例中查找返回的数据结果是引用,对引用的修改等同于对数据库中数据的修改,因此直接修改返回的引用即可。
本发明通过多线程查找到目标数据后,还可响应于接收到目标数据修改指令,控制相应容器将查找到的目标数据修改为新的数据,实现了数据的多方面处理功能,提升了目标数据修改的效率。
步骤S503,响应于接收到数据存储指令,对所有容器中的数据同时进行序列化处理,获得每一容器对应的二进制数组,二进制数组包括容器中存储的数据和页头,页头存储该容器对应的数据长度和其对应的分页索引;将所有容器对应的二进制数组进行合并,并添加表头,得到目标数据类型所存储在数据表对应的二进制数据,并保存在本地文件,表头存储数据表对应的二进制数据对应的数据长度以及数据类型。
本发明实施例的数据存储即数据写入就是对内存结构序列化,并将序列化的结果写入到本地,其中,对序列化的处理方案不作限定,可以是将数据进行序列化处理得到八进制数据等等,本发明实施例为了满足高速读写的需求,采用二进制序列化的处理方案,对各容器开启多线程的序列化处理操作,使用二进制序列化处理的方案对每个容器同时进行序列化处理,获得二进制数据,可将每一容器对应的分页索引和得到的二进制数据的数据长度作为页头,可得到页头在前,实际二进制数据在后的二进制数组,作为单页序列化的结果,当所有的容器均得到对应的二进制数组后,将所有容器对应的二进制数据进行合并成全页的二进制数据,其中合并的方法可以是按照各容器的分页索引顺序排列合并,也可随机按照生成对应二进制数据的用时时间排列,用时短的排在前面,不作限定,再可将所有容器对应的数据类型和合并后的数据长度作为表头,将表头与所有容器对应的二进制数据进行合并得到的全页的二进制数据也进行合并,表头在前,即可得到整个数据表对应的二进制数据,则可保存在本地文件中。
具体实施例,如图6所示,本发明实施例以C#为例,以各容器为结构序列将各容器的数据进行二进制序列化处理,得到二进制byte数组,并将该容器的分页索引和得到的二进制数组的长度作为页头转为byte数组,即可得到该容器对应的序列化结果bin1,收集每各容器的序列化结果,将所有容器的bin序列化结果进行合并成全页的byte数组,得到bin1+bin2+……binN,再将数据对应的数据类型和所有容器的序列化结果合并的byte数组长度作为表头转为byte数据,得到表头+bin1+bin2+……binN,则可完成整个序列化过程,再将得到的表头+bin1+bin2+……binN保存到本地即可,即可得到如图7所示的二进制数据。
本发明通过对所有容器中的数据利用多线程同时进行序列化处理获得二进制数据,并把每一容器对应的二进制数据进行合并,并添加表头,得到目标数据类型所存储在数据表对应的二进制数据,并保存在本地,能够实现对海量数据进行高速访问写入操作。
步骤S504,响应于接收到数据读取指令,基于表头存储的数据类型和其数据表对应的数据长度,从本地文件读取数据表对应的数据长度的二进制数据;基于二进制数据中页头存储的分页索引和其容器对应的数据长度,读取容器对应的数据长度的二进制数据并进行反序列化处理,得到对应的容器,直至二进制数据均转化为容器。
本发明实施例中数据读取就是写入的逆操作,即反序列化过程,在接收到数据读取指令后,可从本地读取整个二进制数据,从表头读取一个整型长度转化为的数据类型,读取一个整型的长度转换为整个数据表的长度,即可从整个二进制数据中提取某一数据表对应的数据长度的二进制数据,对该二进制数据进行如下循环操作直到整个二进制数据均转化为容器:从页头读取一个整型长度转换为分页索引,读取一个整型长度转换为该分页索引的数据长度,读取该数据长度的二进制数据并进行反序列化处理得到对应的容器,如图7所示,1、读取固定长度的二进制数据作为表头;2、读取固定长度的页头;3、此时根据页头就能知道页1的实际数据长度,读取对应长度的二进制数据;4、重复步骤2到3直到读取的长度到达表头记录的整个表长度;5、重复步骤1到4继续读取一张表直到文件读取完毕。
本发明通过从本地基于表头存储的数据类型和其数据表对应的数据长度读取二进制数据,通过二进制数据中页头存储的分页索引和其容器对应的数据长度,读取该容器对应数据长度的二进制数据并进行反序列化处理,得到对应的容器,能够实现对海量数据进行高速读取操作,实现了能高速访问和兼顾读和写效率的功能。
在本实施例还提供了一种高速处理海量数据系统,如图8所示,该高速处理海量数据系统包括预设数量个容器,可以是容器1、容器2……容器N,用于存储数据并进行数据处理,具体实施过程请参见上述实施例在此不再赘述,还包括控制器81,控制器81包括存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述实施例的高速处理海量数据的方法,详细的高速处理海量数据的方法请参见上述实施例,在此不再赘述。
在本实施例中还提供了一种高速处理海量数据装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种高速处理海量数据装置,如图9所示,包括:
数据表分割模块901,用于将目标数据类型所存储在的数据表分割成预设数量个数据页,数据页为存储着数据且具备分页索引的容器;
数据处理模块902,用于响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理。
在一些可选的实施方式中,数据处理模块902包括:哈希值计算单元,用于响应于接收到目标数据新增指令,计算目标数据对应的哈希值;取余处理单元,用于将哈希值对预设数量进行取余处理,得到取余值;数据添加单元,用于基于取余值,控制相应分页索引对应的容器将目标数据添加到本数据页中。
在一些可选的实施方式中,数据处理模块902包括:哈希值计算单元,用于响应于接收到目标数据删除指令,计算目标数据对应的哈希值;取余处理单元,用于将哈希值对预设数量进行取余处理,得到取余值;数据删除单元,用于基于取余值,控制相应分页索引对应的容器将目标数据从本数据页中删除。
在一些可选的实施方式中,数据处理模块902包括:数据查找单元,用于响应于接收到目标数据查找指令,基于各个容器的分页索引控制所有容器同时进行目标数据的查找,目标数据查找指令中包括目标数据的查找条件;数据获取单元,用于当查找到的任一数据满足目标数据的查找条件时,或当所有容器均结束目标数据查找操作时,获取容器查找到的目标数据。
在一些可选的实施方式中,数据处理模块902还包括:数据修改单元,用于响应于接收到目标数据修改指令,控制容器将其查找到的目标数据修改为新的数据。
在一些可选的实施方式中,高速处理海量数据装置还包括:数据序列化处理模块,用于响应于接收到数据存储指令,对所有容器中的数据同时进行序列化处理,获得每一容器对应的二进制数组,二进制数组包括容器中存储的数据和页头,页头存储该容器对应的数据长度和其对应的分页索引;数据写入模块,用于将所有容器对应的二进制数组进行合并,并添加表头,得到目标数据类型所存储在数据表对应的二进制数据,并保存在本地文件,表头存储数据表对应的二进制数据对应的数据长度以及数据类型。
在一些可选的实施方式中,高速处理海量数据装置还包括:数据读取模块,用于响应于接收到数据读取指令,基于表头存储的数据类型和其数据表对应的数据长度,从本地文件读取数据表对应的数据长度的二进制数据;数据反序列化处理模块,用于基于二进制数据中页头存储的分页索引和其容器对应的数据长度,读取容器对应的数据长度的二进制数据并进行反序列化处理,得到对应的容器,直至二进制数据均转化为容器。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的高速处理海量数据装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种控制器,具有上述图9所示的高速处理海量数据装置。
请参阅图10,图10是本发明可选实施例提供的一种控制器的结构示意图,如图10所示,该控制器包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在控制器内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个控制器,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据控制器的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该控制器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该控制器还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图10中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该控制器的用户设置以及功能控制有关的信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (8)
1.一种高速处理海量数据的方法,其特征在于,所述方法包括:
将目标数据类型所存储在的数据表分割成预设数量个数据页,所述数据页为存储着数据且具备分页索引的容器;
响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理;
所述方法还包括:响应于接收到数据存储指令,对所有容器中的数据同时进行序列化处理,获得每一容器对应的二进制数组,所述二进制数组包括容器中存储的数据和页头,所述页头存储该容器对应的数据长度和其对应的分页索引;将所有容器对应的二进制数组进行合并,并添加表头,得到目标数据类型所存储在数据表对应的二进制数据,并保存在本地文件,所述表头存储所述数据表对应的二进制数据对应的数据长度以及数据类型;
所述方法还包括:响应于接收到数据读取指令,基于表头存储的数据类型和其数据表对应的数据长度,从本地文件读取所述数据表对应的数据长度的二进制数据;基于所述二进制数据中页头存储的分页索引和其容器对应的数据长度,读取所述容器对应的数据长度的二进制数据并进行反序列化处理,得到对应的容器;
返回执行所述基于表头存储的数据类型和其数据表对应的数据长度,从本地文件读取所述数据表对应的数据长度的二进制数据的步骤,直至本地文件中所有数据表对应的二进制数据均转化为容器。
2.根据权利要求1所述的高速处理海量数据的方法,其特征在于,所述响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理,包括:
响应于接收到目标数据新增指令,计算目标数据对应的哈希值;
将所述哈希值对所述预设数量进行取余处理,得到取余值;
基于所述取余值,控制相应分页索引对应的容器将所述目标数据添加到本数据页中。
3.根据权利要求1所述的高速处理海量数据的方法,其特征在于,所述响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理,包括:
响应于接收到目标数据删除指令,计算目标数据对应的哈希值;
将所述哈希值对所述预设数量进行取余处理,得到取余值;
基于所述取余值,控制相应分页索引对应的容器将所述目标数据从本数据页中删除。
4.根据权利要求1所述的高速处理海量数据的方法,其特征在于,所述响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理,包括:
响应于接收到目标数据查找指令,基于各个容器的分页索引控制所有容器同时进行所述目标数据的查找,所述目标数据查找指令中包括目标数据的查找条件;
当查找到的任一数据满足所述目标数据的查找条件时,或当所有容器均结束目标数据查找操作时,获取容器查找到的目标数据。
5.根据权利要求4所述的高速处理海量数据的方法,其特征在于,所述方法还包括:
响应于接收到目标数据修改指令,控制容器将其查找到的目标数据修改为新的数据。
6.一种高速处理海量数据系统,其特征在于,所述系统包括:
控制器,所述控制器包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至5中任一项所述的高速处理海量数据的方法;
预设数量个容器,用于存储数据并进行数据处理。
7.一种高速处理海量数据装置,其特征在于,所述装置包括:
数据表分割模块,用于将目标数据类型所存储在的数据表分割成预设数量个数据页,所述数据页为存储着数据且具备分页索引的容器;
数据处理模块,用于响应于数据处理指令,基于各个容器的分页索引控制各容器进行相应的数据处理;
数据序列化处理模块,用于响应于接收到数据存储指令,对所有容器中的数据同时进行序列化处理,获得每一容器对应的二进制数组,所述二进制数组包括容器中存储的数据和页头,所述页头存储该容器对应的数据长度和其对应的分页索引;将所有容器对应的二进制数组进行合并,并添加表头,得到目标数据类型所存储在数据表对应的二进制数据,并保存在本地文件,所述表头存储所述数据表对应的二进制数据对应的数据长度以及数据类型;
数据读取模块,用于响应于接收到数据读取指令,基于表头存储的数据类型和其数据表对应的数据长度,从本地文件读取所述数据表对应的数据长度的二进制数据;基于所述二进制数据中页头存储的分页索引和其容器对应的数据长度,读取所述容器对应的数据长度的二进制数据并进行反序列化处理,得到对应的容器;
返回执行所述基于表头存储的数据类型和其数据表对应的数据长度,从本地文件读取所述数据表对应的数据长度的二进制数据的步骤,直至本地文件中所有数据表对应的二进制数据均转化为容器。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至5中任一项所述的高速处理海量数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311517981.2A CN117235078B (zh) | 2023-11-15 | 2023-11-15 | 一种高速处理海量数据的方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311517981.2A CN117235078B (zh) | 2023-11-15 | 2023-11-15 | 一种高速处理海量数据的方法、系统、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117235078A CN117235078A (zh) | 2023-12-15 |
CN117235078B true CN117235078B (zh) | 2024-01-30 |
Family
ID=89086577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311517981.2A Active CN117235078B (zh) | 2023-11-15 | 2023-11-15 | 一种高速处理海量数据的方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235078B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810237A (zh) * | 2012-11-13 | 2014-05-21 | 国际商业机器公司 | 数据管理方法和系统 |
CN105550345A (zh) * | 2015-12-25 | 2016-05-04 | 百度在线网络技术(北京)有限公司 | 文件操作方法和装置 |
CN105701145A (zh) * | 2014-12-12 | 2016-06-22 | Sap欧洲公司 | 用于数据传送的快速串行化 |
CN108605010A (zh) * | 2015-10-28 | 2018-09-28 | 分形工业有限公司 | 利用分布式计算图快速预测分析超大型数据集 |
CN113721862A (zh) * | 2021-11-02 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN114327857A (zh) * | 2021-11-02 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 操作数据处理方法、装置、计算机设备和存储介质 |
CN115168338A (zh) * | 2022-06-02 | 2022-10-11 | 阿里云计算有限公司 | 数据处理方法、电子设备及存储介质 |
CN116521181A (zh) * | 2023-07-05 | 2023-08-01 | 湖南速子文化科技有限公司 | 基于游戏系统的脚本数据处理方法、装置、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747814B2 (en) * | 2017-09-29 | 2020-08-18 | Oracle International Corporation | Handling semi-structured and unstructured data in a sharded database environment |
US11550485B2 (en) * | 2018-04-23 | 2023-01-10 | Sap Se | Paging and disk storage for document store |
US11275720B2 (en) * | 2020-01-29 | 2022-03-15 | International Business Machines Corporation | Multi-page splitting of a database index |
WO2022132362A1 (en) * | 2020-12-18 | 2022-06-23 | Microsoft Technology Licensing, Llc | Operation fragmentation with metadata serialization in query processing pushdowns |
US20230195710A1 (en) * | 2021-12-20 | 2023-06-22 | International Business Machines Corporation | Database Index Performance Improvement |
-
2023
- 2023-11-15 CN CN202311517981.2A patent/CN117235078B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810237A (zh) * | 2012-11-13 | 2014-05-21 | 国际商业机器公司 | 数据管理方法和系统 |
CN105701145A (zh) * | 2014-12-12 | 2016-06-22 | Sap欧洲公司 | 用于数据传送的快速串行化 |
CN108605010A (zh) * | 2015-10-28 | 2018-09-28 | 分形工业有限公司 | 利用分布式计算图快速预测分析超大型数据集 |
CN105550345A (zh) * | 2015-12-25 | 2016-05-04 | 百度在线网络技术(北京)有限公司 | 文件操作方法和装置 |
CN113721862A (zh) * | 2021-11-02 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN114327857A (zh) * | 2021-11-02 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 操作数据处理方法、装置、计算机设备和存储介质 |
CN115168338A (zh) * | 2022-06-02 | 2022-10-11 | 阿里云计算有限公司 | 数据处理方法、电子设备及存储介质 |
CN116521181A (zh) * | 2023-07-05 | 2023-08-01 | 湖南速子文化科技有限公司 | 基于游戏系统的脚本数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117235078A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
US10116325B2 (en) | Data compression/decompression device | |
US8396852B2 (en) | Evaluating execution plan changes after a wakeup threshold time | |
WO2016062251A1 (en) | Parallel history search and encoding for dictionary-based compression | |
CN111241108B (zh) | 基于键值对kv系统的索引方法、装置、电子设备和介质 | |
CN111523001B (zh) | 用于存储数据的方法、装置、设备以及存储介质 | |
CN111914010B (zh) | 业务处理的方法、装置、设备以及存储介质 | |
CN111488492B (zh) | 用于检索图数据库的方法和装置 | |
EP3816817A1 (en) | Method and apparatus for importing data into graph database, electronic device and medium | |
US11799961B2 (en) | File directory traversal method, apparatus, device, and medium | |
CN111177476A (zh) | 数据查询方法、装置、电子设备及可读存储介质 | |
CN111461343A (zh) | 模型参数更新方法及其相关设备 | |
CN117235078B (zh) | 一种高速处理海量数据的方法、系统、装置及存储介质 | |
CN109302449A (zh) | 数据写入方法、数据读取方法、装置和服务器 | |
JP7083004B2 (ja) | データ出力方法、データ取得方法、装置および電子機器 | |
CN111290714B (zh) | 数据读取方法和装置 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN112000429A (zh) | 一种云平台管理平台的连接跟踪删除方法、装置及设备 | |
CN115904240A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN112000707B (zh) | 可变长序列匹配方法、数据库访问方法及装置 | |
CN113742308A (zh) | 用于存储日志的方法和装置 | |
US9767191B2 (en) | Group based document retrieval | |
CN111427910A (zh) | 数据处理方法及装置 | |
CN111523000A (zh) | 用于导入数据的方法、装置、设备以及存储介质 | |
US9501534B1 (en) | Extreme value computation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |