一种HBase数据库的数据处理方法及装置制造方法及图纸

技术编号:39038797 阅读:16 留言:0更新日期:2023-10-10 11:51
一种HBase数据库的数据处理方法及装置,用以在不影响HBase数据库对外提供服务的性能的前提下,提升删除或修复HBase数据库中大规模数据的时效性。该方法包括:确定HBase数据库中待删除或待修复的第一数据表在TiDB数据库中对应的第二数据表;基于第一数据表与第二数据表的存储格式映射关系,将第二数据表中的数据转换为HBase数据库的底层文件HFile文件;将HFile文件导入HBase数据库;HFile文件带有时间戳以及表征删除操作或修复操作的第一标识,且HFile文件的时间戳大于第一数据表的时间戳;第一标识与时间戳用于HBase数据库确定对外提供服务的数据。外提供服务的数据。外提供服务的数据。

【技术实现步骤摘要】
一种HBase数据库的数据处理方法及装置


[0001]本申请涉及大数据
,尤其涉及一种HBase数据库的数据处理方法及装置。

技术介绍

[0002]目前交易系统的架构中,通过TiDB数据库对每天的交易等数据进行批量处理,由HBase数据库负责所有历史数据的保存与查询,TiDB数据库将批量处理后的数据定时导入HBase数据库中。但是,在交易系统不断迭代和运营过程中,可能出现错误数据进入HBase数据库中的情况发生。当HBase数据库中存在错误数据,需要将错误数据从HBase数据库中删除或者替换。
[0003]目前,将错误数据从HBase数据库中删除的方式是,读取HBase数据库中需要删除的数据,通过HBase

Client提供的删除API操作,将数据进行删除,然后通过HBase

Client提供的读取API操作,验证数据是否删除。类似的,将错误数据从HBase数据库中替换的方式是,读取HBase数据库中需要替换的数据,通过HBase

Client提供的删除API操作,将数据进行删除,然后将正确的数据推送到HBase数据库中。
[0004]但是上述方式在删除或替换HBase数据库中大规模数据时,需要花费大量的时间,并且当删除过程发生中断时,可能会造成数据删除的不准确的情况发生。为了提高删除或替换HBase数据库中大规模数据的时效性,可以通过提高并发的形式去进行删除数据的处理,但是高并发又会对HBase数据库的Region Server提供的服务造成性能上的压力。

技术实现思路

[0005]本申请提供一种HBase数据库的数据处理方法及装置,用以在不影响HBase数据库对外提供服务的性能的前提下,提升删除或修复HBase数据库中大规模数据的时效性。
[0006]第一方面,本申请提供一种HBase数据库的数据处理方法,该方法包括:确定HBase数据库中待删除或待修复的第一数据表在TiDB数据库中对应的第二数据表;基于所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的数据转换为HBase数据库的底层文件HFile文件;将所述HFile文件导入HBase数据库;所述HFile文件带有时间戳以及表征删除操作或修复操作的第一标识,且所述HFile文件的时间戳大于所述第一数据表的时间戳;所述第一标识与所述时间戳用于所述HBase数据库确定对外提供服务的数据。
[0007]上述技术方案中,对于HBase数据库中需要删除或修复的第一数据表中的数据,将与其在TiDB数据库中对应的第二数据表中的数据生成HBase数据库的底层文件HFile文件,然后导入HBase数据库中。HBase数据库根据HFile文件的删除或修复操作的标识以及时间戳来实现对数据的删除或者导入,可以高效地删除或修复HBase数据库中的大规模数据。
[0008]在一种可能的设计中,所述将所述HFile文件导入HBase数据库之后,还包括:通过大合并操作对相同的HFile文件进行合并,在所述第一标识为第一值时,对所述相同的HFile文件均进行物理删除;在所述第一标识为第二值时,在所述相同的HFile文件中保留
时间戳最大的HFile文件,对其它的HFile文件进行物理删除;其中,所述相同的HFile文件为具有相同键且不同导入时间的各HFile文件。
[0009]上述技术方案中,HBase数据库通过大合并操作对多个HFile进行合并,将过期数据以及多余版本的数据进行物理删除,可以提高HBase数据库读写数据的效率。
[0010]在一种可能的设计中,所述基于所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的数据转换为HBase数据库的底层文件HFile文件,包括:根据所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的每行数据映射为所述HBase数据库中的多个键值KV数据;每个KV数据包括行键、列簇、列名、value值、时间戳和KV类型;读取所述HBase数据库中第一数据表的元数据的分区信息,将所述第二数据表映射后的所有KV数据生成相应分区的HFile文件。
[0011]在一种可能的设计中,所述第一数据表与所述第二数据表的存储格式映射关系包括第一关系映射表以及第二关系映射表;所述第一关系映射表表示所述第一数据表与所述第二数据表之间的表结构映射关系,所述第二关系映射表表示所述第一数据表中与所述第二数据表之间的列映射关系;所述根据所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的每行数据映射为所述HBase数据库中的多个键值KV数据,包括:根据所述第一关系映射表得到所述第二数据表的行健字段和列簇字段;根据所述第一关系映射表中的映射标识字段得到所述第二关系映射表;根据所述第二关系映射表中得到所述第二数据表中的各列字段的列名;针对所述第二数据表中的每行数据,确定所述行数据在所述HBase数据库中对应的KV数据;每行数据的KV数据包括:行健、列簇、列名、时间戳和KV类型,V:value值。
[0012]在一种可能的设计中,将所述第二数据表中的每行数据映射为所述HBase数据库中的多个键值KV数据,包括:根据所述第一关系映射表中的日期字段得到时间范围,根据所述时间范围确定所述第二数据表中行数据的范围;将所述第二数据表中所述时间范围内的行数据按照时间和/或数据量进行分块;并行地将各个分块中的每行数据映射为所述HBase数据库中的多个键值KV数据。
[0013]上述技术方案中,将大规模的数据按照一定大小进行分块,可以使不同块的数据能够并行处理,提高数据的处理效率。
[0014]在一种可能的设计中,确定HBase数据库中待删除或待修复的第一数据表在TiDB数据库中对应的第二数据表之前,还包括:生成与所述第一数据表和所述第二数据表相关联的数据同步任务信息表,所述数据同步任务信息表用于记录所述HBase数据库导入任务的详细信息。
[0015]上述技术方案中,数据同步任务信息表中记录有此次任务的详细信息,便于后续对该次任务的追溯。
[0016]在一种可能的设计中,所述方法还包括:统计导入所述HBase数据库中所有KV数据的数量,以及所述TiDB数据库的第二数据表中行数与列数的乘积;验证所述数量与所述乘积是否一致。
[0017]上述技术方案中,通过统计导入到HBase数据库中的所有KV数据的数量,来分析此次从TiDB数据库中导入至HBase数据库中的数据数量是否准确,是从数据汇总层面对数据量进行对比,可以及时验证数据从TiDB数据库导入HBase数据库的过程中是否出现错误。相
比于通过HBase数据库提供的API进行全表扫描来进行验证,会对HBase数据库本身造成非常严重的性能问题,该方式不会对HBase数据库造成性能上的影响。
[0018]在一种可能的设计中,所述将所述第二数据表中的数据转换为HBase数据库的底层文件HFile文件之前,还包括:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种HBase数据库的数据处理方法,其特征在于,所述方法包括:确定HBase数据库中待删除或待修复的第一数据表在TiDB数据库中对应的第二数据表;基于所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的数据转换为HBase数据库的底层文件HFile文件;将所述HFile文件导入HBase数据库;所述HFile文件带有时间戳以及表征删除操作或修复操作的第一标识,且所述HFile文件的时间戳大于所述第一数据表的时间戳;所述第一标识与所述时间戳用于所述HBase数据库确定对外提供服务的数据。2.根据权利要求1所述的方法,其特征在于,所述将所述HFile文件导入HBase数据库之后,还包括:通过大合并操作对相同的HFile文件进行合并,在所述第一标识为第一值时,对所述相同的HFile文件均进行物理删除;在所述第一标识为第二值时,在所述相同的HFile文件中保留时间戳最大的HFile文件,对其它的HFile文件进行物理删除;其中,所述相同的HFile文件为具有相同键且不同导入时间的各HFile文件。3.根据权利要求1所述的方法,其特征在于,所述基于所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的数据转换为HBase数据库的底层文件HFile文件,包括:根据所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的每行数据映射为所述HBase数据库中的多个键值KV数据;每个KV数据包括行键、列簇、列名、value值、时间戳和KV类型;读取所述HBase数据库中第一数据表的元数据的分区信息,将所述第二数据表映射后的所有KV数据生成相应分区的HFile文件。4.根据权利要求3所述的方法,其特征在于,所述第一数据表与所述第二数据表的存储格式映射关系包括第一关系映射表以及第二关系映射表;所述第一关系映射表表示所述第一数据表与所述第二数据表之间的表结构映射关系,所述第二关系映射表表示所述第一数据表中与所述第二数据表之间的列映射关系;所述根据所述第一数据表与所述第二数据表的存储格式映射关系,将所述第二数据表中的每行数据映射为所述HBase数据库中的多个键值KV数据,包括:根据所述第一关系映射表得到所述第二数据表的行健字段和列簇字段;根据所述第一关系映射表中的映射标识字段得到所述第二关系映射表;根据所述第二关系映射表中得到所述第二数据表中的各列字段的列名;针对所述第二数据表中的每行数据,确定所述行数据在所述HBase数据库中...

【专利技术属性】
技术研发人员:刘秘
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1