场景:

从Hive导出数据表到Mysql并且Mysql表已创建,其中存在的Mysql表中还有一个Hive中没有的自增ID字段(自动写入时间字段类似这里不再重复叙述)。

这种情况怎么使用Sqoop呢?

 

可以使用 --columns参数来指定要导入/导出的字段,其余字段(自增ID/写入时间字段等)Mysql中会自动更新;

sqoop export -D mapred.job.name="任务的名字" -D mapred.job.queue.name=root.hdfs --connect jdbc:mysql://ip:port/db?zeroDateTimeBehavior=convertToNull --username user_name --password password --table mysql_table --export-dir /hdfs/xxx/dt=2019-12-31/ --outdir /缓存路径xxxx/sqoop_generated --num-mappers 1 --input-null-string '\\N' --input-null-non-string '\\N' --fields-terminated-by '\001' --columns "col1,col2,col3”

上面的命令任务的名字、任务的队列可以选填,删减掉一些可选项如下:

sqoop export --connect jdbc:mysql://ip:port/db?zeroDateTimeBehavior=convertToNull --username user_name --password password --table mysql_table --export-dir /hdfs/xxx/dt=2019-12-31/ --outdir /缓存路径xxxx/sqoop_generated --num-mappers 1 --input-null-string '\\N' --input-null-non-string '\\N' --fields-terminated-by '\001' --columns "col1,col2,col3”
 

  

sqoop export \
--connect jdbc:mysql://${hostName}:${port}/${db_info} \
--username ${username} \
--password ${password} \
--table xs_1_product_dacheng_collect \
--hive-partition-key dt \
--hive-partition-value '${do_data}' \
--export-dir /gwm/dw/ads/${tableName}/dt=${do_data} \
--fields-terminated-by "\t" \
--input-null-string '\\N' \
--input-null-non-string '\\N' 

  

posted on 2020-09-18 17:45  大羽治不了水  阅读(896)  评论(0编辑  收藏  举报