欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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}');"



相关标签: 数据分析基础