磚SQL CLI

請注意

本文介紹Databricks SQL CLI,它是按原樣提供的,Databricks不通過客戶技術支持渠道支持它。問題和功能請求可以通過問題頁麵的磚/ databricks-sql-cli在GitHub回購。

Databricks SQL命令行界麵(磚SQL CLI)使您能夠在現有的Databricks SQL上運行SQL查詢倉庫從您的終端或Windows命令提示符,而不是從Databricks SQL編輯器或Databricks筆記本等位置。從命令行中,您可以獲得建議和語法高亮顯示等生產力特性。

需求

  • 至少一個Databricks SQL倉庫查看可用的倉庫創建一個倉庫,如果你還沒有。

  • 你的倉庫連接細節.具體來說,你需要服務器主機名而且HTTP路徑值。

  • 一個磚個人訪問令牌創建個人訪問令牌,如果你還沒有。

  • Python3.7或更高版本。使用命令查看是否安裝了Python。使用實例python——版本從您的終端或命令提示符。(在某些係統上,您可能需要輸入python3相反)。安裝Python,如果您尚未安裝它。

  • 皮普, Python的包安裝程序。安裝較新的Python版本皮普默認情況下。檢查是否有皮普安裝完成後,運行該命令皮普——版本從您的終端或命令提示符。(在某些係統上,您可能需要輸入pip3相反)。pip安裝,如果您尚未安裝它。

  • (可選)用於創建和管理Python的實用程序虛擬環境,如venvvirtualenv,或pipenv.虛擬環境有助於確保您同時使用正確版本的Python和Databricks SQL CLI。設置和使用虛擬環境超出了本文的範圍。有關更多信息,請參見創建虛擬環境

安裝Databricks SQL命令行

在你見到需求,安裝磚SQL CLI從Python打包索引(PyPI)獲取包。您可以使用皮普,從PyPI安裝Databricks SQL CLI包皮普安裝databricks-sql-clipython- m皮普安裝databricks-sql-cli

pip安裝databricks-sql-cli#還是……Python -m PIP install databricks-sql-cli

身份驗證

您必須為Databricks SQL CLI提供Databricks SQL倉庫的身份驗證詳細信息,以便使用適當的訪問憑證調用目標倉庫。您可以通過以下幾種方式提供此信息:

  • dbsqlclirc設置文件的默認位置(或通過——clirc選項,每次使用Databricks SQL CLI運行命令時)。看到設置文件

  • 通過設置DBSQLCLI_HOST_NAMEDBSQLCLI_HTTP_PATH而且DBSQLCLI_ACCESS_TOKEN環境變量。看到環境變量

  • 通過指定——主機名——http-path,——訪問令牌選項,每次使用Databricks SQL CLI運行命令時。看到命令選項

請注意

dbsqlclirc設置文件必須存在,即使您設置了前麵的環境變量或指定了前麵的命令選項或兩者都指定。

無論何時運行Databricks SQL CLI,它都會按以下順序查找身份驗證詳細信息,在找到第一組詳細信息時停止:

  1. ——主機名——http-path,——訪問令牌選項。

  2. DBSQLCLI_HOST_NAMEDBSQLCLI_HTTP_PATH而且DBSQLCLI_ACCESS_TOKEN環境變量。

  3. dbsqlclirc控件指定的備用設置文件(或——clirc選項)。

設置文件

使用dbsqlclirc為您的Databricks SQL倉庫提供認證詳細信息,第一次運行Databricks SQL CLI,如下:

dbsqlcli

