配置 Drill Shell
在启动 Drill Shell 一节中,你可以在命令行上键入查询。在 Drill 命令行提示,键入 “help” 列出设置或其他选项,你可以设置管理这些功能。Apache Drill 1.0 及之后的版本集成了结果集输出表。在该版本中,列有 70 个字符或更多的不能被格式化。
格式化表会花时间,你可能注意到如果运行一个巨大的查询,使用默认的 outputFormat
设置,这是一个 Drill 表。你可以设置其他,更高性能的表格式,例如 CSV。
Drill 命令
下表列出了你可以在 Drill 命令行中运行的命令。
命令 | 描述 |
---|---|
!brief | 关闭 verbose 模式。 |
!close | 关闭当前数据库连接。 |
!closeall | 关闭当前所有的连接。 |
!connect | 打开一个新的连接。当开启 Drill 的认证模式时,使用该命令隐藏密码。 |
!help | 打印出帮助信息。 |
!history | 显示历史记录。 |
!list | 列出当前连接。 |
!outputformat | 给显示的结果设置输出格式。 |
!properties | 指定属性文件去连接数据库。 |
!quit | 退出 Drill 控制台。 |
!reconnect | 重连数据库。 |
!record | 记录所有的数据到指定文件。 |
!run | 从指定文件运行一个脚本。 |
!save | 保存当前变量和别名。 |
!script | 保存一个脚本到文件。 |
!set | 设置变量。 |
!tables | 列出数据库中所有的表。 |
!verbose | 显示详细的错误信息。 |
启动 Drill 时隐藏密码
当使用 Drill 认证模式, 你可以使用 !connect
命令。例如,在你运行 sqlline 脚本后,你可以输入该命令来连接 Drill:
sqlline> !connect jdbc:drill:zk=localhost:2181
当提示你输入用户名和密码时,此时你输入的密码是隐藏的。
设置 Drill 控制台
例如,退出命令如下所示:
0: jdbc:drill:zk=local> !quit
列出当前连接。
0: jdbc:drill:zk=local> !list
1 active connection:
#0 open jdbc:drill:zk=local
设置 Drill 控制台的最大宽度为 10000。
0: jdbc:drill:zk=local> !set maxwidth 10000
设置输出格式为 CSV,来提升大查询的性能。
0: jdbc:drill:zk=local> !set outputFormat csv
设置命令变量
变量名 | 变量值 | 描述 |
---|---|---|
autoCommit | true/false | 启用/禁止自动提交。默认保留为启用(true)。 |
autoSave | true/false | 自动保存。 |
color | true/false | 控制显示的颜色。 |
fastConnect | true/false | 跳过构建表/列。 |
force | true/false | 在出现错误后,继续运行脚本。 |
headerInterval | <integer> | 显示的头之间的间隔。 |
historyFile | <path> | 保存历史命令的文件。默认在 $HOME/.sqlline/history (UNIX, Linux, Mac OS), $HOME/sqlline/history (Windows)。 |
incremental | true/false | 在打印第一行之前,不会从服务器上接受所有的行。 |
isolation | <level> | 设置事务隔离级别。 |
maxColumnWidth | <integer> | 显示列的最大宽度。 |
maxHeight | <integer> | 终端的最大高度。 |
maxWidth | <integer> | 终端的最大宽度。 |
numberFormat | <pattern> | 使用 DecimalFormat 模式格式化数字。 |
outputFormat | table/vertical/csv/tsv | 格式化显示结果。 |
properties | <path> | 从文件中读取属性启动控制台。默认在 $HOME/.sqlline/sqlline.properties (UNIX, Linux, Mac OS), $HOME/sqlline/sqlline.properties (Windows)。 |
rowLimit | <integer> | 返回查询结果的最大行数;0 表示不限制。 |
showElapsedTime | true/false | 显示执行时间。 |
showHeader | true/false | 在查询结果中显示列名。 |
showNestedErrs | true/false | 显示嵌套错误。 |
showWarnings | true/false | 显示连接警告。 |
silent | true/false | 禁用或启用显示命令所指定的信息。 |
timeout | <integer> | 查询超时;小于 0 的表示是没有超时。单位为秒。 |
trimScripts | true/false | 删除从脚本文件读取的行中的尾随空格。 |
verbose | true/false | 显示详细的错误信息和调试信息。 |
自动提交
Drill 执行只读操作时,会自动提交。如果自动提交被禁用,Drill 的 JDBC 会抛出异常。