一种实现数据导入非关系型数据库的方法和系统技术方案

技术编号:21432065 阅读:23 留言:0更新日期:2019-06-22 11:53
本发明专利技术公开了一种实现数据导入非关系型数据库的方法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:将待导入数据进行格式转换,以生成非关系型数据库存储格式的文件;根据所述待导入数据的行键将所述非关系型数据库存储格式的文件分配到已创建的区域中;存储所述区域的元数据。该实施方式将数据高效导入非关系型数据库,并且该过程也没有占用CPU和内存资源,从而不影响线上非关系型数据库的使用。

【技术实现步骤摘要】
一种实现数据导入非关系型数据库的方法和系统
本专利技术涉及计算机
,尤其涉及一种实现数据导入非关系型数据库的方法和系统。
技术介绍
随着网络技术的飞速发展,每天都会有大量的数据产生,对于该如此庞大数据量的数据,关系型数据库无法满足其存储,一般都会存储在非关系型数据库NOSQL中,例如HBase数据库。HBase是GoogleBigtable的开源实现,其利用HadoopHDFS作为其文件存储系统。在现有技术中,只能通过HBase数据库的API调用MapReduce的TableOutputFormat接口,将待导入HBase数据库的数据生成Put对象,Put对象再被封装成KeyValue对象。然后,通过RPC(RemoteProcedureCallProtocol远程过程调用协议)将KeyValue对象发送至区域服务器regionserver,regionserver根据接收到的KeyValue对象的rowkey将该KeyValue对象分给不同的区域region。region首先把数据写入WAL(WriteAheadLogHBase数据库的预先写日志机制),WAL写入成功后,把数据写入memstore。当memstore超过特定时间或达到特定大小后,将memstore写入HDFS,生成HFile文件。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:大量的KeyValue对象进入region,会造成region的不断Split,并且,该导入数据的过程只能线上进行,严重影响HBase数据库的稳定性,使线上HBase的查询响应变得缓慢;写入HBase数据库的效率太低,耗时严重,满足不了业务需求;因为region将待导入数据先写到memstore中,如果此时服务器出现宕机,写入的数据可能就会丢失,虽然有WAL,但是恢复数据非常困难而且时效较慢。
技术实现思路
有鉴于此,本专利技术实施例提供一种实现数据导入非关系型数据库的方法,能够将数据高效导入非关系型数据库,因为线下将数据导入非关系型数据库,所以该导入过程没有占用CPU和内存资源,从而不影响线上非关系型数据库的使用。并且避免了因服务器宕机导致数据丢失的问题。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种实现数据导入非关系型数据库的方法。本专利技术实施例的实现数据导入非关系型数据库的方法包括:将待导入数据进行格式转换,以生成非关系型数据库存储格式的文件;根据所述待导入数据的行键,将所述非关系型数据库存储格式的文件分配到已创建的区域中;存储所述区域的元数据。可选地,在将所述非关系型数据库存储格式的文件分配到已创建的区域中之前,还包括:按照预设的行键散列处理规则对待导入数据的初始行键进行处理,以生成待导入数据的新的行键;则,根据所述待导入数据的新的行键将所述非关系型数据库存储格式的文件分配到已创建的区域中。可选地,所述按照预设的行键散列处理规则对待导入数据的初始行键进行处理的步骤包括:对所述待导入数据的初始行键进行MD5运算以生成字符串;将所述字符串的连续几位作为所述初始行键的前缀,以组合生成所述待导入数据的新的行键。可选地,在将所述非关系型数据库存储格式的文件分配到已创建的区域中之前,还包括:确定待导入数据的数据量以及一个区域存储的数据量;根据所述待导入数据的数据量和一个区域存储的数据量确定所需的区域的数量;创建所述数量的区域。可选地,创建所述数量的区域之前,还包括:根据业务需求确定列簇的数量,以及确定区域服务器的内存、memstore占用区域服务器内存的比例、memstore占用区域服务器的内存;根据以下公式确定每个区域服务器下的区域数:(区域服务器的内存*memstore占用区域服务器内存的比例)/(memstore占用区域服务器的内存*列簇的数量);根据所需的区域的数量和每个区域服务器下的区域数确定出所需的区域服务器的个数。可选地,存储所述区域的元数据的步骤包括:将所述区域的元数据存储到-ROOT-和.META.表中。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种实现数据导入非关系型数据库的系统。本专利技术实施例的实现数据导入非关系型数据库的系统包括:格式转换模块,用于将待导入数据进行格式转换,以生成非关系型数据库存储格式的文件;分配模块,用于根据所述待导入数据的行键,将所述非关系型数据库存储格式的文件分配到已创建的区域中;元数据存储模块,用于存储所述区域的元数据。可选地,还包括:行键生成模块,用于按照预设的行键散列处理规则对待导入数据的初始行键进行处理,以生成待导入数据的新的行键;并且,所述分配模块根据所述待导入数据的新的行键将所述非关系型数据库存储格式的文件分配到已创建的区域中。可选地,所述行键生成模块还用于:对所述待导入数据的初始行键进行MD5运算以生成字符串;并且,将所述字符串的连续几位作为所述初始行键的前缀,以组合生成所述待导入数据的新的行键。可选地,还包括:区域创建模块,用于确定待导入数据的数据量以及一个区域存储的数据量;根据所述待导入数据的数据量和一个区域存储的数据量确定所需的区域的数量;创建所述数量的区域。可选地,所述区域创建模块还用于:根据业务需求确定列簇的数量,以及确定区域服务器的内存、memstore占用区域服务器内存的比例、memstore占用区域服务器的内存;根据以下公式确定每个区域服务器下的区域数:(区域服务器的内存*memstore占用区域服务器内存的比例)/(memstore占用区域服务器的内存*列簇的数量);根据所需的区域的数量和每个区域服务器下的区域数确定出所需的区域服务器的个数。可选地,所述元数据存储模块还用于,将所述区域的元数据存储到-ROOT-和.META.表中。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种电子设备。本专利技术实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项的实现数据导入非关系型数据库的方法。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一项的实现数据导入非关系型数据库的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为将待导入的数据的格式转换为非关系型数据库存储数据文件的数据格式,并且创建区域region,将待导入的数据生成的非关系型数据库存储格式的文件分配到已创建的region,将数据高效导入非关系型数据库。以Hbase数据库为例,避免了现有技术中将数据先写入wal,wal写入成功后,把数据写入memstore,当memstore达到特定大小后,将memstore写入HDFS,生成非关系型数据库存储格式的文件等很多步骤。并且线下将数据导入非关系型数据库,所以该导入过程没有占用CPU和内存资源,从而不影响线上非关系型数据库的使用。以及,避免了因服务器宕机导致数据丢失的问题。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的实现数据导入非关系型数据库的方法的主本文档来自技高网
...

