sqoop使用例子

简介: sqoop是工具,一个可以把ORACLE、MYSQL中的数据导入到HDFS、HIVE、HBASE中(反过来也可以)的工具。下面是一些使用的例子。留下做个参考:

#从Mysql中抽取数据到HDFS.问题:文件太多,全他妈是小文件;目标目录如果已经存在会报错
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --target-dir /user/test/sqoop
#向已经存在HDFS目录追加数据
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --append --target-dir /user/test/sqoop
#name 是string类型的,如果是null,导入的时候用zhixiang替换
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#age是int类型,如果是null,导入的时候用-1替换
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --null-string 'zhixiang' --null-non-string -1 --append --target-dir /user/test/sqoop
#仅仅导入id,name两个字段
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --columns id,name  --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#字段间以|分割
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --columns id,name --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#只导入name不为null的id,name
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --columns id,name --where "name is not null" --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#使用--query代替--table --cloumns --where
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --query "select id,name from st where id > 10 and \$CONDITIONS" --split-by id  --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#将所有数据放到一个文件中(东东那么少)
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --query "select id,name from st where id > 10 and \$CONDITIONS" --split-by id  --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop -m 1
#从Mysql中抽取数据到Hbase
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table mt --hbase-create-table --hbase-table mt --column-family cf --hbase-row-key year,month,day,sta_id
#查看Mysql有哪些数据库
sqoop list-databases --connect jdbc:mysql://10.10.244.137/ --username root --password test
#查看Mysql数据库mysql中有哪些表
sqoop list-tables --connect jdbc:mysql://10.10.244.137/mysql --username root --password test
#查看ORACLE数据库中有哪些数据库
sqoop list-databases --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456
#将Oracle中system.ost表导入HDFS
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OST  --delete-target-dir --target-dir /user/test/sqoop
#只导入到一个文件中
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OST  --delete-target-dir --target-dir /user/test/sqoop -m 1
#将ORACLE中数据导入到Hbase
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OST  --hbase-create-table --hbase-table ost --column-family cf --hbase-row-key ID
#将oracle中数据导入到hbase,用多个字段做row-key
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OMT  --hbase-create-table --hbase-table omt  --column-family cf --hbase-row-key YEAR,MONTH,DAY,STA_ID -m 1

#将Oracle中的数据导入打HDFS,使用sql,目标文件只有一个

sqoop import --connect jdbc:oracle:thin:@10.10.244.124:1521:mete --username chawether --password chawether01  --query "select station_id_c,station_name,lat,lon,hjh from SURFCHNHOR where sTime=to_date(2014030200, 'yyyyMMddhh24') and \$CONDITIONS order by Station_Id_C" --split-by Station_Id_C  --fields-terminated-by '|'   --target-dir /user/hdfs/test/gogo_spark/town -m 1

sqoop官方用户手册:

http://sqoop.apache.org/docs/1.4.5/SqoopUserGuide.html#_syntax

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值