如何在 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
我有多个 .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