sqoop抽数、推数(关系型数据库:oracle; 数仓:impala)

本文介绍了如何使用sqoop工具将数据从Oracle数据库导入到Impala,以及从Impala导回到Oracle的过程,详细说明了相关参数配置和操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.从Oracle抽数到impala

#!/bin/sh

source /etc/profile

source ~/.bash_profile

sqoop import --connect jdbc:mysql://ip:3306/数据库名称 \

--username 用户名称 --password 密码  --table '表名'     \

--columns 'columns1,colums2,colums3' \

--target-dir /FINBB/ODS/表名 \

--delete-target-dir \

--fields-terminated-by '\001' \

--lines-terminated-by '\n' \

--null-string '\\N' \

--null-non-string '\\N' \

--hive-drop-import-delims \

--num-mappers 1

[ $? -eq 0 ] || exit

impala-shell -q 'refresh 库名.表名;'

参数含义注释:

1)--target-dir:导入HDFS的目标路径

2)--null-string:字符串类型如果为null,替换成指定字符串

3)  --null-non-string:非字符串类型如果为null,替换成指定字符串

4)  --delete-target-dir:如果指定目录存在,则先删除掉

5)  --columns:从表中导出指定的一组列的数据

6)--hive-drop-import-delims:导入到hive时删除 \n, \r, and \01

2.从impala倒数到oracle

#!/bin/bash

source /etc/profile

source ~/.bash_profile

sqoop eval -connect jdbc:oracle:thin:@//ip:1521/数据库名称 \

-username 用户名   -password  密码  --e  "TRUNCATE TABLE 表名"            

[[   $? -eq 0 ]] || exit

sqoop export  --connect  jdbc:oracle:thin:@//ip:1521/数据库名称       \

--username  用户名   --password 密码                           \

--table  表名                                                                      \

--columns "colum1,colum2,colum3"                                \

--fields-terminated-by      '\001'                                      \

--hcatalog-database            数据库名称       --hcatalog-table     表名       --num-mappers 8

参数含义注释:

1)sqoop  eval:可使用SQL语句对关系数据库进行操作。后面接  –e或者 –query
查询数据实例

2)  --table:要导入到的关系数据库表

3)  --columns:导出的字段

4)  --hcatalog-database:指定database

5)  --hcatalog-table:指定hive表名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值