一种基于HBase数据表的数据处理方法、装置、设备及存储介质与流程

xiaoxiao17天前  17


一种基于hbase数据表的数据处理方法、装置、设备及存储介质
技术领域
1.本发明涉及数据处理技术领域,尤其涉及大数据技术领域,具体涉及一种hbase数据表的数据处理方法、装置、设备及存储介质。


背景技术:

2.随着信息技术的快速发展,hadoop在各行业获得了广泛应用,为各行业提供了大数据解决方案。hadoop是一个分布式系统基础架构,以一种可靠、高效、可伸缩的方式进行数据存储和处理,满足各行业海量数据查询需求。
3.hadoop数据主要存储在hbase数据库中,hbase数据表存储数据量较大,例如存储的数据量超过10gb(gigabyte,吉字节)时,会自动进行分区,但对性能有巨大的影响。hbase提供了预分区功能,即用户可以在创建表的时候对表按照一定的规则分区。hbase仅支持使用ascii码字符(占1个字节)进行预分区,不支持使用非ascii(american standard code for information interchange,美国信息交换标准代码)码字符(占多个字节)进行预分区。


技术实现要素:

4.本发明提供了一种基于hbase数据表的数据处理方法、装置、设备及存储介质,以实现基于非ascii码对数据表进行预分区。
5.根据本发明的一方面,提供了一种基于hbase数据表的数据处理方法,包括:
6.根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量;
7.统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ascii码字符;
8.根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;
9.根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表;
10.基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。
11.根据本发明的另一方面,提供了一种基于hbase数据表的数据处理装置,包括:
12.分区数量确定模块,用于根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量;
13.哈希值获取模块,用于统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ascii码字符;
14.映射表构建模块,用于根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;
15.分区区间确定模块,用于根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表;
16.数据导入模块,用于基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。
17.根据本发明的另一方面,提供了一种电子设备,电子设备包括:
18.至少一个处理器;以及
19.与至少一个处理器通信连接的存储器;其中,
20.存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本发明任一实施例的基于hbase数据表的数据处理方法。
21.根据本发明的另一方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现本发明任一实施例的基于hbase数据表的数据处理方法。
22.本发明实施例的技术方案,通过根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量;统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ascii码字符;根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表;基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。采用上述技术方案,可以基于非ascii码字符对hbase数据表进行预分区,提高了对hbase数据表进行预分区的灵活性。
23.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
24.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1a是根据本发明实施例一提供的一种基于hbase数据表的数据处理方法的流程图;
26.图1b是根据本发明实施例一提供的一种候选字符、候选字符出现频度和候选字符哈希值的关联图;
27.图2a是根据本发明实施例二提供的一种基于hbase数据表的数据处理方法的流程图;
28.图2b是根据本发明实施例二提供的一种1位目标数据位的候选数字出现频率图;
29.图2c是根据本发明实施例二提供的一种2位目标数据位的候选数字出现频率图;
30.图3是根据本发明实施例三提供的一种基于hbase数据表的数据处理方法的流程图;
31.图4是根据本发明实施例四提供的一种基于hbase数据表的数据处理装置的结构图;
32.图5是根据本发明实施例五提供的一种基于hbase数据表的数据处理装置的结构图;
33.图6是本发明实施例六提供的一种基于hbase数据表的数据处理方法的电子设备的结构图。
具体实施方式
34.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
35.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
36.此外,还需要说明的是,本发明的技术方案中,所涉及的数据表数据等的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
37.实施例一
38.图1a为本发明实施例一提供的一种基于hbase数据表的数据处理方法的流程图,本实施例可适用于基于非ascii码字符对hbase数据表进行预分区的情况,该方法可以由基于hbase数据表的数据处理装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于电子设备中。
39.如图1a所示,该方法包括:
40.s101、根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量。
41.本实施例中,空间占用信息可以是该关系型数据表在关系型数据库中的占用空间的数据值;hbase数据表即为hbase数据库中的数据表;预分区可以是将该hbase数据表划分为至少两个分区表;分区表可以是更细粒度的子数据表。
42.具体的,若关系型数据表的空间占用信息小于等于第一预设值,则不对hbase数据表进行预分区,无需获取hbase数据表预分区的分区数量;若关系型数据表的空间占用信息大于第一预设值,则在hbase数据表中预留该空间占用信息大小的空间,将各分区将要存储的数据值作为第二预设值,确定设定倍数的空间占用信息与第二预设值的比值,将该比值向上取整,得到hbase数据表预分区的分区数量。其中,第一预设值和第二预设值、设定倍数可以由技术人员根据实际需求或实践经验自主确定,本发明对此不做限定。
43.示例性的,关系型数据表的空间占用信息为3gb,第一预设值为5gb,空间占用信息
小于第一预设值,不对hbase数据表进行预分区。
44.示例性的,关系型数据表的空间占用信息为22gb,第一预设值为5gb,第二预设值为10gb,空间占用信息大于第一预设值。在hbase数据表中预留22gb的空间,两倍的空间占用信息与第二预设值的比值为4.4,向上取整为5,则hbase数据表预分区的分区数量为5。
45.可以理解的是,采用上述方案,确定hbase数据表预分区的分区数量时,在hbase数据表中预留该空间占用信息大小的空间,可以根据关系型数据表中的实际数据量对hbase数据表表进行调整,提高了hbase数据表预分区的分区数量确定的灵活性。
46.在一个具体实施例中,可以根据关系型数据库连接地址、关系型数据库名称和关系型数据表名称,自动确定关系型数据表的空间占用信息。
47.s102、统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值。
48.本实施例中,候选字符可以是与关系型数据表中数据关联的字符,记录于对应数据的数据字段中。候选字符为非ascii码字符,例如可以是汉字、阿拉伯文和西里尔字母等。分布频度可以是相应候选字符在关系型数据表中出现的频度。
49.具体的,根据各候选字符在关系型数据表中出现的次数和关系型数据表中总数据记录数,统计各候选字符的分布频度,通过哈希函数对各候选字符进行哈希映射,得到各候选字符的哈希值。需要说明的是,哈希函数可以采用现有技术中的任意一种,本发明对此不作限定,例如哈希函数可以是直接定址法哈希函数、数字分析法哈希函数和平方取中法哈希函数等。优选的,哈希函数为得到的各哈希值冲突概率较小的哈希函数。
50.需要说明的是,哈希值的数据位为多位,优选的可以为5位。
51.如图1b的候选字符、候选字符出现频度与候选字符哈希值的关联图所示,其中第一列为候选字符;第二列为候选字符出现频度,单位为%;第三列为候选字符哈希值。
52.s103、根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表。
53.其中,预分区映射表可以用于记录各候选字符与其所在分区的关联关系。
54.具体的,根据关系型数据表中的各候选字符、各候选字符的分布频度和各候选字符的哈希值,确定哈希值的截取位数,通过候选字符与对应的哈希值截取位数,构建预分区映射表。
55.s104、根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表。
56.其中,分局区间可以是预分区表中各分区在hbase数据表中所占的区间;hbase分区表可以是由预分区操作得到的各分区表组成的数据表。
57.具体的,根据分区数量、各候选字符的分布频度和预分区映射表,确定各分区表数据能够均匀分布的分区区间,根据各分区表的分区区间,对hbase数据表进行预分区操作,得到hbase分区表。
58.s105、基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。
59.本实施例中,根据关系型数据表中的数据字段的候选字符在预分区映射表中的对应分区,将关系型数据表中的数据导入hbase分区表中对应的各分区表的分区区间内。
60.本发明实施例通过根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量;统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ascii码字符;根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表;基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。采用上述技术方案,可以基于非ascii码字符对hbase数据表进行预分区,提高了对hbase数据表进行预分区的灵活性。
61.实施例二
62.图2a为本发明实施例二提供的一种基于hbase数据表的数据处理方法的流程图,本实施例与上述实施例的基础上,对预分区映射表的构建操作进行了优化改进。
63.进一步地,将“根据关系型数据表中的至少一个候选字符,以及候选字符的分布频度和哈希值,构建预分区映射表”细化为“根据关系型数据表中的至少一个候选字符的分布频度和哈希值,确定目标哈希值截取位数;根据目标哈希值截取位数,对候选字符对应的哈希值进行截取,得到目标截取数字;基于预设的数据拼接规则,将候选字符、哈希值截取位数和目标截取数字进行拼接,以得到预分区映射表”,以完善预分区映射表的获取操作。
64.需要说明的是,在本发明实施例中未详述部分,可参见其他实施例的相关表述,在此不再赘述。
65.如图2a所示,该方法包括:
66.s201、根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量。
67.s202、统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值。
68.其中,候选字符为非ascii码字符。
69.s203、根据关系型数据表中的至少一个候选字符的分布频度和哈希值,确定目标哈希值截取位数。
70.其中,目标哈希值截取位数可以是对候选字符的哈希值进行截取的截取位数,例如哈希值的首位、或者哈希值的前两位。
71.可选的,对关系型数据表中候选字符的哈希值的目标数据位上的数字进行统计,得到目标数据位的至少一组候选数字;其中,目标数据位包括哈希值中的至少一个数据位;根据候选字符的分布频度,确定候选数字的出现频率;从至少一组候选数字的出现频率中,确定最大出现频率;根据最大出现频率和可存储频率,确定目标哈希值截取位数。
72.其中,目标数据位即是候选字符的哈希值中的需进行统计的数据位;候选数字即是各候选字符哈希值的目标数据位上的数字;出现频率即为候选数字在各候选字符的哈希值中出现的频率。可存储频率可以是每个分区能够存储的具有相同候选数字的哈希值的候选字符对应数据的频率,用于表征可以均匀存储相同候选字符的能力,可以通取过分区数量的倒数确定。例如分区数量为5,则可存储频率为0.2。
73.具体的,按照从左至右的数据为顺序,对关系型数据表中候选字符的哈希值的第一个数据位上的数字进行统计,得到至少一组候选数字。统计该至少一组候选数字,确定各不同候选数字在各候选字符的哈希值中的出现频率,并从中确定最大出现频率。
74.在一个可选实施例中,若最大出现频率小于可存储频率,则确定目标数据位对应的数据位的位数,作为目标哈希值截取位数;若最大出现频率大于可存储频率,则增加目标数据位的数据位,以更新目标数据位,并根据新的目标数据位的至少一组候选数字,重新确定目标哈希值截取位数。
75.示例性的,如图2b所示,分区数量为5,第一列为候选数字,第二列表示目标数据位为1位,即哈希值的首位,第三列为对应候选数字的出现频率,单位为%。其中,最大出现频率为53.05%,可存储频率为0.2,最大出现频率大于可存储频率,无法完成预分区。将目标数据位增加至2位,即哈希值的前两位,如图2c所示,第一列为候选数字,第二列表示目标数据位为2位,第三列为对应候选数字的出现频率,单位为%。其中,最大出现频率为15.10%,最大出现频率小于可存储频率,可以进行预分区,则目标哈希值截取位数为2位。
76.可以理解的是,采用上述技术方案,根据最大出现频率与可存储频率的大小关系,确定目标哈希值截取位数,或增加目标数据位的数据位,重新确定目标哈希值截取位数,提高了确定目标哈希值截取位数的灵活性。
77.在另一个可选实施例中,若分区数量过大,导致分区表的可存储频率过低,根据一个候选字符的五位哈希值无法进行预分区,则可以根据候选字符的后一个字符的哈希值于候选字符的哈希值拼接,重新确定目标哈希值截取位数。
78.可以理解的是,采用上述技术方案,通过统计候选字符的哈希值目标数据位上的数字,获取候选数字;根据候选字符的分布频度确定候选字符的出现频率,并从中确定最大出现频率;根据最大出现频率和可存储频率确定目标哈希值截取位数,可以确保各分区内能够存储最大出现频率数字的对应的候选字符所对应的数据,从而提高了根据预分区映射表进行数据导入的稳定性。
79.s204、根据目标哈希值截取位数,对候选字符对应的哈希值进行截取,得到目标截取数字。
80.具体的,根据目标哈希值截取位数,对各候选字字符对应的哈希值进行截取,得到各候选字符对应的目标截取数字。
81.s205、基于预设的数据拼接规则,将候选字符、哈希值截取位数和目标截取数字进行拼接,以得到预分区映射表。
82.具体的,将一个候选字符、该候选字符对应的哈希值截取位数和该候选字符对应的目标截取数字进行拼接为一行,将各候选字符对应拼接的行组成的表作为预分区映射表。
83.s206、根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表。
84.s207、基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。
85.本发明实施例通过根据关系型数据表中的至少一个候选字符的分布频度和哈希值,确定目标哈希值截取位数;根据目标哈希值截取位数,对候选字符对应的哈希值进行截取,得到目标截取数字;基于预设的数据拼接规则,将候选字符、哈希值截取位数和目标截取数字进行拼接,以得到预分区映射表。采用上述技术方案,确定目标哈希值截取位数和目标截取数字,并将将候选字符、哈希值截取位数和目标截取数字拼接,得到预分区映射表,
提高了预分区映射表中候选字符对应分区的准确性,进而提高了数据导入的准确性。
86.实施例三
87.图3为本发明实施例三提供的一种基于hbase数据表的数据处理方法的流程图,本实施例与上述实施例的基础上,对数据导入操作操作进行了优化改进。
88.进一步地,将“基于预分区映射表和预分区区间,将关系型数据表中的数据导入hbase分区表中”细化为“确定关系型数据表中的待存储字段的目标字符;从预分区映射表中查询,目标字符对应的第一哈希值截取位数;根据第一哈希值截取位数,确定对目标字符的哈希值进行截取的第一截取数字,并根据第一截取数字,从hbase分区表中确定目标分区表;根据预设的拼接规则,将第一截取数字和待存储字段进行拼接,将拼接结果存储至hbase分区表中对应的目标分区表中”,以完善数据导入操作。
89.需要说明的是,在本发明实施例中未详述部分,可参见其他实施例的相关表述,在此不再赘述。
90.如图3所示,该方法包括:
91.s301、根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量。
92.s302、统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值。
93.其中,候选字符为非ascii码字符。
94.s303、根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表。
95.s304、根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表。
96.s305、确定关系型数据表中的待存储字段的目标字符。
97.其中,待存储字段可以是关系型数据表中待存储数据的数据字段,例如可以是rowkey(行键)字段。具体的,将待存储字段字符中的首字符作为目标字符。示例性的,待存储字段为“许
××”
,则将“许”作为目标字符。
98.s306、从预分区映射表中查询目标字符对应的第一哈希值截取位数。
99.s307、根据第一哈希值截取位数,确定对目标字符的哈希值进行截取的第一截取数字,并根据第一截取数字,从hbase分区表中确定目标分区表。
100.其中,目标分区表可以是存储待存储字段对应数据的分区表。具体的,根据第一截取数字,从hbase分区表中选取该第一截取数字所在区间对应的分区表,作为目标分区表。
101.示例性的,“许”的第一哈希值截取位数为2,哈希值为35768,则第一截取数字为35,各分区表区间依次为0到23、23到26、26到29、29到37和37到99,则将区间为29到37的分区表作为目标分区表。
102.s308、根据预设的拼接规则,将第一截取数字和待存储字段进行拼接,将拼接结果和待存储字段对应的数据存储至hbase分区表中对应的目标分区表中。
103.具体的,将第一截取数字拼接到待存储字段目标字符的前方,作为拼接结果,将该拼接结果与该待存储字段对应的数据存储至hbase分区表对应的目标分区表中。
104.本发明实施例通过确定关系型数据表中的待存储字段的目标字符;从预分区映射表中查询目标字符对应的第一哈希值截取位数;根据第一哈希值截取位数,确定对目标字
符的哈希值进行截取的第一截取数字,并根据第一截取数字,从hbase分区表中确定目标分区表;根据预设的拼接规则,将第一截取数字和待存储字段进行拼接,将拼接结果和待存储字段对应的数据存储至hbase分区表中对应的目标分区表中。采用上述技术方案,可以将目标字符的哈希值第一截取数字与待存储字段的待存储字符拼接,将拼接后的待存储字段存入目标分区表中,可以基于非ascii码字符实现对hbase分区表的数据导入,提高了数据导入的灵活性。
105.实施例四
106.图4为本发明实施例四提供的一种基于hbase数据表的数据处理方法的流程图,本实施例与上述实施例的基础上,进行了追加优化。
107.进一步地,追加“获取待查询字段;基于预分区映射表和hbase分区表,根据待查询字段,从hbase分区表中查询待查询字段关联的数据”,以完善基于hbase数据表的数据处理方法。
108.需要说明的是,在本发明实施例中未详述部分,可参见其他实施例的相关表述,在此不再赘述。
109.如图4所示,该方法包括:
110.s401、根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量。
111.s402、统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值。
112.其中,候选字符为非ascii码字符。
113.s403、根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表。
114.s404、根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表。
115.s405、基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。
116.s406、获取待查询字段。
117.其中,待查询字段可以是记录待查询字符的字段。其中,待查询字符可以是非ascii码字符。需要说明的是,待查询字段的获取方法可以采用现有技术中的任意一种,本发明对此不作限定。
118.s407、基于预分区映射表和hbase分区表,根据待查询字段,从hbase分区表中查询待查询字段关联的数据。
119.可选的,基于预分区映射表,根据待查询字段,确定第二哈希值截取位数;根据第二哈希值截取位数,确定待查询字段的哈希值的第二截取数字;根据预设的拼接规则,将待查询字段和第二截取数字进行拼接;根据拼接的结果,从hbase分区表中查询待查询字段关联的数据。
120.其中,待查询字段和第二截取数字进行拼接的拼接规则与数据导入操作中的待存储字段和第一截取数字拼接规则相同。
121.具体的,在预分区映射表中查询待查询字段中待查询字符的哈希值截取位数,作为第二哈希值截取位数。将待查询字符的哈希值按照第二哈希值截取位数进行截取得到的
数字,作为第二截取数字。根据预设的拼接规则,将待查询字段中待查询字符与第二截取数字进行拼接,将得到的拼接结果作为更新后的待查询字段,从hbase分区表中,查询与更新后的待查询字段的关联的数据。其中,拼接规则可以由技术人员根据实际需求或实践经验自主确定,本发明对此不作限定。
122.示例性的,待查询字段中的带查询字符为“许”,查询预分区映射表,得到对应的第二哈希值截取位数为2,根据“许”的哈希值为35768,截取前2位拼接到待查询字段的待查询字符前,即拼接结果为“35-许”,从hbase分区表的对应分区中进行模糊查询。
123.可以理解的是,采用上述技术方案,确定待查询字段的第二截取数字,根据预设拼接规则,将待查询字段和第二截取数字进行拼接,根据拼接结果从hbase分区表中查询数据,可以通过记录非ascii码的待查询字符的待查询字段从hbase分区表中查询数据,提高了数据查询的灵活性。
124.本发明实施例通过获取待查询字段;基于预分区映射表和hbase分区表,根据待查询字段,从hbase分区表中查询待查询字段关联的数据。采用上述技术方案,可以在数据导入hbase数据库后,通过待查询字段中的非ascii码字符,对hbase分区表中的查询字段关联数据的进行查询,提高了数据查询的灵活性。
125.实施例五
126.图5为本发明实施例五提供的一种基于hbase数据表的数据处理装置的结构图。本实施例可适用于基于非ascii码对数据表进行预分区情况。该装置可以采用硬件和/或软件的形式实现,该装置可配置于电子设备中。如图5所示,该装置包括:分区数量确定模块501、哈希值获取模块502、映射表构建模块503、分区区间确定模块504和数据导入模块505,其中,
127.分区数量确定模块501,用于根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量;
128.哈希值获取模块502,用于统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ascii码字符;
129.映射表构建模块503,用于根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;
130.分区区间确定模块504,用于根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表;
131.数据导入模块505,用于基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。
132.本发明实施例通过分区数量确定模块根据关系型数据表的空间占用信息,得到hbase分区表预分区的分区数量;哈希值获取模块统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ascii码字符;映射表构建模块根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;分区区间确定模块根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表;数据导入模块基于预分区映射表和分区区间,将关系型数据表中的数据
导入hbase分区表中。采用上述技术方案,可以基于非ascii码字符对hbase数据表进行预分区,提高了对hbase数据表进行预分区的灵活性。
133.可选的,映射表构建模块503,包括:
134.截取位数确定单元,用于根据关系型数据表中的至少一个候选字符的分布频度和哈希值,确定目标哈希值截取位数;
135.截取数字确定单元,用于根据目标哈希值截取位数,对候选字符对应的哈希值进行截取,得到目标截取数字;
136.映射表获取单元,用于预设表基于预设的数据拼接规则,将候选字符、哈希值截取位数和目标截取数字进行拼接,以得到预分区映射表。
137.可选的,截取位数确定单元,包括:
138.候选数字获取子单元,用于对关系型数据表中候选字符的哈希值的目标数据位上的数字进行统计,得到目标数据位的至少一组候选数字;其中,目标数据位包括哈希值中的至少一个数据位;
139.频率确定子单元,用于根据候选字符的分布频度,确定候选数字的出现频率;
140.最大频率确定子单元,用于从至少一组候选数字的出现频率中,确定最大出现频率;
141.截取位数确定子单元,用于根据最大出现频率和可存储频率,确定目标哈希值截取位数。
142.可选的,截取位数确定子单元,具体用于:
143.若最大出现频率小于可存储频率,则确定目标数据位对应的数据位的位数,作为目标哈希值截取位数;
144.若最大出现频率大于可存储频率,则增加目标数据位的数据位,以更新目标数据位,并根据新的目标数据位的至少一组候选数字,重新确定目标哈希值截取位数。
145.可选的,数据导入模块505,包括:
146.目标字符确定模块,用于确定关系型数据表中的待存储字段的目标字符;
147.第一截取位数确定单元,用于从预分区映射表中查询,目标字符对应的第一哈希值截取位数;
148.分区表确定单元,用于根据第一哈希值截取位数,确定对目标字符的哈希值进行截取的第一截取数字,并根据第一截取数字,从hbase分区表中确定目标分区表;
149.拼接结果存储单元,用于根据预设的拼接规则,将第一截取数字和待存储字段进行拼接,将拼接结果和待存储字段对应的数据存储至hbase分区表中。
150.可选的,该装置,还包括:
151.字段查询单元,用于获取待查询字段;
152.数据查询单元,用于基于预分区映射表和hbase分区表,根据待查询字段,从hbase分区表中查询待查询字段关联的数据。
153.可选的,数据查询单元,包括:
154.第二截取位数确定子单元,用于基于预分区映射表,根据待查询字段,确定第二哈希值截取位数;
155.第二截取数字确定子单元,用于根据第二哈希值截取位数,确定待查询字段的哈
希值的第二截取数字;
156.拼接子单元,用于根据预设的拼接规则,将待查询字段和第二截取数字进行拼接;
157.数据查询子单元,用于根据拼接的结果,从hbase分区表中查询待查询字段关联的数据。
158.本发明实施例所提供的基于hbase数据表的数据处理装置可执行本发明任意实施例所提供的基于hbase数据表的数据处理方法,具备执行基于hbase数据表的数据处理方法相应的功能模块和有益效果。
159.实施例六
160.图6示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
161.如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
162.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
163.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如基于hbase数据表的数据处理方法。
164.在一些实施例中,基于hbase数据表的数据处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的基于hbase数据表的数据处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于hbase数据表的数据处理方法。
165.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算
机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
166.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
167.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
168.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
169.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
170.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
171.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
172.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明
白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术特征:
1.一种基于hbase数据表的数据处理方法,其特征在于,包括:根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量;统计所述关系型数据表中数据字段的至少一个候选字符的分布频度,并对所述候选字符进行哈希映射,得到所述候选字符的哈希值;其中,所述候选字符为非ascii码字符;根据所述关系型数据表中的至少一个候选字符、以及所述候选字符的分布频度和哈希值,构建预分区映射表;根据所述分区数量、所述预分区映射表、以及所述关系型数据表中的至少一个候选字符的分布频度,确定所述预分区的分区区间,并创建hbase分区表;基于所述预分区映射表和所述分区区间,将所述关系型数据表中的数据导入所述hbase分区表中。2.根据权利要求1所述的方法,其特征在于,所述根据所述关系型数据表中的至少一个候选字符,以及所述候选字符的分布频度和哈希值,构建预分区映射表,包括:根据所述关系型数据表中的至少一个候选字符的分布频度和哈希值,确定目标哈希值截取位数;根据所述目标哈希值截取位数,对所述候选字符对应的哈希值进行截取,得到目标截取数字;基于预设的数据拼接规则,将所述候选字符、所述哈希值截取位数和所述目标截取数字进行拼接,以得到预分区映射表。3.根据权利要求2所述的方法,其特征在于,所述根据所述关系型数据表中的至少一个候选字符的分布频度和哈希值,确定目标哈希值截取位数,包括:对所述关系型数据表中候选字符的哈希值的目标数据位上的数字进行统计,得到所述目标数据位的至少一组候选数字;其中,所述目标数据位包括哈希值中的至少一个数据位;根据所述候选字符的分布频度,确定所述候选数字的出现频率;从所述至少一组候选数字的出现频率中,确定最大出现频率;根据所述最大出现频率和可存储频率,确定目标哈希值截取位数。4.根据权利要求3所述的方法,其特征在于,所述根据所述最大出现频率和可存储频率,确定目标哈希值截取位数,包括:若所述最大出现频率小于可存储频率,则确定目标数据位对应的数据位的位数,作为目标哈希值截取位数;若所述最大出现频率大于所述可存储频率,则增加所述目标数据位的数据位,以更新所述目标数据位,并根据新的目标数据位的至少一组候选数字,重新确定目标哈希值截取位数。5.根据权利要求1所述的方法,其特征在于,所述基于所述预分区映射表和所述预分区区间,将所述关系型数据表中的数据导入所述hbase分区表中,包括:确定所述关系型数据表中的待存储字段的目标字符;从所述预分区映射表中查询所述目标字符对应的第一哈希值截取位数;根据所述第一哈希值截取位数,确定对所述目标字符的哈希值进行截取的第一截取数字,并根据所述第一截取数字,从所述hbase分区表中确定目标分区表;根据预设的拼接规则,将所述第一截取数字和所述待存储字段进行拼接,将拼接结果
和所述待存储字段对应的数据存储至所述hbase分区表中对应的目标分区表中。6.根据权利要求1所述的方法,其特征在于,还包括:获取待查询字段;基于所述预分区映射表和所述hbase分区表,根据所述待查询字段,从所述hbase分区表中查询所述待查询字段关联的数据。7.根据权利要求6所述的方法,其特征在于,所述基于所述预分区映射表和所述预分区表,根据所述待查询字段,从所述hbase分区表中查询所述待查询字段关联的数据,包括:基于所述预分区映射表,根据所述待查询字段,确定第二哈希值截取位数;根据所述第二哈希值截取位数,确定所述待查询字段的哈希值的第二截取数字;根据预设的拼接规则,将所述待查询字段和所述第二截取数字进行拼接;根据拼接的结果,从所述hbase分区表中查询所述待查询字段关联的数据。8.一种基于hbase数据表的数据处理装置,其特征在于,包括:分区数量确定模块,用于根据关系型数据表的空间占用信息,得到hbase数据表预分区的分区数量;哈希值获取模块,用于统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ascii码字符;映射表构建模块,用于根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;分区区间确定模块,用于根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建hbase分区表;数据导入模块,用于基于预分区映射表和分区区间,将关系型数据表中的数据导入hbase分区表中。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的基于hbase数据表的数据处理方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的基于hbase数据表的数据处理方法。

技术总结
本发明公开了基于HBase数据表的数据处理方法、装置、设备及存储介质,涉及大数据处理技术领域。包括:根据关系型数据表的空间占用信息,得到HBase数据表预分区的分区数量;统计关系型数据表中数据字段的至少一个候选字符的分布频度,并对候选字符进行哈希映射,得到候选字符的哈希值;其中,候选字符为非ASCII码字符;根据关系型数据表中的至少一个候选字符、以及候选字符的分布频度和哈希值,构建预分区映射表;根据分区数量、预分区映射表、以及关系型数据表中的至少一个候选字符的分布频度,确定预分区的分区区间,并创建HBase分区表;基于预分区映射表和分区区间,将关系型数据表中的数据导入HBase分区表中。实现了基于非ASCII码字符对HBase数据表进行预分区。字符对HBase数据表进行预分区。字符对HBase数据表进行预分区。


技术研发人员:许吉来 罗晓峰 姜帆 张延堂 林发全
受保护的技术使用者:中国农业银行股份有限公司
技术研发日:2022.10.25
技术公布日:2023/1/6

最新回复(0)