命令列介面

概觀

Presto 命令列介面 (CLI) 是一個基於終端的互動式殼層,用於執行查詢,並且是一個 自執行 JAR 檔案,其行為類似於一般的 UNIX 可執行檔。Presto CLI 使用 REST API 通過 HTTP 與 Presto 伺服器通信,相關文件位於 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 <存取權杖>] [–catalog <目錄>]

[–client-info <客戶端資訊>] [–client-request-timeout <客戶端請求逾時>] [–client-tags <客戶端標籤>] [–debug] [–disable-compression] [–execute <執行>] [–extra-credential <額外憑證>…] [(-f <檔案> | –file <檔案>)] [(-h | –help)] [–http-proxy <http 代理>] [–ignore-errors] [–keystore-password <金鑰儲存密碼>] [–keystore-path <金鑰儲存路徑>] [–krb5-config-path <krb5 設定路徑>] [–krb5-credential-cache-path <krb5 憑證快取路徑>] [–krb5-disable-remote-service-hostname-canonicalization] [–krb5-keytab-path <krb5 金鑰表路徑>] [–krb5-principal <krb5 主體>] [–krb5-remote-service-name <krb5 遠端服務名稱>] [–log-levels-file <記錄層級檔案>] [–output-format <輸出格式>] [–password] [–resource-estimate <資源預估>…] [–schema <綱要>] [–server <伺服器>] [–session <會話>…] [–socks-proxy <socks 代理>] [–source <來源>] [–truststore-password <信任儲存密碼>] [–truststore-path <信任儲存路徑>] [–user <使用者>] [–version]

選項
--access-token <存取權杖>

存取權杖

--catalog <目錄>

預設目錄

--client-info <客戶端資訊>

關於客戶端發出查詢的其他資訊

--client-request-timeout <客戶端請求逾時>

客戶端請求逾時 (預設:2 分鐘)

--client-tags <客戶端標籤>

客戶端標籤

--debug

啟用偵錯資訊

--disable-compression

停用查詢結果的壓縮

--execute <執行>

執行指定的語句並結束

--extra-credential <額外憑證>

額外憑證 (屬性可使用多次;格式為 key=value)

-f <檔案>, --file <檔案>

從檔案執行語句並結束

-h, --help

顯示說明資訊

--http-proxy <http 代理>

用於伺服器連線的 HTTP 代理

--ignore-errors

發生錯誤時在批次模式中繼續處理 (預設為立即結束)

--keystore-password <金鑰儲存密碼>

金鑰儲存密碼

--keystore-path <金鑰儲存路徑>

金鑰儲存路徑

--krb5-config-path <krb5 設定路徑>

Kerberos 設定檔路徑 (預設:/etc/krb5.conf)

--krb5-credential-cache-path <krb5 憑證快取路徑>

Kerberos 憑證快取路徑

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

停用使用 DNS 反向查詢的服務主機名稱正規化

--krb5-keytab-path <krb5 金鑰表路徑>

Kerberos 金鑰表路徑 (預設:/etc/krb5.keytab)

--krb5-principal <krb5 主體>

要使用的 Kerberos 主體

--krb5-remote-service-name <krb5 遠端服務名稱>

遠端對等點的 Kerberos 服務名稱

--log-levels-file <記錄層級檔案>

使用此檔案設定偵錯的記錄層級

--output-format <輸出格式>

批次模式的輸出格式 [ALIGNED、VERTICAL、CSV、TSV、CSV_HEADER、TSV_HEADER、NULL] (預設:CSV)

--password

提示輸入密碼

--resource-estimate <資源預估>

資源預估 (屬性可使用多次;格式為 key=value)

--runtime-stats

啟用執行階段統計資訊。此旗標必須與 –debug 旗標一起使用

--schema <綱要>

預設綱要

--server <伺服器>

Presto 伺服器位置 (預設:localhost:8080)

--session <會話>

會話屬性 (屬性可使用多次;格式為 key=value;使用 'SHOW SESSION' 查看可用的屬性)

--socks-proxy <socks 代理>

用於伺服器連線的 SOCKS 代理

--source <來源>

發出查詢的來源名稱

--truststore-password <信任儲存密碼>

信任儲存密碼

--truststore-path <信任儲存路徑>

信任儲存路徑

--user <使用者>

使用者名稱

--version

顯示版本資訊並結束