Databricks SQL CLI為您創建一個設置文件,在~ / .dbsqlcli / dbsqlclirc在Unix、Linux和macOS上運行% HOMEDRIVE % % HOMEPATH % \ .dbsqlcli \ dbsqlclirc% USERPROFILE % \ .dbsqlcli \ dbsqlclirc在Windows上。自定義該文件。

  1. 使用文本編輯器打開和編輯dbsqlclirc文件。

  2. 滾動到以下部分:

    # [credentials] # host_name = "" # http_path = "" # access_token = ""
  3. 把四個字符,:

    1. 旁邊host_name,進入你的倉庫服務器主機名價值來自於需求之間""字符。

    2. 旁邊http_path,進入你的倉庫HTTP路徑價值來自於需求之間""字符。

    3. 旁邊access_token,輸入您的個人訪問令牌值之間的要求""字符。

    例如:

    [credentials] host_name = "dbc-a1b2345c- d6e78.cloudd.www.eheci.com " http_path = "/sql/1.0/ repositories /1abc2d3456e7f890a" access_token = "dapi1234567890b2cd34ef5a67bc8de90fa12b"
  4. 保存dbsqlclirc文件。

或者,不使用dbsqlclirc文件的默認位置時,可以在不同的位置指定文件——clirc命令選項和備用文件的路徑。該備用文件的內容必須符合前麵的語法。

環境變量

使用DBSQLCLI_HOST_NAMEDBSQLCLI_HTTP_PATH,DBSQLCLI_ACCESS_TOKEN環境變量為Databricks SQL CLI提供您的Databricks SQL倉庫的身份驗證詳細信息,請執行以下操作:

設置僅針對當前終端會話的環境變量。要為所有終端會話設置環境變量,請在shell的啟動文件中輸入以下命令,然後重新啟動終端。在以下命令中,需要替換為:

  • DBSQLCLI_HOST_NAME你的倉庫的服務器主機名從需求中獲得價值。

  • DBSQLCLI_HTTP_PATH你的倉庫的HTTP路徑從需求中獲得價值。

  • DBSQLCLI_ACCESS_TOKEN您的個人訪問令牌值。

出口DBSQLCLI_HOST_NAME“dbc-a1b2345c-d6e78.cloud.www.eheci.com”出口DBSQLCLI_HTTP_PATH“/ sql / 1.0 /倉庫/ 1 abc2d3456e7f890a”出口DBSQLCLI_ACCESS_TOKEN“dapi1234567890b2cd34ef5a67bc8de90fa12b”

僅為當前命令提示符會話設置環境變量,執行以下命令,將值替換為:

  • DBSQLCLI_HOST_NAME你的倉庫的服務器主機名從需求中獲得價值。

  • DBSQLCLI_HTTP_PATH你的倉庫的HTTP路徑從需求中獲得價值。

  • DBSQLCLI_ACCESS_TOKEN您的個人訪問令牌值來自需求:

DBSQLCLI_HOST_NAME“dbc-a1b2345c-d6e78.cloud.www.eheci.com”DBSQLCLI_HTTP_PATH“/ sql / 1.0 /倉庫/ 1 abc2d3456e7f890a”DBSQLCLI_ACCESS_TOKEN“dapi1234567890b2cd34ef5a67bc8de90fa12b”

要為所有命令提示符會話設置環境變量,請運行以下命令,然後重新啟動命令提示符,將值替換為:

  • DBSQLCLI_HOST_NAME你的倉庫的服務器主機名從需求中獲得價值。

  • DBSQLCLI_HTTP_PATH你的倉庫的HTTP路徑從需求中獲得價值。

  • DBSQLCLI_ACCESS_TOKEN您的個人訪問令牌值。

對於setx DBSQLCLI_HOST_NAME“dbc-a1b2345c-d6e78.cloud.www.eheci.com”對於setx DBSQLCLI_HTTP_PATH“/ sql / 1.0 /倉庫/ 1 abc2d3456e7f890a”對於setx DBSQLCLI_ACCESS_TOKEN“dapi1234567890b2cd34ef5a67bc8de90fa12b”

命令選項

使用——主機名——http-path,——訪問令牌選項為Databricks SQL CLI提供您的Databricks SQL倉庫的身份驗證詳細信息,請執行以下操作:

每次使用Databricks SQL CLI運行命令時:

  • 指定——主機名選擇權和你的倉庫服務器主機名從需求中獲得價值。

  • 指定——http-path選擇權和你的倉庫HTTP路徑從需求中獲得價值。

  • 指定——訪問令牌選項和您的個人訪問令牌值。

