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

本文探讨了Hive数据导入的多种方法,包括使用Hive自带的JDBC驱动和CDATA驱动进行数据导入的优缺点,以及在不同场景下的适用性。对于小数据量,CDATA驱动可直接从Oracle等数据源抽取数据导入Hive,而大数据量则推荐先导出为文本文件再使用Loaddata命令导入。

采用HIVE自带的apache 的JDBC驱动导入数据基本上只能采用Load data命令将文本文件导入,采用INSERT ... VALUES的方式插入速度极其慢,插入一条需要几十秒钟,基本上不可用。

 Hive 2.1.1需要依赖的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
libthrift-0.9.3.jar

可通过这里查找下载:https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/2.1.1

 

如果想从各种数据源直接抽取数据导入Hive,且数据量不算太大的话,建议使用CDATA的驱动,但这个驱动是收费的,有一个月的试用期,试用期到期用新的邮箱地址继续申请也可以。

下载地址:https://www.cdata.com/drivers/hive/jdbc/

下载后解压并运行setup.jar(双击运行),安装到本地磁盘后,打开安装后的目录,里边有三个文件

image

将jar和lic文件导入到HHDI\WEB-INF\lib下,到期后重新卸载安装该驱动后,将lic文件更新即可

在HHDI驱动管理中,添加如下驱动

image

cdata.jdbc.hive.HiveDriver

jdbc:hive:Server={host};Port={port};TransportMode=BINARY

数据连接配置:

image

数据抽取从Oracle到Hive,1w条记录大约用时50秒,数据量不算太大时,尚可接受。

image

海量数据导入,还是建议先将数据导出到txt并上传到hdfs,用loaddata命令导入,如下:

image

关于如何从数据库导出文本并导入Hive,请看另外一篇文章:

https://www.cnblogs.com/haohedi/p/10417902.html 

 

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

转载于:https://www.cnblogs.com/haohedi/p/9802674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值