Presto坑-insert overwrite & 传递参数替代方案
程序员文章站
2024-01-20 12:57:22
...
一、presto不支持insert overwrite
Presto中不支持insert overwrite语法,只能先delete,然后insert into。
详见:Presto上使用SQL遇到的一些坑:https://segmentfault.com/a/1190000013120454
二、presto不支持传递参数到.sql文件
可通过shell脚本中的sed将.sql文件中的变量替换掉
# get sql
cat $from_sql \
| sed 's/\${datebuf}/'$in_dt'/g' \
| sed 's/\${testid}/'${in_testid}'/g' > $TO_SQL
# run sql
$presto --server uhadoop-op3raf-master1:28080 --catalog hive --schema adm --file $TO_SQL | sed 's/"//g' > $RESULT_LINK
# load data
hive -e "load data local inpath '${RESULT_LINK}' overwrite into table app.${TABLE} partition (dt='${in_dt}', testid='${in_testid}');"
下一篇: jquery变量赋值问题