如何在Impala命令行中传递多个SQL文件

问题描述

我有多个.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中执行这2个文件,而当前使用的版本是3.2