配置 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:

  1. sqlline> !connect jdbc:drill:zk=localhost:2181

当提示你输入用户名和密码时,此时你输入的密码是隐藏的。

设置 Drill 控制台

例如,退出命令如下所示:

  1. 0: jdbc:drill:zk=local> !quit

列出当前连接。

  1. 0: jdbc:drill:zk=local> !list
  2. 1 active connection:
  3. #0 open jdbc:drill:zk=local

设置 Drill 控制台的最大宽度为 10000。

  1. 0: jdbc:drill:zk=local> !set maxwidth 10000

设置输出格式为 CSV,来提升大查询的性能。

  1. 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 会抛出异常。