Sqoop2.0 mysql sql查询结果导入hdfs脚本

使用脚本原因

使用脚本的原因是为了适配hue操作,因为hue上sqoop的命令--query查询分隔符和其自身命令分隔冲突,无法使用空格区分是sqoop命令还是--query下命令。

 Sqoop支持将任意的查询结果集导入,不使用--table、--columns和--where,使用SQL语句--query参数执行自由查询导入,但是必须指定--target-dir目录,必须指定--split-by 分隔列,同时必须使用where且在其后加个$CONDITIONS,使Sqoop进程替代为一个唯一的条件表达式达到条件查询效果。

 脚本如下:

sqoop import --connect jdbc:mysql://ip/xxx?characterEncoding=UTF-8 --username user --password passowrd --query "SELECT ad.id,ad.budget_perday,acc.total_money FROM ad_group ad LEFT JOIN transfer_accounts acc ON acc.customer_id = ad.customer_info_id WHERE acc.total_money IS NOT NULL and \$CONDITIONS" --split-by id --fields-terminated-by '\t' --m 1 --target-dir /dw/ods/ods_ifengad_ids_advert_info/$1/budget
 
if [ $? -ne 0 ]
then
        echo "执行失败"
        exit 255
fi

你可能感兴趣的:(Hadoop学习总结)