作者:你不知道的人 | 来源:互联网 | 2023-05-19 05:34
使用脚本原因使用脚本的原因是为了适配hue操作,因为hue上sqoop的命令--query查询分隔符和其自身命令分隔冲突,无法使用空格区分是sqoop命令还是--query下命令。Sq
使用脚本原因
使用脚本的原因是为了适配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