如何在 impala 命令行中传递多个 sql 文件

How to pass multiple sql files in impala command line

我有多个 .sql 文件,例如 (1.sql、2.sql、3.sql),它包含以下查询。

1.sql:

show databases;

2.sql:

use default;

3.sql:

show tables;

4.sql:

select count(*) from employee limit 5;

我正在尝试按如下所述传递文件。

impala-shell -f 1.sql; 2.sql; 3.sql; 4.sql

在这种情况下,命令仅执行 1.sql 并从终端退出,说明 2.sql .. command not found.

我知道我可以将上述所有查询放在一个 .sql 文件中,但我的问题是如何通过命令行传递多个 .sql 文件。

有人可以建议我如何从命令行将多个 .sql 文件传递​​给 impala 吗?

如果您有 Impala 2.3 或更高版本,这可能会很简单,因为那样您就可以 substitute query file for stdin。所以类似的东西应该可以工作:

$ cat 1.sql 2.sql 3.sql | impala-shell -i "impala-host:port" -f -

(注意最后一个破折号 -

我试图以相同的方式放置 2 个 sql 文件,但它所做的只是读取文件,而不是在 impala shell 和当前版本中执行这两个文件我我使用的是 3.2