2017-09-07 56 views
1

有没有任何选项可以在Presto CLI上提供参数?Presto CLI上的Presto中的参数化SQL

我正在尝试将我的impala-shell命令更改为Presto,其中我的HQL文件从下面的impala命令行获取参数。在急

impala-shell -f ot_full.hql --var=date_next=${date_next_para} --var=yrmth=${yrmth_para} --var=yrmth_L12=${yrmth_L12_para} --var=pyrmth=${pyrmth_para}

WITH条款是没有那么多的帮助。

我们如何将它转换为Presto命令行。

我没有找到https://prestodb.io/docs/current/

+0

也许没有多大用处的,但什么用'sed'注射参数:约'猫ot_full.hql | sed -e“s/date_next/$ {date_next_para} /”.. | presto-cli'? –

回答

0

有这方面的文档/示例中的普雷斯托.CLI不支持此功能,所以你需要将它传递给CLI之前,用在SQL查询的变量。一种方法是直接在外壳做到这一点:

presto --execute "SELECT * FROM table WHERE ds >= '${date_next_para}'" 

对于较长的查询,使用here document是一个不错的选择。

+0

当然,解决方法是可行的,但是我们是否有计划在未来的开发中提供这样的功能? – Shawn

0

按[文档] [1]:

bin/presto-cli.sh --server host:8080 -f test.sql -d yesterday=$yesterday 

https://github.com/yxydde/Presto-CLI

+1

虽然这段代码可能会解决这个问题,但真正的解释(https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)有助于提高您的帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因 –