Command Line Interface

Overview

The Presto Command Line Interface (CLI) is a terminal-based interactive shell for running queries, and is a self-executing JAR file that acts like a normal UNIX executable. The Presto CLI communicates with the Presto server over HTTP using a REST API, documented at Presto Client REST API.

To install the Presto CLI, see Command Line Interface.

Configuration

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.

Connect to a Presto server using the Presto CLI

To connect to a Presto server, run the 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

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 CLI with the --help option to see the online help.

./presto --help
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] [–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]

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

--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)

--keystore-password <keystore password>

Keystore password

--keystore-path <keystore path>

Keystore path

--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, 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

--user <user>

Username

--version

Display version information and exit