CN112667593A - 一种ETL流程执行hbase快速装载的方法与装置 - Google Patents

一种ETL流程执行hbase快速装载的方法与装置 Download PDF

Info

Publication number
CN112667593A
CN112667593A CN202011571993.XA CN202011571993A CN112667593A CN 112667593 A CN112667593 A CN 112667593A CN 202011571993 A CN202011571993 A CN 202011571993A CN 112667593 A CN112667593 A CN 112667593A
Authority
CN
China
Prior art keywords
hbase
data
data source
component
loading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011571993.XA
Other languages
English (en)
Other versions
CN112667593B (zh
Inventor
高东升
梅纲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Dream Database Co Ltd
Original Assignee
Wuhan Dream Database Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Dream Database Co Ltd filed Critical Wuhan Dream Database Co Ltd
Priority to CN202011571993.XA priority Critical patent/CN112667593B/zh
Publication of CN112667593A publication Critical patent/CN112667593A/zh
Application granted granted Critical
Publication of CN112667593B publication Critical patent/CN112667593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种ETL流程执行hbase快速装载的方法与装置,方法包括:基于hbase快速装载流程中的数据源节点组件、数据清洗转换组件、hbase装载组件构造mapper任务中的ETL流程;重定义mapper任务的run后运行,由数据源节点组件读取数据,hbase装载组件将数据转成K/V对写入mapper的context;reducer从context读取规约后的Key/Values对并生成hfile文件,进而利用hbasebulkload装载至hbase。本发明解决了hbasebulkload中导入数据必须落地为临时hdfs文件的问题,克服临时hdfs文件读写操作造成的效率影响。

Description

一种ETL流程执行hbase快速装载的方法与装置
【技术领域】
本发明涉及数据处理技术领域,提供了一种ETL流程执行hbase快速装载的方法与装置。
【背景技术】
ETL是数据处理、构建数据仓库的一个重要工具软件,完成异构数据源的抽取、清洗转换和加载的一个过程。传统的ETL一般是把流程发布到一个集中的ETL服务器节点上运行,所有的流程或流程内组件的运行均采用多线程机制,再多的流程也只能在一个单一节点运行,并且一个大数据的处理流程,也无法提高数据处理的性能。这就导致ETL流程在装载hbase数据时也存在一定的制约。
ETL流程中执行hbase数据装载是大数据处理中必备的数据处理方案。hbase装载一般存在以下两种方案:(1)通过hbase API将数据一条条插入到hbase中:这种导入方式比较慢,并且在导入的过程中占用Region资源以及产生巨量的写入I/O操作,导致效率低下,一次性导入大量数据还极其容易导致装载崩溃,因此大批量数据导入时不推荐使用。(2)使用基于map reduce方式的bulk load:使用bulk load方式由于利用了hbase的数据信息是按照特定格式存储在hdfs里的这一特性,直接在hdfs中生成持久化的hfile数据格式文件,然后完成巨量数据快速入库的操作。配合map reduce完成这样的操作不占用Region资源,也不会产生巨量的写入I/O操作,所以需要较少的CPU和网络资源。
bulk load的实现原理是通过一个map reduce job来实现的,通过job直接生成一个hbase的内部hfile格式文件,用来形成一个特殊的hbase数据表,然后直接将数据文件加载到运行的集群中。
与使用hbaseAPI相比,使用bulk load导入数据虽然能占用更少的CPU和网络资源,但是这种方式也存在一些缺陷:待导入的数据需要预先存放在map reduce的map容易访问读取的地方,一般为临时hdfs文件。也就是说,hbasebulk load中导入数据必须落地为临时hdfs文件,需要对临时hdfs文件进行写和读的操作,导致装载效率受到影响;并且从数据源读取到生成待导入HDFS临时文件,没有充分利用多节点并发处理能力
鉴于此,克服上述现有技术所存在的缺陷是本技术领域亟待解决的问题。
【发明内容】
本发明要解决的技术问题为:传统方案中利用bulk load进行hbase快速装载时,导入数据必须落地为临时hdfs文件,需要对临时hdfs文件进行写和读的操作,导致装载效率受到影响;并且从数据源读取到生成待导入HDFS临时文件,没有充分利用多节点并发处理能力。
为解决上述问题,本发明采用如下技术方案:
第一方面,本发明提供了一种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。
优选地,所述基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组件,构造hbase bulk load的mapper任务子流程,具体为:
基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组件,得到序列化的组件对象集合;
对数据源进行分片以及分片读取设置,进而基于所述组件对象集合中的各组件以及各分片数据源,构造hbase bulk load的一个或多个mapper任务子流程;
其中,每个分片数据源及其下游的数据清洗转换组件、hbase装载组件构成一个mapper任务子流程,每个mapper读取对应的分片数据源。
优选地,所述基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组件,得到序列化的组件对象集合,具体为:
基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组件,构造hbase快速装载ETL流程的有向无环图;
在所述有向无环图中搜索hbase装载组件的上游组件至数据源节点组件,并从搜索到的组件中排除无关hbase装载的数据源节点组件及其下游各组件;
基于剩余的数据源节点组件、数据清洗转换组件以及hbase装载组件,构造序列化的组件对象集合,并保存在map reduce Job的Configuration中。
优选地,每个分片数据源包含对应的数据源节点组件信息以及数据分片信息,以便每个mapper读取对应的分片数据源。
优选地,所述对数据源进行分片以及分片读取设置,具体为:
自定义map reduce的InputFormat为BulkLoadInputFormat;
BulkLoadInputFormat重写InputFormat的getSplits,实现数据源分片的获取;
BulkLoadInputFormat重写InputFormat的createRecordReader为dummy recordreader,以便在mapper子流程运行时读取对应的分片数据源。
优选地,当数据源为分区表时,按所述分区表的分区进行分片得到多个分片数据源;
当数据源为非分区表时,通过自定义分区进行分片得到多个分片数据源;
其中,每个分片数据源包含表信息,以及表分区信息或表范围划分信息。
优选地,所述重定义mapper任务的run方法后运行mapper子流程具体为:重定义mapper任务的setup函数、run函数以及cleanup函数,并在run函数中反序列化出组件对象集合,从而构造组件集合对应的graph,运行对应的mapper graph。
优选地,所述hbase装载组件被分解后得到HbaseContextWriter节点组件,则所述由hbase装载组件将数据转成Key/Value对写入mapper的context具体为:
所述HbaseContextWriter节点组件接收上游的数据清洗转换组件发送来的数据,并转成K<ImmutableBytesWritable>V<Put>写入mapper的context。
优选地,当数据源为数据库数据源时,所述数据源节点组件直接从数据库中读取待导入的数据;
当数据源为本地文件数据源时,将本地文件上传至hadoop hdfs,所述数据源节点组件从hdfs文件系统上读取待导入的数据。
第二方面,本发明还提供了一种ETL流程执行hbase快速装载的装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的ETL流程执行hbase快速装载的方法。
与传统技术相比,本发明的有益效果是:
本发明基于hbase快速装载ETL流程中的各组件构造hbase bulk load的mapper任务中的流程,mapper运行后hbase装载组件可将接收数据转成K/V写入mapper的context,再由hbase bulk load的reducer从context读取规约后的Key/Values并生成hfile文件,最终利用hbase bulk load将hfile文件装载至hbase集群中。这样就省去了hbase装载之前数据先装载进hdfs,然后hbase bulk load的map再读取hdfs的过程,很好地解决了hbase bulkload中导入数据必须落地为临时hdfs文件的问题,克服了临时hdfs文件读写操作造成的装载效率影响;并且可以多节点分布式读取数据源,然后进行清洗转换,提高快速装载的并发处理能力。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种ETL流程执行hbase快速装载的方法流程图;
图2为本发明实施例提供的一种hbase快速装载ETL流程示意图;
图3为本发明实施例提供的一种带有HbaseContextWriter节点的hbase快速装载ETL流程示意图;
图4为本发明实施例提供的一种mapper任务的构造方法流程图;
图5为本发明实施例提供的一种ETL流程执行hbase快速装载的装置架构图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
实施例1:
为解决传统方案中利用bulk load进行hbase快速装载时导入数据必须落地为临时hdfs文件,需要对临时hdfs文件进行读写操作影响装载效率的问题,并且从数据源读取到生成待导入HDFS临时文件,没有充分利用多节点并发处理能力,本发明实施例提供了一种ETL流程执行hbase快速装载的方法,无需生成临时hdfs文件;并且可以多节点分布式读取数据源,然后进行清洗转换,提高快速装载的并发处理能力。
如图1所示,本发明实施例提供的ETL流程执行hbase快速装载的方法主要包括以下步骤:
步骤10,基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组件,构造hbase bulk load的mapper任务子流程。
hbase快速装载ETL流程(即带有hbase快速装载的ETL流程)中存在一个或多个数据源节点组件、一个或多个数据清洗转换组件以及hbase装载组件,数据源节点组件进行数据读取后将数据发送给数据清洗转换组件,经清洗转换后发送给hbase装载组件。以图2所示的hbase快速装载ETL流程为例,包括一个数据源节点、两个数据清洗转换组件和一个hbase装载组件,则数据经两次清洗转换后再发送给hbase装载组件。
在传统方案中,数据源读取数据并向下游发送至hbase装载组件后,在hbase装载组件处需要将数据写入临时hdfs文件,即生成临时hdfs文件,如此才能方便map reduce中的map进行数据读取;map从临时hdfs文件中读取数据后,转换成K/V写入mapper的context,reduce再从context读取规约后的Key/Values对并生成hfile文件,进而将hfile文件装载至hbase集群中。也就是说,传统方案中hbase快速装载ETL流程中的这些组件并不属于hbase bulk load的mapper,mapper不能直接进行源数据读取、清洗转换;本发明实施例则是在传统方案基础上,基于hbase快速装载ETL流程中的这些组件构造hbase bulk load的mapper任务子流程,从而可实现直接由mapper进行源数据读取。
步骤20,重定义mapper任务的run方法后运行mapper子流程,由数据源节点组件读取待导入的数据后发送给下游节点组件,由hbase装载组件将数据转成Key/Value对写入mapper的context。
这里的mapper与传统map reduce的mapper不同,因此需要对其中的函数进行重定义方可运行mapper。具体如下:自定义BulkLoadMapper为Job的mapper class,重定义mapper任务的setup函数、run函数以及cleanup函数,并在run函数中运行对应的mappergraph。其中,setup函数用于进行数据读取前的一些初始化工作;cleanup函数用于进行数据读取完成后的资源释放操作;run函数主要用于数据读取和清洗转换,以及context写入Key/Value对的操作。一般map reduce Job的mapper class只需重定义map函数,这里不需要实现map函数,直接在run函数中运行mapper graph即可。
结合图3,所述hbase装载组件被分解后得到HbaseContextWriter节点组件,则数据源节点、数据清洗转换1节点以及数据清洗转换2节点在mapper中运行,数据清洗转换2节点后面还跟一个隐藏的HbaseContextWriter节点。那么mapper运行的graph子流程为:数据源节点进行数据读取后向下游的数据清洗转换节点发送,经数据清洗转换1节点以及数据清洗转换2节点进行数据清洗转换后继续向下游发送;所述HbaseContextWriter节点组件接收上游的数据清洗转换2节点组件发送来的数据,并转成K<ImmutableBytesWritable>V<Put>写入mapper的context。这里转成Key/Value对的形式是因为reducer对读取数据有固定格式的要求,一个Key对应一个Value。
步骤30,hbase封装提供的reducer任务子流程从context读取规约后的Key/Values对并生成hfile文件,进而利用hbase bulk load将hfile文件装载至hbase。
需要说明的是,这里的reducer是hbase bulk load本身自有的reducer,不需要构造,直接利用该reducer从context读取规约后的Key/Values对并生成hfile文件即可,进而利用hbase bulk load将hfile文件装载至hbase集群中;其中,规约后一个Key对应多个Value,所以为Key/Values对。如此一来,整个过程相当于map先直接从源头进行数据读取,reduce再直接生成hfile文件,就省略了需要生成临时hdfs文件的步骤,可提高整体的装载效率。
进一步地,所述步骤10(即mapper任务子流程的构造)的具体执行过程可参考图4,主要包括以下步骤:
步骤101,基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组件,得到序列化的组件对象集合。
首先,基于hbase快速装载ETL流程中的数据源节点组件以及下游的数据清洗转换组件、hbase装载组件,构造hbase快速装载ETL流程的有向无环图DAG。然后,在所述有向无环图中搜索hbase装载组件的上游组件直至数据源节点组件,并从搜索到的组件中排除无关hbase装载的数据源节点组件及其下游各组件;这些被排除的节点组件可运行于另外的map reduce,在hbase装载过程中不予考虑。最后,基于剩余的数据源节点组件、数据清洗转换组件以及hbase装载组件,构造序列化的组件对象集合,也就是每个数据源节点组件及其下游组件的组件对象集合,并保存在map reduce Job的Configuration中。如此一来,重定义mapper任务的setup函数、run函数以及cleanup函数之后,mapper任务可在run函数中反序列化出组件对象集合,从而构造组件集合对应的graph,运行对应的mapper graph。
步骤102,对数据源进行分片以及分片读取设置,进而基于所述组件对象集合中的各组件以及各分片数据源,构造hbase bulk load的一个或多个mapper任务子流程。
进行分片后,一个数据源可拆分为n个分片数据源split,每个分片数据源split及其下游的数据清洗转换组件、hbase装载组件构成一个mapper任务,即每一个split对应一个mapper任务,mapper数量与数据源总分片数是一致的,且每个mapper仅读取自身对应的分片数据源split;而且,多个mapper任务可并发运行,以提高运行效率。其中,每个分片数据源split包含对应的数据源节点组件信息以及数据分片信息,以便每个mapper读取自身对应的分片数据源split。
对数据源进行分片以及分片读取需要自定义map reduce的InputFormat为BulkLoadInputFormat,然后通过BulkLoadInputFormat重写来实现,重写过程具体如下:
1)BulkLoadInputFormat重写InputFormat的getSplits,实现数据源分片的获取。
当数据源为分区表时,可直接按所述分区表的分区进行分片得到多个分片数据源split;当数据源为非分区表时,需要通过自定义分区进行分片得到多个分片数据源,例如可按照某一索引字段进行一定的范围划分获取splits。其中,每个分片数据源包含表信息,以及表分区信息或表范围划分信息等;也就是说,分片数据源split必须提供详细的信息给mapper,mapper才能准确读取自己分区的表数据。
2)BulkLoadInputFormat重写InputFormat的createRecordReader为dummyrecord reader,不做实际的数据读取操作,直接在mapper子流程运行时读取对应的分片数据源。
在本发明实施例提供的方案中,直接在mapper中读取分区表数据,不需要使用recordReader来读取split对应的分区表,因此需要在BulkLoadInputFormat重写createRecordReader,createRecordReader返回一个虚拟的recordreader(即dummyrecordreader),以保证map reduce Job可以正常提交运行。
其中,当数据源为数据库数据源时,mapper任务中的所述数据源节点组件直接从数据库中读取待导入的数据;当数据源为本地文件数据源时,需要先将本地文件上传至hadoop hdfs,则mapper任务中的所述数据源节点组件从hdfs文件系统上读取待导入的数据。无论是何种数据源,都尽可能需要支持分布式并行分片访问读取,以便提高mapper任务的并发效率。
为了提高BulkLoadMapper运行的并行度,在步骤102中需要对数据源尽可能的分片,BulkLoadInputFormat获取的数据源总分片数决定了BulkLoadMapper的并行数,每个mapper graph运行对应分片数据源的流程。reduce任务数则由hbase表的预分区数决定。
整个过程的参考实现代码如下:
Configuration conf=HBaseConfiguration.create();
Jobjob=Job.getInstance(conf);
job.set…
job.set…
job.setInputFormatClass(BulkLoadInputFormat.class);
job.setMapperClass(BulkLoadMapper.class);
job.setMapOutputKeyClass(ImmutableBytesWritable.class);
job.setMapOutputValueClass(Put.class);
job.setOutputFormatClass(HFileOutputFormat2.class);
HTable table=new HTable(conf,"table1");
HFileOutputFormat2.configureIncrementalLoad(job,table,table.getRegionL ocator());
FileOutputFormat.setOutputPath(job,new Path(DESC_PATH));
job.waitForCompletion(true);
bulk load mapreduce运行成功后,bulk load reduce阶段所生成的hfile快速装载完成。
综上所述,本发明实施例提供的方法具有以下有益效果:
本发明基于hbase快速装载ETL流程中的各组件构造hbase bulk load的mapper任务子流程,mapper运行后hbase装载组件可将接收数据转成Key/Value对写入mapper的context,再由hbase bulk load的reducer从context读取规约后的Key/Values对并生成hfile文件,最终利用hbase bulk load将hfile文件装载至hbase集群中。这样就省去了hbase装载之前数据先装载进hdfs,然后hbase bulk load的map再读取hdfs的过程,很好地解决了hbase bulk load中导入数据必须落地为临时hdfs文件的问题,克服了临时hdfs文件读写操作造成的装载效率影响。另外,可通过对流程中的数据源尽可能分片来增加mapper任务数量,提高mapper并发性,从而也提高bulk load mapreduce性能。
实施例2:
在上述实施例1提供的ETL流程执行hbase快速装载的方法的基础上,本发明还提供了一种可用于实现上述方法的ETL流程执行hbase快速装载的装置,如图5所示,是本发明实施例的装置架构示意图。本实施例的ETL流程执行hbase快速装载的装置包括一个或多个处理器21以及存储器22。其中,图5中以一个处理器21为例。
所述处理器21和所述存储器22可以通过总线或者其他方式连接,图5中以通过总线连接为例。
所述存储器22作为一种ETL流程执行hbase快速装载的方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的ETL流程执行hbase快速装载的方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行ETL流程执行hbase快速装载的装置的各种功能应用以及数据处理,即实现实施例1的ETL流程执行hbase快速装载的方法。
所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的ETL流程执行hbase快速装载的方法,例如,执行以上描述的图1和图3所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

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,实现数据源分片的获取;
BulkLoadInputFormat重写InputFormat的createRecordReader为dummyrecordreader,以便在mapper子流程运行时读取对应的分片数据源。
6.根据权利要求5所述的ETL流程执行hbase快速装载的方法,其特征在于,当数据源为分区表时,按所述分区表的分区进行分片得到多个分片数据源;
当数据源为非分区表时,通过自定义分区进行分片得到多个分片数据源;
其中,每个分片数据源包含表信息,以及表分区信息或表范围划分信息。
7.根据权利要求2所述的ETL流程执行hbase快速装载的方法,其特征在于,所述重定义mapper任务的run方法后运行mapper子流程具体为:重定义mapper任务的setup函数、run函数以及cleanup函数,并在run函数中反序列化出组件对象集合,从而构造组件集合对应的graph,运行对应的mapper graph。
8.根据权利要求1-6任一所述的ETL流程执行hbase快速装载的方法,其特征在于,所述hbase装载组件被分解后得到HbaseContextWriter节点组件,则所述由hbase装载组件将数据转成Key/Value对写入mapper的context具体为:
所述HbaseContextWriter节点组件接收上游的数据清洗转换组件发送来的数据,并转成K<ImmutableBytesWritable>V<Put>写入mapper的context。
9.根据权利要求1-6任一所述的ETL流程执行hbase快速装载的方法,其特征在于,当数据源为数据库数据源时,所述数据源节点组件直接从数据库中读取待导入的数据;
当数据源为本地文件数据源时,将本地文件上传至hadoop hdfs,所述数据源节点组件从hdfs文件系统上读取待导入的数据。
10.一种ETL流程执行hbase快速装载的装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-9任一所述的ETL流程执行hbase快速装载的方法。
CN202011571993.XA 2020-12-27 2020-12-27 一种ETL流程执行hbase快速装载的方法与装置 Active CN112667593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011571993.XA CN112667593B (zh) 2020-12-27 2020-12-27 一种ETL流程执行hbase快速装载的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011571993.XA CN112667593B (zh) 2020-12-27 2020-12-27 一种ETL流程执行hbase快速装载的方法与装置

