[发明专利]一种基于LevelDB的海量数据离线批量加载方法在审
申请号: | 202011558077.2 | 申请日: | 2020-12-25 |
公开(公告)号: | CN112328547A | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 冯凌峰 | 申请(专利权)人: | 冯凌峰 |
主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/16;G06F16/25;G06F8/61 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 程化铭 |
地址: | 210000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 leveldb 海量 数据 离线 批量 加载 方法 | ||
本发明公开了一种基于LevelDB的海量数据离线批量加载(BulkLoad)方法。该方法包含以下步骤:使用Mapdeuce程序将数据文件转换为LevelDB存储文件(SST文件)格式,再生成元数据current和manifest文件,并将SST文件移动到指定的路径下,从而实现了海量数据快速离线批量加载到LevelDB中。本发明将HBase Bulkload方法引入到LevelDB中,该方法在大量离线数据入库的情况下,比LevelDB原生的Put接口有着更高的入库性能。
技术领域
本发明涉及一种海量数据离线批量加载(BulkLoad)到数据库的方法,特别一种基于LevelDB的海量数据离线批量加载(BulkLoad)方法。
背景技术
随着大数据时代的发展,数据的增长速度越来越快。大量的数据,对数据库的实时存储提出了更高的要求。很多场景下,不仅有当日的实时数据需要入库,还有大量的离线数据也需要快速入库。
LevelDB是Google设计开发的Key-Value存储引擎,它应用于海量数据快速写入并且写多读少的场景,其底层文件为SST文件,元数据文件有Current文件和manifest文件,底层存储使用了LSM tree的思想,在入库的同时进行LSM tree的compaction。Compaction的作用是对数据进行压缩和排序,保证数据按key的字典序排列,删除掉一些不再有效的数据,减少文件数量等,它是一个比较耗费系统资源的操作,同时也会带来LevelDB的写放大问题。如果使用LevelDB的原生接口同时入库大量的实时数据和离线数据,Compaction会给系统带来比较大的压力,最终迫使LevelDB减慢数据入库的速度,达不到业务应用快速入库的要求。
发明内容
本发明为了解决现有技术存在的问题,提出了一种基于LevelDB的海量数据离线批量加载(BulkLoad)方法。本方法借鉴了HBase的BulkLoad方法,使用Mapdeuce程序将数据文件转换为LevelDB存储文件(SST文件)格式,再生成元数据current和manifest文件,并将SST文件移动到指定的路径下,从而实现了海量数据快速离线批量加载到LevelDB中。
本发明为实现发明目的,提出的基于LevelDB的海量数据离线批量加载(BulkLoad)方法,其步骤如下:
步骤1. 使用Mapreduce将数据文件转换为SST文件。
步骤1.1.实现SST文件的输出类SstOutputFormat,继承于基类FileOutputFormat。实现基类FileOutputFormat的抽象方法getRecordWriter,返回一个RecordWriter对象,用于SST格式文件的输出。返回该对象时,使用LevelDB的写数据至磁盘的LogWriter对象重写RecordWriter的write和close方法。
步骤1.2. Map阶段:根据输入数据,调用LevelDB的K-V组织方式,封装K-V,并作为Map阶段的输出。
步骤1.3. Reduce阶段:实现K-V比较器,对Map阶段传递过来的K-V进行排序,并将有序的K-V写到输出流。
步骤1.4. 设置MapReduce JOB信息,根据输入数据的大小估算Reduce的个数,每个Reduce数据大小为SST文件的大小。
步骤2:生成LevelDB的元数据文件
步骤2.1.生成CURRENT文件:由于是批量生成.sst文件,且已经在MapReduce中做好Key的全局排序,因此所有的.sst文件的层级均默认设置为7,即批量离线入库的.sst文件无需进行Compaction。同时,意味着一个DB的MANIFEST仅存在一个文件MANIFEST-0,CURRENT永远指向MANIFEST-0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于冯凌峰,未经冯凌峰许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011558077.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置