【Sqoop】sqoop导SqlServer数据到hdfs

公司要对U8、ERP、人力等系统中的数据进行分析,做一个可视化的数字智慧系统,首先要搭建一个大数据平台,然后将这些系统的数据库数据拉取到大数据平台,我们采用的工具是Sqoop,U8采用的是SqlServer数据库。

大数据平台和sqoop工具在此不多说,自行百度。

1、下载SqlServer需要的jar包放到sqoop的lib目录:sqljdbc4.jar

2、在hive中创建外表

drop table if exists UTU_User;
create EXTERNAL table UTU_User(
    cUserID STRING comment '用户标识',
    cCode STRING comment '用户编码',
    cName STRING comment '用户名',
    cPassword STRING comment '密码',
    bAllowPcAndMobile STRING comment ''
)comment 'U8测试'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/data/hive/table/UTU_User';

3、sqoop脚本

列出数据库

sqoop list-databases --connect jdbc:sqlserver://10.8.10.*:1433 -username sa -password root

列出某库下的数据表

sqoop list-tables --connect "jdbc:sqlserver://10.8.10.*:1433;DatabaseName=UTU" -username sa -password root

查询数据

sqoop eval --connect jdbc:sqlserver://10.8.10.*:1433 -username sa -password root --query "SELECT * from UTU.dbo.UTU_User"

导到hdfs,也是最终的sqoop脚本

/usr/hdp/3.1.4.0-315/sqoop/bin/sqoop import --connect "jdbc:sqlserver://10.8.10.*:1433;DatabaseName=UTU" --username sa --password root --query "select utemp.cUserID, utemp.cCode, utemp.cName, utemp.cPassword, isnull(uConfig.bAllowPcAndMobile,0) as bAllowPcAndMobile from UTU.dbo.UTU_User utemp left join dbo.UTU_UserConfig uConfig on utemp.cUserID = uConfig.cUserID where \$CONDITIONS" --append --target-dir /data/hive/table/UTU_User -m 1 --null-string '' --null-non-string ''  --fields-terminated-by ','

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值