Publications (2)

Publication Number Publication Date
CN112667593A true CN112667593A (zh) 2021-04-16
CN112667593B CN112667593B (zh) 2022-09-30

Family

ID=75410129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011571993.XA Active CN112667593B (zh) 2020-12-27 2020-12-27 一种ETL流程执行hbase快速装载的方法与装置

Country Status (1)

Country Link
CN (1) CN112667593B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385138A (zh) * 2021-12-29 2022-04-22 武汉达梦数据库股份有限公司 一种Flink框架运行ETL的流程联合组件方法和装置
CN114385137A (zh) * 2021-12-29 2022-04-22 武汉达梦数据库股份有限公司 一种Flink框架运行ETL的流程方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617211A (zh) * 2013-11-20 2014-03-05 浪潮电子信息产业股份有限公司 一种HBase加载数据的导入方法
US20160085810A1 (en) * 2014-09-24 2016-03-24 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
CN105988995A (zh) * 2015-01-27 2016-10-05 杭州海康威视数字技术股份有限公司 一种基于HFile批量加载数据的方法
CN111914007A (zh) * 2020-06-15 2020-11-10 武汉达梦数据库有限公司 一种hadoop集群运行ETL流程的方法及装置
CN112000649A (zh) * 2020-07-07 2020-11-27 武汉达梦数据库有限公司 一种基于map reduce的增量数据同步的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617211A (zh) * 2013-11-20 2014-03-05 浪潮电子信息产业股份有限公司 一种HBase加载数据的导入方法
US20160085810A1 (en) * 2014-09-24 2016-03-24 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
CN105988995A (zh) * 2015-01-27 2016-10-05 杭州海康威视数字技术股份有限公司 一种基于HFile批量加载数据的方法
CN111914007A (zh) * 2020-06-15 2020-11-10 武汉达梦数据库有限公司 一种hadoop集群运行ETL流程的方法及装置
CN112000649A (zh) * 2020-07-07 2020-11-27 武汉达梦数据库有限公司 一种基于map reduce的增量数据同步的方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385138A (zh) * 2021-12-29 2022-04-22 武汉达梦数据库股份有限公司 一种Flink框架运行ETL的流程联合组件方法和装置
CN114385137A (zh) * 2021-12-29 2022-04-22 武汉达梦数据库股份有限公司 一种Flink框架运行ETL的流程方法和装置
CN114385137B (zh) * 2021-12-29 2022-11-08 武汉达梦数据库股份有限公司 一种Flink框架运行ETL的流程方法和装置
CN114385138B (zh) * 2021-12-29 2023-01-06 武汉达梦数据库股份有限公司 一种Flink框架运行ETL的流程联合组件方法和装置

