sqoop export hive数据同步到oracle的用法
·
1、export 的参数

2、数据同步案例
sqoop export \
--connect jdbc:oracle:thin:@ip:1521/服务名--username 用户名 --password 密码\
--table F_L_C_EUTRANCELLTDD_H \
--columns \
START_TIME,END_TIME,TIME_STAMP,DN,EUTRANCELLTDD_UK,EUTRANCELLTDD_NAME,ENBFUNCTION_UK,ENBFUNCTION_NAME,MANAGEDELEMENT_UK,MANAGEDELEMENT_NAME,OMC_UK,OMC_NAME,RRC_SETUPTIMEMEAN,RRC_SETUPTIMEMAX,\
RRC_CONNMEAN,RRC_CONNMAX,RRC_ATTCONNESTAB,RRC_SUCCCONNESTAB,RRC_ATTCONNREESTAB,RRC_SUCCCONNREESTAB,RRC_CONNRELEASECSFB,ERAB_NBRMEANESTAB,ERAB_ESTABTIMEMEAN,ERAB_ESTABTIMEMAX,ERAB_NBRHOINC,\
IRATHO_AVGTIMEOUT5G_EXEC,IRATHO_ATTINC5G,IRATHO_SUCCPREPINC5G,IRATHO_FAILPREPINC5G,IRATHO_SUCCINC5G \
--fields-terminated-by "|" --update-key START_TIME,EUTRANCELLTDD_UK \
--update-mode allowinsert --export-dir \
/user/hive/warehouse/wxwy.db/f_l_c_eutrancelltdd_h/partitionday="20220224"/partitionhour="2022022410" \
--num-mappers 8 --batch --input-null-string '\\N' --input-null-non-string '\\N'\
table F_L_C_EUTRANCELLTDD_H Oracle的目标表
columns 列出字段
-fields-terminated-by "|" 字段建用|作为分隔符
--update-key START_TIME,EUTRANCELLTDD_UK 利用 –update-key 字段 ,表示主键重复时会进行更新,但是主键不重复的时候,数据不会插入进来
--update-mode allowinsert 表示主键重复时会进行更新,主键不重复的时候,数据也会插入进来
--export-dir HDFS 上导出时的路径
--num-mappers 8 启动8个mapTask,默认4个
--batch 指示使用批处理模式执行底层的SQL语句。在导出数据时,该参数能够将相关的SQL语句组合在一起批量执行,也可以使用有效的API在JDBC接口中配置批处理参数
--input-null-string '\\N' --input-null-non-string '\\N'\ Hive中的Null在底层是以“\N”来存储,为了保证数据两端的一致性在导出数据时采用–input-null-string和–input-null-non-string两个参数。
3、注意事项
注意1:Oracle的目标表大写,hive的源表小写。
注意2:若字段太多,可一行多写几个字段。
注意3:HDFS文件字段分割符需要与建表时的分割符保持一致
更多推荐



所有评论(0)