sqoop导数到各个数据库,可以套用

一、测试数据库连接

 sqoop list-databases \
 --connect jdbc:oracle:thin:@ip:port:数据库 \
 --username aml \
 --password aml 

二、代码样例

#!/bin/bash

while read line
do
  hdfs dfs -rmr /user/hive/warehouse/aml.db/$line
  echo "********** 开始导入表 $line ************"
  sqoop import \
  --connect jdbc:oracle:thin:@ip:port:数据库 \
  --username 用户名 --password 密码 \
  --query "select * from "$line" where 1=1 and \$CONDITIONS" \
  --hive-import  --delete-target-dir --hive-overwrite \
  --hive-database aml --hive-table $line \
  --target-dir /user/hive/warehouse/aml.db/$line \
  -null-string '\\N' -null-non-string '\\N' \
  -m 1
done < table_list.txt




--oracle 采集配置
sqoop import \                 # 导入模式    关系型数据库-> hdfs(hive)
--driver oracle.jdbc.driver.OracleDriver \            #驱动类
--connect jdbc:oracle:thin:@ip:port:数据库 \       #源数据库url
--username datacenter \               #账号
--password sjzx_ljp0411 \              #密码  
--query "select * from $source_tab_name where \$CONDITIONS and $where_str " \  #要采集的数据集
--target-dir /tmp/sqoop/${source_ID}/t_${tab_name}_tmp \      #hdfs的临时目录 可自动创建
--delete-target-dir \               #数据采集前是否删除目录并新建
--hive-import \                 #导入hive
--hive-overwrite \                #数据写入模式为覆盖
--null-string '\\N' \               #替换为String类型的null为\\n
--null-non-string '\\N' \              #替换为非String类型的null为\\n
--fields-terminated-by "\t" \             #指定hive表的分隔符
--hive-drop-import-delims \              #去除列值中 \n \r 等特殊字符
--hive-table ods_${source_ID}.t_${tab_name}_tmp \        #指定hive表名
--hive-partition-key bus_date \             #插入为分区表时分区字段
--hive-partition-value ${bus_date} \           #分区的值
-m 1                    #指定maptask数量 = 并行度
``

`


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值