有没有办法用带参数的sql脚本运行impala shell?

Posted

技术标签:

【中文标题】有没有办法用带参数的sql脚本运行impala shell?【英文标题】:Is there any way to run impala shell with sql script with parameters? 【发布时间】:2015-02-09 21:06:32 【问题描述】:

有什么方法可以使用带参数的 SQL 脚本运行 impala shell?

例如:

impala-shell -f /home/john/sql/load.sql /dir1/dir2/dir3/data_file

我遇到了错误:

错误,无法解析参数“-f /home/john/sql/load.sql /dir1/dir2/dir3/data_file”

【问题讨论】:

【参考方案1】:

此功能在 CDH 5.7 / Impala 2.5 及更高版本中可用。

--var 选项允许您将替换变量传递给由该 impala-shell 会话执行的语句,例如由 -f 选项处理的脚本文件中的语句。您可以使用符号 --var=variable_name=value 在命令行上对替换变量进行编码。在 SQL 语句中,您可以使用符号 $var:variable_name 替换值。

直接在文档中查看更多详细信息:https://www.cloudera.com/documentation/enterprise/latest/topics/impala_set.html

【讨论】:

【参考方案2】:

不,你可以用-f指定一个sql语句文件,但它不带参数文件。有关更多详细信息,请参阅 impala-shell 文档: http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/impala_impala_shell.html

【讨论】:

这个答案对于 2.5 下的 Impala 版本是正确的,今天感谢@Raja 的答案

以上是关于有没有办法用带参数的sql脚本运行impala shell?的主要内容,如果未能解决你的问题,请参考以下文章

Cloudera Impala 查询中的 SQL 参数

当列数不相等而不将每个列定义为 NuLL 时,有没有办法在 Impala SQL 中合并两个表

如何使用 HUE 在 Impala 查询中设置变量?

告诉 Impala 忽略错误并继续

Impala - 在多个日期上运行相同的查询

Impala使用SQL即席查询出现AnalysisException: Could not resolve table reference:的解决办法