Presto CLI¶
Overview¶
The Presto Command Line Interface (CLI) is a terminal-based interactive shell for running queries. It is a self-executing JAR file that acts like a normal UNIX executable and communicates with the Presto server over HTTP using Presto Client REST API.
Installation¶
Download presto-cli-0.292-executable.jar.
Rename the JAR file to presto
with the following command
(replace *
with the version number of the downloaded jar file):
mv presto-cli-*-executable.jar presto
Use chmod +x
to make the renamed file executable:
chmod +x presto
Running the Presto CLI¶
Start the Presto CLI using the name you gave it using the mv
command:
./presto
The Presto CLI starts and displays the prompt presto>
.
To exit the Presto CLI, enter quit
.
Connect to a Presto server¶
To connect to a Presto server, run the Presto CLI with the --server
option.
./presto --server localhost:8080 --catalog hive --schema default
localhost:8080
is the default for a Presto server, so if you have a Presto server running locally you can
leave it off.
To connect to a remote Presto server, use the Presto endpoint URL as in the following example command:
./presto --server http://www.example.net:8080
Pagination¶
The Presto CLI paginates query results using the less
program, which is configured with preset options.
To change the pagination of query results, set the environment variable PRESTO_PAGER
to the name of a different program such as more
, or set it to an empty value to disable pagination.
Examples¶
Extract a Query Plan in JSON Format¶
The following example runs a SQL statement using --execute
against a
specified catalog and schema, and saves the query plan of the statement in
JSON format in a file named plan.json
.
./presto --catalog catalogname --schema tpch \
--execute 'EXPLAIN (format JSON) SELECT 1 from lineitem' \
--output-format JSON | jq '.["Query Plan"] | fromjson' > plan.json
Online Help¶
Run the Presto CLI with the --help
option to see the online help.
./presto --help
- NAME
presto - Presto interactive console
- SYNOPSIS
- presto [–access-token <access token>] [–catalog <catalog>]
[–client-info <client-info>] [–client-request-timeout <client request timeout>] [–client-tags <client tags>] [–debug] [–disable-compression] [–disable-redirects] [–execute <execute>] [–extra-credential <extra-credential>…] [(-f <file> | –file <file>)] [(-h | –help)] [–http-proxy <http-proxy>] [–ignore-errors] [–insecure] [–keystore-password <keystore password>] [–keystore-path <keystore path>] [–keystore-type <keystore type>] [–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>…] [–runtime-stats] [–schema <schema>] [–server <server>] [–session <session>…] [–socks-proxy <socks-proxy>] [–source <source>] [–truststore-password <truststore password>] [–truststore-path <truststore path>] [–truststore-type <truststore type>] [–user <user>] [–validate-nexturi-source] [–version]
- OPTIONS
- --access-token <access token>
Access token
- --catalog <catalog>
Default catalog
- --client-info <client-info>
Extra information about client making query
- --client-request-timeout <client request timeout>
Client request timeout (default: 2m)
- --client-tags <client tags>
Client tags
- --debug
Enable debug information
- --disable-compression
Disable compression of query results
- --disable-redirects
Disable client following redirects from server
- --execute <execute>
Execute specified statements and exit
- --extra-credential <extra-credential>
Extra credentials (property can be used multiple times; format is key=value)
- -f <file>, --file <file>
Execute statements from file and exit
- -h, --help
Display help information
- --http-proxy <http-proxy>
HTTP proxy to use for server connections
- --ignore-errors
Continue processing in batch mode when an error occurs (default is to exit immediately)
- --insecure
Skip validation of HTTP server certificates (should only be used for debugging)
- --keystore-password <keystore password>
Keystore password
- --keystore-path <keystore path>
Keystore path
- --keystore-type <keystore type>
Keystore type
- --krb5-config-path <krb5 config path>
Kerberos config file path (default: /etc/krb5.conf)
- --krb5-credential-cache-path <krb5 credential cache path>
Kerberos credential cache path
- --krb5-disable-remote-service-hostname-canonicalization
Disable service hostname canonicalization using the DNS reverse lookup
- --krb5-keytab-path <krb5 keytab path>
Kerberos key table path (default: /etc/krb5.keytab)
- --krb5-principal <krb5 principal>
Kerberos principal to be used
- --krb5-remote-service-name <krb5 remote service name>
Remote peer’s kerberos service name
- --log-levels-file <log levels file>
Configure log levels for debugging using this file
- --output-format <output-format>
Output format for batch mode [ALIGNED, VERTICAL, JSON, CSV, TSV, CSV_HEADER, TSV_HEADER, NULL] (default: CSV)
- --password
Prompt for password
- --resource-estimate <resource-estimate>
Resource estimate (property can be used multiple times; format is key=value)
- --runtime-stats
Enable runtime stats information. Flag must be used in conjunction with the –debug flag
- --schema <schema>
Default schema
- --server <server>
Presto server location (default: localhost:8080)
- --session <session>
Session property (property can be used multiple times; format is key=value; use ‘SHOW SESSION’ to see available properties)
- --socks-proxy <socks-proxy>
SOCKS proxy to use for server connections
- --source <source>
Name of source making query
- --truststore-password <truststore password>
Truststore password
- --truststore-path <truststore path>
Truststore path
- --truststore-type <truststore type>
Truststore type
- --user <user>
Username
- --validate-nexturi-source
Validate nextUri server host and port does not change during query execution
- --version
Display version information and exit