介绍
在impala-shell 2.5之前的版本,并没有选项可以传递参数。CDH5.7/Impala shell2.5以及以上版本有选项可以传递参数到Impala SQL脚本文件。在impala-shell命令中的var=variable_name选项可以传递值,通过使用${var:variable_name}来引用参数。Impala将会在运行时解析参数,通过实际值来执行脚本。
操作
脚本文件test_fl.sql:
select id, name, dep_id from test
where dep_id = ${var:val};
执行脚本文件
$impala-shell -i <impalad:port> -f test_fl.sql --var=val=100
Starting Impala Shell without Kerberos authentication
Connected to quickstart.cloudera:21000
Server version: impalad version 2.6.0-cdh5.8.0 RELEASE (build 5464d1750381b40a7e7163b12b09f11b891b4de3)
Query: select id, name, dep_id from test
where dep_id = 100
+----+------+--------+
| id | name | dep_id |
+----+------+--------+
| 1 | abc | 100 |
+----+------+--------+
Fetched 1 row(s) in 7.17s