例如:

dbsqlcli - e"SELECT * FROM default. "鑽石限製2”——主機名“dbc-a1b2345c-d6e78.cloud.www.eheci.com”——http-path“/ sql / 1.0 /倉庫/ 1 abc2d3456e7f890a”——訪問令牌“dapi1234567890b2cd34ef5a67bc8de90fa12b”

查詢資料

Databricks SQL命令行支持以下方式運行查詢:

  • 從一個查詢字符串

  • 從一個文件

  • 在讀-求值-打印循環中(REPL)方法。這種方法在您輸入時提供建議。

查詢字符串

要將查詢作為字符串運行,請使用- e選項,後跟查詢,表示為字符串。例如:

dbsqlcli - e"SELECT * FROM default. "鑽石限製2”

輸出:

_c0,克拉、切割、顏色、清晰、深度、表,價格,x, y, z1, 0.23,理想,E, SI2, 61.5, 55326, 3.95, 3.98, 2.432, 0.21,溢價,E, SI1, 59.8, 61326, 3.89, 3.84, 2.31

方法可切換輸出格式——表格格式選項以及諸如美國信息交換標準代碼對於ASCII表格式,例如:

dbsqlcli - e"SELECT * FROM default. "鑽石限製2”——表格格式ascii

輸出:

+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+|_c0|克拉|減少|顏色|清晰|深度|表格|價格|x|y|z|+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+|1|023)|理想的|E|SI2|61.5|55|326|3..95|3..98點|2||2|0. 21|溢價|E|SI1|59.8|61|326|3..89|3.|2。31|+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+

有關可用輸出格式值的列表,請參閱table_format設置在dbsqlclirc文件。

文件

要運行包含SQL的文件,請使用- e選項,後跟a的路徑. sql文件。例如:

dbsqlcli - e my-query.sql

示例的內容my-query.sql文件:

選擇默認的鑽石限製2

輸出:

_c0,克拉、切割、顏色、清晰、深度、表,價格,x, y, z1, 0.23,理想,E, SI2, 61.5, 55326, 3.95, 3.98, 2.432, 0.21,溢價,E, SI1, 59.8, 61326, 3.89, 3.84, 2.31

方法可切換輸出格式——表格格式選項以及諸如美國信息交換標準代碼對於ASCII表格式,例如:

dbsqlcli - e my-query.sql——表格格式ascii

輸出:

+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+|_c0|克拉|減少|顏色|清晰|深度|表格|價格|x|y|z|+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+|1|023)|理想的|E|SI2|61.5|55|326|3..95|3..98點|2||2|0. 21|溢價|E|SI1|59.8|61|326|3..89|3.|2。31|+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+

有關可用輸出格式值的列表,請參閱table_format設置在dbsqlclirc文件。

REPL

進入默認數據庫範圍內的REPL (read-evaluate-print loop)模式。

dbsqlcli

您也可以通過運行以下命令進入特定數據庫範圍內的REPL模式:

dbsqlcli <數據庫名稱>

例如:

dbsqlcli違約

退出REPL模式。

退出

在REPL模式下,可以使用以下字符和鍵:

  • 使用分號()來結束一行。

  • 使用F3切換多線模式。

  • 如果建議尚未顯示,則使用空格鍵在插入點上顯示建議。

  • 使用向上和向下箭頭來瀏覽建議。

  • 使用右箭頭完成高亮顯示的建議。

例如:

dbsqlcli默認主機名:default> SELECT * FROM diamonds LIMIT2+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+|_c0|克拉|減少|顏色|清晰|深度|表格|價格|x|y|z|+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+|1|023)|理想的|E|SI2|61.5|55|326|3..95|3..98點|2||2|0. 21|溢價|E|SI1|59.8|61|326|3..89|3.|2。31|+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+2時間:0.703s主機名:默認>退出

額外的資源