我有许多使用一组通用参数(变量)的 SQL 查询。目前,参数在每个 文件的顶部设置
。当任何参数发生变化时,必须在每个文件中进行更改。如果能够将参数放在一个单独的文件中并且只在一个地方更改,那将是有益的。
如何实现?
我意识到我可以使用 --var
选项到 impala-shell
,但这意味着必须多次输入这些。
我可以看到这可能发生的几种方式:
impala-shell
可能支持多个-f
参数:这会非常优雅,但事实并非如此。可以将查询
cat
在一起并通过管道传输到impala-shell
。这是有用的但不优雅。可以为指定
--var
参数的impala-shell
设置别名。这可能很难做到正确。
显然 #1 是最好的解决方案,但还有其他选择或建议吗?
最佳答案
请查看 Impala 文档: https://www.cloudera.com/documentation/enterprise/5-15-x/topics/impala_shell_options.html#shell_options
此处粘贴相关部分:
-f query_file or --query_file=query_file
Passes a SQL query from a file. Multiple statements must be semicolon (;) delimited. In CDH 5.5 / Impala 2.3 and higher, you can specify a filename of - to represent standard input. This feature makes it convenient to use impala-shell as part of a Unix pipeline where SQL statements are generated dynamically by other tools.
如您所见,Impala 可以解析更多以分号 (;) 分隔的查询文件。这样,您可以使用 --var 参数完成您的第一个案例。
关于hadoop - 有没有办法在单独的文件中设置查询参数(变量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562058/