Also Published As

Publication number Publication date
CN112667593B (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
US9619430B2 (en) Active non-volatile memory post-processing
US9736270B2 (en) Automated client/server operation partitioning
CN112667593B (zh) 一种ETL流程执行hbase快速装载的方法与装置
WO2019047441A1 (zh) 一种通信优化方法及系统
CN103678519A (zh) 一种支持Hive DML增强的混合存储系统及其方法
EP3396542B1 (en) Database operating method and device
CN110609807B (zh) 用于删除快照数据的方法、设备和计算机可读存储介质
US20180300330A1 (en) Proactive spilling of probe records in hybrid hash join
US11080261B2 (en) Hybrid concurrency control
CN113095022A (zh) 门级电路的并行仿真处理方法、计算机可读存储介质
CN112000649A (zh) 一种基于map reduce的增量数据同步的方法和装置
US10013347B2 (en) Non-blocking parallel memory mechanisms
US12072893B2 (en) System and method for hierarchical database operation accelerator
KR20230117692A (ko) 하이브리드 데이터베이스 가속 장치, 시스템 및 방법
CN113312386B (zh) 一种基于分布式消息的批量入库方法
CN108365976B (zh) 网络服务的优化方法及装置
CN108334532B (zh) 一种基于Spark的Eclat并行化方法、系统及装置
WO2016177027A1 (zh) 批量数据查询方法和装置
CN105302551A (zh) 一种大数据处理系统的正交分解构造与优化的方法及系统
CN111461310A (zh) 处理神经网络模型的神经网络设备、神经网络系统和方法
CN116977067A (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
KR20220085031A (ko) 데이터베이스 임시 테이블 프로세싱을 가속화하기 위한 스토리지 장치 어댑터
CN114547206A (zh) 一种数据同步方法和数据同步系统
JPWO2019008715A1 (ja) データロードプログラム、データロード方法およびデータロード装置
KR20130103912A (ko) 데이터 처리 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant