命令行界面

概述

Presto 命令行界面 (CLI) 是一个基于终端的交互式 shell,用于运行查询,它是一个 自执行 JAR 文件,就像一个普通的 UNIX 可执行文件。Presto CLI 通过 HTTP 使用 REST API 与 Presto 服务器通信,该 API 文档位于 Presto 客户端 REST API

要安装 Presto CLI,请参阅 命令行界面

配置

Presto CLI 使用 less 程序对查询结果进行分页,该程序配置了预设选项。要更改查询结果的分页方式,请将环境变量 PRESTO_PAGER 设置为其他程序的名称,例如 more,或者将其设置为空值以禁用分页。

使用 Presto CLI 连接到 Presto 服务器

要连接到 Presto 服务器,请使用 --server 选项运行 CLI。

./presto --server localhost:8080 --catalog hive --schema default

localhost:8080 是 Presto 服务器的默认值,因此如果您的本地运行着 Presto 服务器,则可以省略它。

要连接到远程 Presto 服务器,请使用 Presto 终端 URL,如以下示例命令所示

./presto --server http://www.example.net:8080

示例

以 JSON 格式提取查询计划

以下示例使用 --execute 对指定的目录和模式运行 SQL 语句,并将语句的查询计划以 JSON 格式保存在名为 plan.json 的文件中。

./presto --catalog catalogname --schema tpch \
--execute 'EXPLAIN (format JSON) SELECT 1 from lineitem' \
--output-format JSON | jq '.["Query Plan"] | fromjson' > plan.json

在线帮助

使用 --help 选项运行 CLI 以查看在线帮助。

./presto --help
摘要
presto [–access-token <access token>] [–catalog <catalog>]

[–client-info <client-info>] [–client-request-timeout <client request timeout>] [–client-tags <client tags>] [–debug] [–disable-compression] [–execute <execute>] [–extra-credential <extra-credential>…] [(-f <file> | –file <file>)] [(-h | –help)] [–http-proxy <http-proxy>] [–ignore-errors] [–keystore-password <keystore password>] [–keystore-path <keystore path>] [–krb5-config-path <krb5 config path>] [–krb5-credential-cache-path <krb5 credential cache path>] [–krb5-disable-remote-service-hostname-canonicalization] [–krb5-keytab-path <krb5 keytab path>] [–krb5-principal <krb5 principal>] [–krb5-remote-service-name <krb5 remote service name>] [–log-levels-file <log levels file>] [–output-format <output-format>] [–password] [–resource-estimate <resource-estimate>…] [–schema <schema>] [–server <server>] [–session <session>…] [–socks-proxy <socks-proxy>] [–source <source>] [–truststore-password <truststore password>] [–truststore-path <truststore path>] [–user <user>] [–version]

选项
--access-token <access token>

访问令牌

--catalog <catalog>

默认目录

--client-info <client-info>

有关发出查询的客户端的额外信息

--client-request-timeout <client request timeout>

客户端请求超时(默认:2m)

--client-tags <client tags>

客户端标签

--debug

启用调试信息

--disable-compression

禁用查询结果的压缩

--execute <execute>

执行指定的语句并退出

--extra-credential <extra-credential>

额外的凭据(属性可以多次使用;格式为 key=value)

-f <file>, --file <file>

从文件执行语句并退出

-h, --help

显示帮助信息

--http-proxy <http-proxy>

用于服务器连接的 HTTP 代理

--ignore-errors

在发生错误时继续处理批处理模式(默认行为是立即退出)

--keystore-password <keystore password>

密钥库密码

--keystore-path <keystore path>

密钥库路径

--krb5-config-path <krb5 config path>

Kerberos 配置文件路径(默认:/etc/krb5.conf)

--krb5-credential-cache-path <krb5 credential cache path>

Kerberos 凭据缓存路径

--krb5-disable-remote-service-hostname-canonicalization

禁用使用 DNS 反向查找的服务主机名规范化

--krb5-keytab-path <krb5 keytab path>

Kerberos 密钥表路径(默认:/etc/krb5.keytab)

--krb5-principal <krb5 principal>

要使用的 Kerberos 主体

--krb5-remote-service-name <krb5 remote service name>

远程对端的 Kerberos 服务名称

--log-levels-file <log levels file>

使用此文件配置调试的日志级别

--output-format <output-format>

批处理模式的输出格式 [ALIGNED, VERTICAL, CSV, TSV, CSV_HEADER, TSV_HEADER, NULL](默认:CSV)

--password

提示输入密码

--resource-estimate <resource-estimate>

资源估计(属性可以多次使用;格式为 key=value)

--runtime-stats

启用运行时统计信息。标志必须与 –debug 标志一起使用

--schema <schema>

默认模式

--server <server>

Presto 服务器位置(默认:localhost:8080)

--session <session>

会话属性(属性可以多次使用;格式为 key=value;使用 ‘SHOW SESSION’ 查看可用属性)

--socks-proxy <socks-proxy>

用于服务器连接的 SOCKS 代理

--source <source>

发出查询的源名称

--truststore-password <truststore password>

信任库密码

--truststore-path <truststore path>

信任库路径

--user <user>

用户名

--version

显示版本信息并退出