[发明专利]一种实现数据导入非关系型数据库的方法和系统在审
申请号: | 201711339911.7 | 申请日: | 2017-12-14 |
公开(公告)号: | CN109918425A | 公开(公告)日: | 2019-06-21 |
发明(设计)人: | 李海龙;王媛;彭红晓 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/23 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;杨晓伟 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 非关系型数据库 存储格式 计算机技术领域 格式转换 内存资源 文件分配 影响线 元数据 行键 存储 占用 创建 | ||
本发明公开了一种实现数据导入非关系型数据库的方法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:将待导入数据进行格式转换,以生成非关系型数据库存储格式的文件;根据所述待导入数据的行键将所述非关系型数据库存储格式的文件分配到已创建的区域中;存储所述区域的元数据。该实施方式将数据高效导入非关系型数据库,并且该过程也没有占用CPU和内存资源,从而不影响线上非关系型数据库的使用。
技术领域
本发明涉及计算机技术领域,尤其涉及一种实现数据导入非关系型数据库的方法和系统。
背景技术
随着网络技术的飞速发展,每天都会有大量的数据产生,对于该如此庞大数据量的数据,关系型数据库无法满足其存储,一般都会存储在非关系型数据库NOSQL中,例如HBase数据库。HBase是Google Bigtable的开源实现,其利用Hadoop HDFS作为其文件存储系统。在现有技术中,只能通过HBase数据库的API调用MapReduce的TableOutputFormat接口,将待导入HBase数据库的数据生成Put对象,Put对象再被封装成KeyValue对象。然后,通过RPC(Remote Procedure Call Protocol远程过程调用协议)将KeyValue对象发送至区域服务器regionserver,regionserver根据接收到的KeyValue对象的rowkey将该KeyValue对象分给不同的区域region。region首先把数据写入WAL(Write Ahead Log HBase数据库的预先写日志机制),WAL写入成功后,把数据写入memstore。当memstore超过特定时间或达到特定大小后,将memstore写入HDFS,生成HFile文件。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:大量的KeyValue对象进入region,会造成region的不断Split,并且,该导入数据的过程只能线上进行,严重影响HBase数据库的稳定性,使线上HBase的查询响应变得缓慢;写入HBase数据库的效率太低,耗时严重,满足不了业务需求;因为region将待导入数据先写到memstore中,如果此时服务器出现宕机,写入的数据可能就会丢失,虽然有WAL,但是恢复数据非常困难而且时效较慢。
发明内容
有鉴于此,本发明实施例提供一种实现数据导入非关系型数据库的方法,能够将数据高效导入非关系型数据库,因为线下将数据导入非关系型数据库,所以该导入过程没有占用CPU和内存资源,从而不影响线上非关系型数据库的使用。并且避免了因服务器宕机导致数据丢失的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种实现数据导入非关系型数据库的方法。
本发明实施例的实现数据导入非关系型数据库的方法包括:将待导入数据进行格式转换,以生成非关系型数据库存储格式的文件;根据所述待导入数据的行键,将所述非关系型数据库存储格式的文件分配到已创建的区域中;存储所述区域的元数据。
可选地,在将所述非关系型数据库存储格式的文件分配到已创建的区域中之前,还包括:按照预设的行键散列处理规则对待导入数据的初始行键进行处理,以生成待导入数据的新的行键;则,根据所述待导入数据的新的行键将所述非关系型数据库存储格式的文件分配到已创建的区域中。
可选地,所述按照预设的行键散列处理规则对待导入数据的初始行键进行处理的步骤包括:对所述待导入数据的初始行键进行MD5运算以生成字符串;将所述字符串的连续几位作为所述初始行键的前缀,以组合生成所述待导入数据的新的行键。
可选地,在将所述非关系型数据库存储格式的文件分配到已创建的区域中之前,还包括:确定待导入数据的数据量以及一个区域存储的数据量;根据所述待导入数据的数据量和一个区域存储的数据量确定所需的区域的数量;创建所述数量的区域。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711339911.7/2.html,转载请声明来源钻瓜专利网。