我是Apache Drill的新手,我需要通过sqlline运行SQL脚本。在大多数SQL客户端中,是允许在sqlline中使用一些变量的,所以想问一下Apache Drill的sqlline中可以使用变量吗?
有人在 Drill 用户邮件列表上提出了类似的问题。这是来自同一链接的答案:
You could achieve this by writing a wrapper script:
#!/bin/env bash
VARIABLE="testvalue"
SQL="SELECT '${VARIABLE}' from sys.version;"
sqlline -u jdbc:drill: -n cmatta -p xxxx <<< $SQL
这是一个真实世界的示例,我使用 sed 将钻取文件中所有出现的文本“staticLoadTime”替换为变量 ${staticLoadTime},然后将结果通过管道传输到 sqlline。这避免了创建包装器或其他临时文件。
sed 's/staticLoadTime/${staticLoadTime}/g' ${Source}.drill | sqlline -u jdbc:drill:zk=local
在 2024 年,现在有一个适用于 sqlline 的
--run
参数(记录在此处):
/opt/drill/bin/sqlline -u jdbc:drill:drillbit=localhost --run=/data/setup.sql