利用haohedi ETL将异构数据库中的数据抽取到hadoop Hive中

时间:2024-02-19 16:47:05

Hive/Spark基本上是不支持Insert...values...方式来插入数据的,对于异构数据的导入通常要采用导出文本后上传到HDFS再执行Load Data命令的方式导入,步骤比较繁琐

HaoheDI的数据抽取任务可以直接将远程异构数据库中的数据以流方式导出并上传到HDFS,再执行Load data命令将数据导入Hive,整个过程一步完成,配置极其简单:

 1、配置源和目标的数据连接

源数据连接:以HSQLDB为例,其它数据库基本一样,只需要配好数据连接即可

 

 

目标数据连接(Hive 2.1.1),注意连接类型选择Hive2。
 

 

需要事先将hive对应版本的驱动程序导入HHDI的lib目录中。

Hive2.1.1需要的jar包如下:可根据自身情况更换hadoop和hive的jar包。
hadoop-common-2.6.0.jar
hive-common-2.1.0.jar
hive-jdbc-2.1.0.jar
hive-metastore-2.1.0.jar
hive-serde-2.1.0.jar
hive-service-2.1.0.jar
hive-service-rpc-2.1.0.jar
hive-shims-2.1.0.jar
 
 
2、配置数据抽取任务,设定源和目标
源页签:
选择源数据连接和源表,生成查询语句,默认抽取该表中的所有字段和所有记录(20w条记录)

 

目标页签:
目标页签选择Hive数据连接后,界面判断如果是Hive2类型,会自动更新为Hive导入的配置界面,在本地缓存文件下拉框中选择“采用流方式上传HDFS”,并定义好列分隔符,行分隔符一般不用修改。每批提交行数是指没多少行会回显一次,数据量大时可相应调高。

 

 

系统会根据Hive数据连接的配置和目标表名自动生成LOAD DATA 语句,其中包含文件上传到的HDFS地址,这个地址用户可以自行修改,也可以修改Load Data语句,增加适当的参数等等。需要注意的是,在HDFS上需要给这个HHDI的操作系统用户分配读写的权限,比如:hadoop fs -chmod -R 777 /user
 
注意:选择Hive作为目标导入时,“字段映射”页签中的配置是无效的。
 
 
6、手工执行该抽取任务进行测试。服务器性能和带宽足够的情况下,真实环境实测3GB数据导入时间大约是1分半钟左右
 

 

 

HaoheDI让ETL变得简单,http://www.haohedi.com