【技术保护点】
1.一种实现数据导入非关系型数据库的方法,其特征在于,包括:将待导入数据进行格式转换,以生成非关系型数据库存储格式的文件;根据所述待导入数据的行键,将所述非关系型数据库存储格式的文件分配到已创建的区域中;存储所述区域的元数据。

【技术特征摘要】
1.一种实现数据导入非关系型数据库的方法,其特征在于,包括:将待导入数据进行格式转换,以生成非关系型数据库存储格式的文件;根据所述待导入数据的行键,将所述非关系型数据库存储格式的文件分配到已创建的区域中;存储所述区域的元数据。2.根据权利要求1所述的方法,其特征在于,在将所述非关系型数据库存储格式的文件分配到已创建的区域中之前,还包括:按照预设的行键散列处理规则对待导入数据的初始行键进行处理,以生成待导入数据的新的行键;则,根据所述待导入数据的新的行键将所述非关系型数据库存储格式的文件分配到已创建的区域中。3.根据权利要求2所述的方法,其特征在于,所述按照预设的行键散列处理规则对待导入数据的初始行键进行处理的步骤包括:对所述待导入数据的初始行键进行MD5运算以生成字符串;将所述字符串的连续几位作为所述初始行键的前缀,以组合生成所述待导入数据的新的行键。4.根据权利要求1所述的方法,其特征在于,在将所述非关系型数据库存储格式的文件分配到已创建的区域中之前,还包括:确定待导入数据的数据量以及一个区域存储的数据量;根据所述待导入数据的数据量和一个区域存储的数据量确定所需的区域的数量;创建所述数量的区域。5.根据权利要求4所述的方法,其特征在于,在创建所述数量的区域之前,还包括:根据业务需求确定列簇的数量,以及确定区域服务器的内存、memstore占用区域服务器内存的比例、memstore占用区域服务器的内存;根据以下公式确定每个区域服务器下的区域数:(区域服务器的内存*memstore占用区域服务器内存的比例)/(memstore占用区域服务器的内存*列簇的数量)根据所需的区域的数量和每个区域服务器下的区域数确定出所需的区域服务器的个数。6.根据权利要求1所述的方法,其特征在于,存储所述区域的元数据的步骤包括:将所述区域的元数据存储到-ROOT-和.META.表中。7.一种实现数据导入非关系型数据库存的系统,其特征在于,包括:格式转换模块,用于将待导入数据进行格式转换,以生成非关系型数据...

【专利技术属性】
技术研发人员:李海龙王媛彭红晓
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1