1 .一种ETL流程执行hbase快速装载的方法,其特征在于,包括:
基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、
hbase装载组件,构造hbase bulk load的mapper任务子流程;
重定义mapper任务的run方法后运行mapper子流程,由数据源节点组件读取待导入的
数据后发送给下游节点组件,由hbase装载组件将数据转成Key/Value对写入mapper的
context;
hbase封装提供的reducer任务子流程从context读取规约后的Key/Values对并生成
hfile文件,进而利用hbase bulk load将hfile文件装载至hbase。
2.根据权利要求1所述的ETL流程执行hbase快速装载的方法,其特征在于,所述基于
hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组
件,构造hbase bulk load的mapper任务子流程,具体为:
基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、
hbase装载组件,得到序列化的组件对象集合;
对数据源进行分片以及分片读取设置,进而基于所述组件对象集合中的各组件以及各
分片数据源,构造hbase bulk load的一个或多个mapper任务子流程;
其中,每个分片数据源及其下游的数据清洗转换组件、hbase装载组件构成一个mapper
任务子流程,每个mapper读取对应的分片数据源。
3 .根据权利要求2所述的ETL流程执行hbase快速装载的方法,其特征在于,所述基于
hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组
件,得到序列化的组件对象集合,具体为:
基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、
hbase装载组件,构造hbase快速装载ETL流程的有向无环图;
在所述有向无环图中搜索hbase装载组件的上游组件至数据源节点组件,并从搜索到
的组件中排除无关hbase装载的数据源节点组件及其下游各组件;
基于剩余的数据源节点组件、数据清洗转换组件以及hbase装载组件,构造序列化的组
件对象集合,并保存在map reduce Job的Configuration中。
4 .根据权利要求2所述的ETL流程执行hbase快速装载的方法,其特征在于,每个分片数
据源包含对应的数据源节点组件信息以及数据分片信息,以便每个mapper读取对应的分片
数据源。
5 .根据权利要求2所述的ETL流程执行hbase快速装载的方法,其特征在于,所述对数据
源进行分片以及分片读取设置,具体为:
自定义map reduce的InputFormat为BulkLoadInputFormat;
BulkLoadInputFormat重写InputFormat的getSplits,实现数据源分片的获取;
Bul kL oad I n p u tF orm a t 重写 In pu tFo rma t的 cr e a teR ec ord Re a d er 为d u mm y
recordreader,以便在mapper子流程运行时读取对应的分片数据源。
6 .根据权利要求5所述的ETL流程执行hbase快速装载的方法,其特征在于,当数据源为
分区表时,按所述分区表的分区进行分片得到多个分片数据源;
当数据源为非分区表时,通过自定义分区进行分片得到多个分片数据源;
其中,每个分片数据源包含表信息,以及表分区信息或表范围划分信息。
权 利 要 求 书
1/2 页
2
评论