CN112597248A - 一种大数据分区存储方法及装置 - Google Patents
一种大数据分区存储方法及装置 Download PDFInfo
- Publication number
- CN112597248A CN112597248A CN202011569127.7A CN202011569127A CN112597248A CN 112597248 A CN112597248 A CN 112597248A CN 202011569127 A CN202011569127 A CN 202011569127A CN 112597248 A CN112597248 A CN 112597248A
- Authority
- CN
- China
- Prior art keywords
- data
- partition
- identification value
- stored
- piece
- 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.)
- Granted
Links
- 238000005192 partition Methods 0.000 title claims abstract description 368
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 83
- 238000013500 data storage Methods 0.000 claims abstract description 17
- 238000000638 solvent extraction Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect 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
- 230000000750 progressive 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种大数据分区存储方法及装置,方法包括:获取待存入数据的占用存储空间,根据占用存储空间以及目标数据表每个分区的数据存储容量,对目标数据表的待存入数据进行分区,并得到每个分区的分区标识值;将待存入数据中各条数据的首字符与每个分区的分区标识值之间建立映射关系;根据各条数据的首字符,利用映射关系,确定待存入数据中各条数据所对应的分区标识值;根据映射关系,将每个分区的分区标识值添加到待存入数据中各条数据前;根据待存入数据中各条数据前添加的分区标识值,将各条数据存入对应分区中。由此可见,本申请实施例实现了将数据表的数据进行分区保存,有利于数据库对于数据的分区存储和分区查询。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种大数据分区存储方法及装置。
背景技术
当前的数据库中包括数据表,数据表用于存储数据库中的大数据。数据可以是以单字节编码(ASCII码)字符进行存储,也可以是以非ASCII码字符进行存储。在进行数据存储时,一个数据表在一个存储区域有存储数据的容量上限,基于此,数据库提供数据表的分区存储方法来实现对于大容量数据的存储。数据表的分区存储方法指的是将属于同一数据表的数据分成多个存储区域进行存储的方法,例如将同一数据表的数据均匀的存储在不同的磁盘中。但是,现有的数据表的分区存储方法只能针对ASCII码字符进行分区存储,无法针对非ASCII码字符进行分区存储。
综上,现有的数据表的分区存储方法只能针对ASCII码字符进行分区存储,无法针对非ASCII码字符进行分区存储。
发明内容
为了解决现有大数据技术中数据表的分区存储方法只能针对ASCII码字符进行分区存储,无法针对非ASCII码字符进行分区存储的问题,本申请提供了一种大数据分区存储方法,能够支持数据表的数据进行分区存储。
本申请实施例提供了一种大数据分区存储方法,所述方法包括:
获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个设备的存储区域进行数据的存储;
将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系;
根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值;
根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前;
根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。
可选的,所述分区标识值包括起始标识值和结束标识值;
所述将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系包括:
将所述待存入数据中各条数据的首字符与所述每个分区的起始标识值之间建立映射关系。
可选的,在获取待存入数据的占用存储空间时,还获取所述目标数据表的名称;
所述根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中包括:
根据目标数据表的名称,确定数据待存入的目标数据表;
根据所述待存入数据中各条数据前添加的分区标识值,确定所述待存入数据的分区;
将所述添加分区标识值的各条数据根据字段名称、字段值和唯一标识存入所述目标数据表的对应分区的相应位置。
可选的,所述将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系包括:
根据所述待存入数据中各条数据的首字符在所述目标数据表中出现的频度,确定所述待存入数据中各条数据的首字符对应的分区标识值,保证所述待存入数据的占用存储空间在所述每个分区均匀分布。
可选的,所述映射关系存储在第一数据库的数据字典表中,所述数据字典表的名称为目标数据表的名称;
所述根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值包括:
根据所述目标数据表的名称,得到所述第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表;
在所述数据字典表中,根据所述各条数据的首字符查询对应的所述分区标识值。
本申请实施例还提供一种大数据分区查询方法,所述方法包括:
获取用户输入的目标数据表的名称和查询数据;
根据所述目标数据表的名称,得到第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表,所述数据字典表存储有所述查询数据和所述目标数据表每个分区的分区标识值的映射关系;
在所述第一数据库的数据字典表中查找所述查询数据的首字符对应的分区标识值;
将所述分区标识值添加到所述查询数据前;
根据所述查询数据前添加的分区标识值,在对应的分区中查询对应的数据。
本申请实施例还提供一种大数据分区存储装置,所述装置包括:
获取单元,用于获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个设备的存储区域进行数据的存储;
建立映射关系单元,用于将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系;
确定单元,用于根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值;
添加单元,用于根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前;
存储单元,用于根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。
可选的,所述分区标识值包括起始标识值和结束标识值;
所述建立映射关系单元将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系包括:
所述建立映射关系单元将所述待存入数据中各条数据的首字符与所述每个分区的起始标识值之间建立映射关系。
可选的,所述获取单元在获取待存入数据的占用存储空间时,还获取所述目标数据表的名称;
所述添加单元根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中包括:
所述添加单元根据目标数据表的名称,确定数据待存入的目标数据表;
所述添加单元根据所述待存入数据中各条数据前添加的分区标识值,确定所述待存入数据的分区;
所述添加单元将所述添加分区标识值的各条数据根据字段名称、字段值和唯一标识存入所述目标数据表的对应分区的相应位置。
本申请实施例还提供一种大数据分区查询装置,所述装置包括:
获取单元,用于获取用户输入的目标数据表的名称和查询数据;
确定单元,用于根据所述目标数据表的名称,得到第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表,所述数据字典表存储有所述查询数据和所述目标数据表每个分区的分区标识值的映射关系;
查找单元,用于在所述第一数据库的数据字典表中查找所述查询数据的首字符对应的分区标识值;
添加单元,用于将所述分区标识值添加到所述查询数据前;
查询单元,用于根据所述查询数据前添加的分区标识值,在对应的分区中查询对应的数据。
与现有技术相比,本申请至少具有以下优点:
本申请实施例提供了一种大数据分区存储方法,方法包括:获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个设备的存储区域进行数据的存储;将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系;根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值;根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前;根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。由此可见,本申请实施例将目标数据表分成多个设备的存储区域,每个存储区域利用分区标识值作为区分,通过构建待存入数据各条数据的首字符与分区标识值的映射关系,将分区标识值添加到各条数据前,根据各条数据前的分区标识值,将各条数据存入对应分区。基于此,本申请实施例实现了将数据表的数据进行分区保存,有利于数据库对于数据的分区存储和分区查询。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请提供的一种大数据分区存储方法实施例的流程图;
图2为本申请提供的一种数据字典表的示意图;
图3为本申请提供的一种大数据分区查询方法实施例的流程图;
图4为本申请提供的一种大数据分区存储装置实施例的结构框图;
图5为本申请提供的一种大数据分区查询装置实施例的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术所述,ASCII码为美国标准信息交换代码,由128个字符组成,包括英文字母、数字、特殊符号,ASCII码字符只占据一个字节。非ASCII码字符占据多个字节,非ASCII码字符包括拉丁文、希腊文、日文、韩文、中文等。
参见图1,该图为本申请实施例提供的一种大数据分区存储方法的流程图。
本实施例提供的大数据分区存储方法包括如下步骤:
步骤S101:获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个存储区域进行数据的存储。
在本申请的实施例中,待存入数据的占用存储空间指的是待存入目标数据库中目标数据表的数据的占用存储空间,其中,待存入目标数据库为能够实现数据分区存储功能的数据库,目标数据表为目标数据库中的表,可以通过确定目标数据表的名称确定目标数据表。目标数据表在每台设备上有存储容量上限。数据分区存储指的是将属于同一数据表的数据分成多个设备的存储区域进行存储的方法,例如将同一数据表的数据均匀的存储在不同的磁盘中。可以获取待存入数据的占用存储空间,以便后续对待存入数据的处理。在获取待存入数据的占用存储空间时,还可以获取目标数据库的名称和目标数据表的名称,确定待存入数据的存储数据库和存储数据表。
作为一种示例,目标数据库可以是HBase数据库,目标数据表的名称可以是客户名称查询(ACDM_PL_CUST_NAM_QRY)表,目标数据表每个分区的数据存储容量上限是10GB。
需要说明的是,可以根据待存入数据的占用存储空间和目标数据表每个分区的数据存储容量,对目标数据表的待存入数据进行分区,并得到每个分区的分区标识值。还可以根据待存入数据的占用存储空间、目标数据表每个分区的数据存储容量和目标数据表的预留存储容量,对目标数据表的待存入数据进行分区,并得到每个分区的分区标识值。
值得注意的是,分区标识值包括起始标识值(start key)和结束标识值(endkey)。
作为一种示例,在HBase数据库包括的CRUV数据库中创建客户名称查询表(ACDM_PL_CUST_NAM_QRY表),该表的待存入数据的占用存储空间大小约为22GB,该表的数据存储容量上限是10GB,22/10=2.2,向上取整数为3,则可以将目标数据表分为3个区域进行存储,分区设计以1、2作为分区边界值,划分成3个区间,划分的区间标识值为1)、[1,2)、[2。在实际应用中,是以ASCII码的规则来进行分区,最开始的区间没有start key,最后的区间没有end key。
作为一种示例,在HBase数据库包括的CRUV数据库中创建客户名称查询表(ACDM_PL_CUST_NAM_QRY表),该表的待存入数据的占用存储空间大小约为22GB,该表的数据存储容量上限是10GB,为该表预留22GB空间用于数据增长,((22+22)/10)=4.4,向上取整数为5,则可以将目标数据表分为5个区域进行存储,分区设计以1、2、3、4作为分区边界值,划分成5个区间,划分的区间标识值1)、[1,2)、[2,3)、[3,4)、[4。
步骤S102:将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系。
在本申请的实施例中,可以建立待存入数据中各条数据的首字符和目标数据表每个分区的分区标识值的映射关系,即可以根据待存入数据中各条数据的首字符和映射关系,得到目标数据表每个分区的分区标识值。
作为一种实现方式,可以建立待存入数据中各条数据的首字符与目标数据表每个分区的起始标识值的映射关系。
作为一种示例,在HBase数据库中创建客户名称查询表,该表的待存入数据中包括客户中文姓名,则可以建立客户中文姓名的首字符,即姓与客户名称查询表每个分区的起始标识值的映射关系。若客户名称查询表有5个分区,可以统计在该表中出现的姓,按照一定的排列顺序将其分为5个部分,并建立每个姓与每个分区标识值的映射关系,如图2所示。具体的,排列顺序可以是百家姓的顺序。
需要说明的是,可以根据待存入数据中各条数据的首字符在目标数据表中出现的频度,确定待存入数据中各条数据的首字符对应的分区标识值,保证待存入数据的占用存储空间在每个分区均匀分布。也就是说,可以统计各条数据的首字符在全部待存入数据中出现的频度,按照频度的顺序确定待存入数据的各条数据的分区和分区标识值,以便待存入数据的占用存储空间在每个分区均匀分布,不会出现数据倾斜现象,即数据在某个分区特别多,而剩下的分区数据非常少。具体的,若待存入数据的数据来源为关系型数据库,可以用代码语句SQL语句来统计查询各条数据的首字符的数据分布情况。
值得注意的是,统计完毕各条数据的首字符在待存入数据中的频度后,可以按照频度的顺序分为N个部分,N为分区个数。频度为前((N-1)/N)*100%的数据,对应的分区为前N-1个分区,频度为后(1/N)*100%的数据,对应的分区为第N个分区,即最后一个分区。
作为一种示例,在HBase数据库中创建客户名称查询表,该表的待存入数据中包括客户中文姓名,若客户名称查询表有5个分区,则分别为1)、[1,2)、[2,3)、[3,4)、[4,分区标识值可以为0、1、2、3和4。可以统计在该表中出现的姓,按照频度的顺序将其分为5个部分,即N=5,则((N-1)/N)*100%为80%,(1/N)*100%为20%。经统计,客户名称查询表中“王”、“李”、“张”等125个姓氏出现频度占前80%,根据HBase数据库中的分区标识值(即1、2、3和4)将数据均匀地分布到客户名称查询表的每一个分区中。如图2所示,例如,将姓氏“王”和分区标识值“0”建立映射关系,即数据的首字符为“王”的数据存入1)分区;将姓氏“李”和分区标识值“0”建立映射关系,即数据的首字符为“李”的数据存入1)分区;将姓氏“张”和分区标识值“1”建立映射关系,即数据的首字符为“张”的数据存入[1,2)分区;将姓氏“许”和分区标识值“3”建立映射关系,即数据的首字符为“许”的数据存入[3,4)分区。在客户名称查询表中出现频度较低为后20%的姓氏,和分区标识值“4”建立映射关系,即存入最后一个分区[4分区。
步骤S103:根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值。
在本申请的实施例中,在建立了各条数据的首字符与每个分区的分区标识值的映射关系之后,可以根据各条数据的首字符和映射关系,确定待存入数据中各条数据对应的分区和分区标识值。
需要说明的是,各条数据的首字符与每个分区的分区标识值的映射关系存储在第一数据库的数据字典表中,数据字典表的名称为目标数据表的名称。具体的,第一数据库可以是关系型数据库,例如Oracle数据库。映射关系可以是字典代码(code)和字典取值(name)的关系,其中,字典代码为各条数据的首字符,字典取值为分区标识值。在进行映射关系的存储之前,还可以对要存入的数据字典表中的各条数据的首字符与每个分区的分区标识值进行校验,校验是否有垃圾数据出现,若无,则将各条数据的首字符与每个分区的分区标识值存入该数据字典表。
值得注意的是,可以根据目标数据表的名称,得到第一数据库中数据字典表的名称,确定第一数据库的数据字典表,该数据字典表存储了待存入目标数据表的各条数据的首字符和每个分区的分区标识值的映射关系。在该数据字典表中,根据各条数据的首字符查询对应的分区标识值。
作为一种示例,目标数据表为客户名称查询表,第一数据库中数据字典表的名称也为客户名称查询表。在第一数据库中确定了数据字典表之后,根据字典代码(code)在该表中查询对应的字典取值(name),即根据各条数据的首字符查询对应的分区标识值,如图2所示,字典代码(code)为许,对应的字典取值(name)为3,即数据的首字符为许,对应的分区标识值为3。
步骤S104:根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前。
在本申请的实施例中,建立了各条数据的首字符与每个分区的分区标识值的映射关系之后,可以根据映射关系,将每个分区的分区标识值添加到对应的待存入数据中各条数据前。
作为一种示例,待存入数据中各条数据包括客户中文姓名,例如张三,在确定张三可以存入客户名称查询表的[1,2)分区后,将分区标识值1添加到张三前,即1-张三。
步骤S105:根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。
在本申请的实施例中,可以根据待存入数据中各条数据前添加的分区标识值,将各条数据存入分区标识值对应的分区中。
需要说明的是,在具体将待存入数据存入目标数据表对应的分区中,有以下存储流程:首先根据目标数据库的名称,确定待存入数据的存储数据库,其次根据目标数据表的名称,确定数据待存入的目标数据表,之后根据待存入数据中各条数据前添加的分区标识值,确定待存入数据中各条数据的分区,将添加分区标识值的各条数据根据目标数据库的名称和目标数据表的名称存入对应分区中,具体是将添加分区标识值的各条数据根据字段名称、字段值和唯一标识存入目标数据表的对应分区的相应位置中。
在实际应用中,当待存入数据的各条数据存入目标数据表的对应的分区之后,可以返回数据存储成功标识,以显示数据已经成功存储。
本申请实施例提供了一种大数据分区存储方法,方法包括:获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个设备的存储区域进行数据的存储;将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系;根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值;根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前;根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。由此可见,本申请实施例将目标数据表分成多个设备的存储区域,每个存储区域利用分区标识值作为区分,通过构建待存入数据各条数据的首字符与分区标识值的映射关系,将分区标识值添加到各条数据前,根据各条数据前的分区标识值,将各条数据存入对应分区。基于此,本申请实施例实现了将数据表的数据进行分区保存,尤其是非ASCII码字符的分区存储,有利于数据库对于数据的分区存储和分区查询。
参见图3,该图为本申请实施例提供的一种大数据分区查询方法的流程图。
本实施例提供的大数据分区查询方法包括如下步骤:
步骤S301:获取用户输入的目标数据表的名称和查询数据。
在本申请的实施例中,用户在查询界面输入目标数据表的名称和查询数据,根据用户的输入获取目标数据表的名称和查询数据。
作为一种示例,目标数据表的名称为客户名称查询表,查询数据为张三。
步骤S302:根据所述目标数据表的名称,得到第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表,所述数据字典表存储有所述查询数据和所述目标数据表每个分区的分区标识值的映射关系。
在本申请的实施例中,根据目标数据表的名称,确定存储有查询数据和目标数据表每个分区的分区标识值的映射关系的数据字典表的名称。该数据字典表属于第一数据库,第一数据库可以是关系型数据库,例如Oracle数据库。根据数据字典表的名称,在第一数据库确定数据字典表。
作为一种示例,目标数据表为客户名称查询表,第一数据库中数据字典表的名称也为客户名称查询表,该客户名称查询表中存储有查询数据和每个分区的分区标识值的映射关系。映射关系可以是字典代码(code)和字典取值(name)的关系,其中,字典代码为查询数据的首字符,字典取值为分区标识值。
步骤S303:在所述第一数据库的数据字典表中查找所述查询数据的首字符对应的分区标识值。
在本申请的实施例中,在确定了第一数据库的数据字典表之后,可以利用数据字典表中存储的映射关系,根据查询数据的首字符查找对应的分区标识值。
作为一种示例,在第一数据库中确定了数据字典表之后,根据字典代码(code)在该表中查询对应的字典取值(name),即根据查询数据的首字符查询对应的分区标识值,例如,查询数据为许四,字典代码(code)为许,对应的字典取值(name)为3,即查询数据的首字符为许,对应的分区标识值为3。
步骤S304:将所述分区标识值添加到所述查询数据前。
在本申请的实施例中,根据数据字典表确定了查询数据对应的分区标识值之后,将该分区标识值添加到查询数据前。
作为一种示例,查询数据为客户中文姓名,例如张三,根据数据字典表确定张三存储在客户名称查询表的[1,2)分区后,将分区标识值1添加到张三前,即1-张三。
步骤S305:根据所述查询数据前添加的分区标识值,在对应的分区中查询对应的数据。
在本申请的实施例中,根据查询数据前添加的目标数据表的分区标识值,在目标数据表的对应的分区查询想要获得的数据。
在实际应用中,可以根据目标数据表的表名确定目标数据表,根据用户输入的查询数据,在查询数据前添加目标数据表的分区标识值,在对应的分区查询数据。
作为一种示例,目标数据表为客户名称查询表,查询数据为张三,查询数据所在的分区为[1,2)分区,在客户名称查询表的[1,2)分区查询1-张三开头的全部数据。
需要说明的是,在查询完毕所述的结果之后,向查询页面返回查询结果。
由此可见,本申请实施例将目标数据表分成多个设备的存储区域,每个存储区域利用分区标识值作为区分,通过查询数据的首字符与分区标识值的映射关系,将分区标识值添加到查询数据前,根据查询数据前的分区标识值,在对应分区查询数据。基于此,本申请实施例实现了将数据表的数据进行分区存储后再进行查询的过程,尤其是非ASCII码字符的分区存储和查询。
基于以上实施例提供的一种大数据分区存储方法,本申请实施例还提供了一种大数据分区存储装置,下面结合附图来详细说明其工作原理。
参见图4,该图为本申请实施例提供的一种大数据分区存储装置的结构框图。
本实施例提供的大数据分区存储装置400包括:
获取单元410,用于获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个存储区域进行数据的存储;
建立映射关系单元420,用于将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系;
确定单元430,用于根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值;
添加单元440,用于根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前;
存储单元450,用于根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。
可选的,所述分区标识值包括起始标识值和结束标识值;
所述建立映射关系单元420将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系包括:
所述建立映射关系单元420将所述待存入数据中各条数据的首字符与所述每个分区的起始标识值之间建立映射关系。
可选的,所述获取单元410在获取待存入数据的占用存储空间时,还获取所述目标数据表的名称;
所述添加单元440根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中包括:
所述添加单元440根据目标数据表的名称,确定数据待存入的目标数据表;
所述添加单元440根据所述待存入数据中各条数据前添加的分区标识值,确定所述待存入数据的分区;
所述添加单元440将所述添加分区标识值的各条数据根据字段名称、字段值和唯一标识存入所述目标数据表的对应分区的相应位置。
基于以上实施例提供的一种大数据分区查询方法,本申请实施例还提供了一种大数据分区查询装置,下面结合附图来详细说明其工作原理。
参见图5,该图为本申请实施例提供的一种大数据分区查询装置的结构框图。
本实施例提供的大数据分区查询装置500包括:
获取单元510,用于获取用户输入的目标数据表的名称和查询数据;
确定单元520,用于根据所述目标数据表的名称,得到第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表,所述数据字典表存储有所述查询数据和所述目标数据表每个分区的分区标识值的映射关系;
查找单元530,用于在所述第一数据库的数据字典表中查找所述查询数据的首字符对应的分区标识值;
添加单元540,用于将所述分区标识值添加到所述查询数据前;
查询单元550,用于根据所述查询数据前添加的分区标识值,在对应的分区中查询对应的数据。
当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。
需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种大数据分区存储方法,其特征在于,所述方法包括:
获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个存储区域进行数据的存储;
将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系;
根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值;
根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前;
根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。
2.根据权利要求1所述的方法,其特征在于,所述分区标识值包括起始标识值和结束标识值;
所述将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系包括:
将所述待存入数据中各条数据的首字符与所述每个分区的起始标识值之间建立映射关系。
3.根据权利要求1所述的方法,其特征在于,在获取待存入数据的占用存储空间时,还获取所述目标数据表的名称;
所述根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中包括:
根据目标数据表的名称,确定数据待存入的目标数据表;
根据所述待存入数据中各条数据前添加的分区标识值,确定所述待存入数据的分区;
将所述添加分区标识值的各条数据根据字段名称、字段值和唯一标识存入所述目标数据表的对应分区的相应位置。
4.根据权利要求1所述的方法,其特征在于,所述将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系包括:
根据所述待存入数据中各条数据的首字符在所述目标数据表中出现的频度,确定所述待存入数据中各条数据的首字符对应的分区标识值,保证所述待存入数据的占用存储空间在所述每个分区均匀分布。
5.根据权利要求1所述的方法,其特征在于,所述映射关系存储在第一数据库的数据字典表中,所述数据字典表的名称为目标数据表的名称;
所述根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值包括:
根据所述目标数据表的名称,得到所述第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表;
在所述数据字典表中,根据所述各条数据的首字符查询对应的所述分区标识值。
6.一种大数据分区查询方法,其特征在于,所述方法包括:
获取用户输入的目标数据表的名称和查询数据;
根据所述目标数据表的名称,得到第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表,所述数据字典表存储有所述查询数据和所述目标数据表每个分区的分区标识值的映射关系;
在所述第一数据库的数据字典表中查找所述查询数据的首字符对应的分区标识值;
将所述分区标识值添加到所述查询数据前;
根据所述查询数据前添加的分区标识值,在对应的分区中查询对应的数据。
7.一种大数据分区存储装置,其特征在于,所述装置包括:
获取单元,用于获取待存入数据的占用存储空间,根据所述占用存储空间以及目标数据表每个分区的数据存储容量,对所述目标数据表的待存入数据进行分区,并得到每个分区的分区标识值,所述分区为分配多个存储区域进行数据的存储;
建立映射关系单元,用于将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系;
确定单元,用于根据所述各条数据的首字符,利用所述映射关系,确定所述待存入数据中各条数据所对应的分区标识值;
添加单元,用于根据所述映射关系,将所述每个分区的分区标识值添加到所述待存入数据中各条数据前;
存储单元,用于根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中。
8.根据权利要求7所述的装置,其特征在于,所述分区标识值包括起始标识值和结束标识值;
所述建立映射关系单元将所述待存入数据中各条数据的首字符与所述每个分区的分区标识值之间建立映射关系包括:
所述建立映射关系单元将所述待存入数据中各条数据的首字符与所述每个分区的起始标识值之间建立映射关系。
9.根据权利要求8所述的装置,其特征在于,所述获取单元在获取待存入数据的占用存储空间时,还获取所述目标数据表的名称;
所述添加单元根据所述待存入数据中各条数据前添加的分区标识值,将所述各条数据存入对应分区中包括:
所述添加单元根据目标数据表的名称,确定数据待存入的目标数据表;
所述添加单元根据所述待存入数据中各条数据前添加的分区标识值,确定所述待存入数据的分区;
所述添加单元将所述添加分区标识值的各条数据根据字段名称、字段值和唯一标识存入所述目标数据表的对应分区的相应位置。
10.一种大数据分区查询装置,其特征在于,所述装置包括:
获取单元,用于获取用户输入的目标数据表的名称和查询数据;
确定单元,用于根据所述目标数据表的名称,得到第一数据库的数据字典表的名称,确定所述第一数据库的数据字典表,所述数据字典表存储有所述查询数据和所述目标数据表每个分区的分区标识值的映射关系;
查找单元,用于在所述第一数据库的数据字典表中查找所述查询数据的首字符对应的分区标识值;
添加单元,用于将所述分区标识值添加到所述查询数据前;
查询单元,用于根据所述查询数据前添加的分区标识值,在对应的分区中查询对应的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011569127.7A CN112597248B (zh) | 2020-12-26 | 2020-12-26 | 一种大数据分区存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011569127.7A CN112597248B (zh) | 2020-12-26 | 2020-12-26 | 一种大数据分区存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597248A true CN112597248A (zh) | 2021-04-02 |
CN112597248B CN112597248B (zh) | 2024-04-12 |
Family
ID=75202320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011569127.7A Active CN112597248B (zh) | 2020-12-26 | 2020-12-26 | 一种大数据分区存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597248B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810244A (zh) * | 2013-12-09 | 2014-05-21 | 北京理工大学 | 一种基于数据分布的分布式数据存储系统的扩容方法 |
CN103995879A (zh) * | 2014-05-27 | 2014-08-20 | 华为技术有限公司 | 基于olap系统的数据查询方法、装置及系统 |
CN105574054A (zh) * | 2014-11-06 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
CN106815267A (zh) * | 2015-12-01 | 2017-06-09 | 中兴通讯股份有限公司 | 数据存储方法和装置 |
CN111488323A (zh) * | 2020-04-14 | 2020-08-04 | 中国农业银行股份有限公司 | 一种数据处理方法、装置及电子设备 |
CN111506569A (zh) * | 2020-03-02 | 2020-08-07 | 平安科技(深圳)有限公司 | 数据存储方法、装置、电子装置 |
-
2020
- 2020-12-26 CN CN202011569127.7A patent/CN112597248B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810244A (zh) * | 2013-12-09 | 2014-05-21 | 北京理工大学 | 一种基于数据分布的分布式数据存储系统的扩容方法 |
CN103995879A (zh) * | 2014-05-27 | 2014-08-20 | 华为技术有限公司 | 基于olap系统的数据查询方法、装置及系统 |
CN105574054A (zh) * | 2014-11-06 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
CN106815267A (zh) * | 2015-12-01 | 2017-06-09 | 中兴通讯股份有限公司 | 数据存储方法和装置 |
CN111506569A (zh) * | 2020-03-02 | 2020-08-07 | 平安科技(深圳)有限公司 | 数据存储方法、装置、电子装置 |
CN111488323A (zh) * | 2020-04-14 | 2020-08-04 | 中国农业银行股份有限公司 | 一种数据处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112597248B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117417B (zh) | 一种读优化的内存数据库Trie树索引方法 | |
JP2670383B2 (ja) | 部分キー分岐機能を備えたプレフィックス探索ツリー | |
KR100284778B1 (ko) | 내용기반 이미지 검색을 위한 고차원 색인구조의 삽입 방법 | |
US20080016322A1 (en) | Fast aggregation of compressed data using full table scans | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
WO1998004980A1 (en) | Database apparatus | |
EP2243093A1 (en) | Method and system for discovery and modification of data clusters and synonyms | |
CN109086456B (zh) | 数据索引方法及装置 | |
CN110928882B (zh) | 一种基于改进红黑树的内存数据库索引方法及系统 | |
CN110009514B (zh) | 数据的提取方法、装置、终端及计算机可读存储介质 | |
TW201514734A (zh) | 資料庫管理方法、資料庫管理系統,以及資料庫樹狀結構 | |
KR101640733B1 (ko) | 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법 | |
CN112148738A (zh) | 哈希冲突处理方法及系统 | |
CN113297266B (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN113849499A (zh) | 数据的查询方法、装置、存储介质及电子装置 | |
CN112597248A (zh) | 一种大数据分区存储方法及装置 | |
CN110399375B (zh) | 一种数据表索引创建方法及装置 | |
CA2418093A1 (en) | Data compiling method | |
CN116450607A (zh) | 数据处理方法、设备及存储介质 | |
CN108509585A (zh) | 一种异构数据实时交互优化处理方法 | |
CN115543993A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113486023A (zh) | 数据库分库分表的方法及装置 | |
CN111428140B (zh) | 高并发数据检索方法、装置、设备及存储介质 | |
KR100426995B1 (ko) | 문서 색인 시스템 및 그 방법 | |
CN109726254B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |