這很重要
Databricks SQL CLI 並未在積極開發中。
注意
本文涵蓋 Databricks SQL CLI,此 CLI 依現況提供,且 Databricks 不透過客戶技術支援管道提供支援。 您可以透過 GitHub 上 databricks/databricks-sql-cli 存放庫的問題頁面來傳達問題和功能要求。
Databricks SQL 命令列介面 (Databricks SQL CLI) 可讓您從終端機或 Windows 命令提示字元在現有 Databricks SQL 倉儲上執行 SQL 查詢,而不是從 Databricks SQL 編輯器或 Azure Databricks 筆記本等位置執行。 您可以從命令列取得生產力功能,例如建議和語法醒目提示。
需求
- 至少有一個 Databricks SQL 倉儲。 如果您還沒有倉儲,則建立倉儲。
-
Python 3.7 或更新版本。 若要檢查您是否已安裝 Python,請從終端機或命令提示字元執行命令
python --version。 (在某些系統上,您可能需要改為輸入python3。) 如果您尚未安裝 Python,請安裝 Python。 - 適用於 Python 的 pip 套件安裝程式。 較新版本的 Python 預設會安裝
pip。 若要檢查您是否已安裝pip,請從終端機或命令提示字元執行命令pip --version。 (在某些系統上,您可能需要改為輸入pip3。) 如果您尚未安裝 pip,請安裝 Python。 - (選擇性) 用來建立和管理 Python 虛擬環境的公用程式,例如 venv。 虛擬環境可協助您確保同時使用正確的 Python 版本和 Databricks SQL CLI。 設定和使用虛擬環境不屬於本文的討論範圍。 如需詳細資訊,請參閱建立虛擬環境。
安裝 Databricks SQL CLI
符合需求之後,請從 Python 封裝索引 (PyPI) 安裝 Databricks SQL CLI 套件。 您可以透過下列其中一個命令執行 pip,使用 pip 從 PyPI 安裝 Databricks SQL CLI 套件。
pip install databricks-sql-cli
# Or...
python -m pip install databricks-sql-cli
若要升級先前安裝的 Databricks SQL CLI 版本,請使用下列其中一個命令執行 pip。
pip install databricks-sql-cli --upgrade
# Or...
python -m pip install databricks-sql-cli --upgrade
若要檢查您已安裝的 Databricks SQL CLI 版本,請使用下列其中一個命令執行 pip。
pip show databricks-sql-cli
# Or...
python -m pip show databricks-sql-cli
驗證
若要進行驗證,您必須提供 Databricks SQL CLI 與倉儲的 連線詳細數據。 具體而言,您需要 [伺服器主機名稱] 和 [HTTP 路徑] 值。 您也必須使用適當的驗證認證來製作 Databricks SQL CLI。
Databricks SQL CLI 支援 Databricks 個人存取令牌 (PAT)。 若要使用 Azure Databricks PAT 驗證,您必須建立個人存取令牌。 如需此程式的詳細資訊,請參閱 使用 Azure Databricks 個人存取權杖 (舊版) 進行驗證。
不支援 Microsoft Entra ID 權杖。
您可透過數種方式,將此驗證資訊提供給 Databricks SQL CLI:
- 在預設位置的
dbsqlclirc設定檔案中 (或每次使用 Databricks SQL CLI 執行命令時,透過--clirc選項指定替代設定檔)。 請參閱設定檔案。 - 藉由設定
DBSQLCLI_HOST_NAME、DBSQLCLI_HTTP_PATH和DBSQLCLI_ACCESS_TOKEN環境變數。 請參閱環境變數。 - 每次使用 Databricks SQL CLI 執行命令時,都會指定
--hostname、--http-path和--access-token選項。 請參閱命令選項。
注意
即使您設定上述環境變數和/或指定上述命令選項,dbsqlclirc 設定檔案也必須存在。
每當執行 Databricks SQL CLI 時,它會依下列順序尋找驗證詳細資料,並在找到第一組詳細資料時停止:
-
--hostname、--http-path和--access-token選項。 -
DBSQLCLI_HOST_NAME、DBSQLCLI_HTTP_PATH和DBSQLCLI_ACCESS_TOKEN環境變數。 - 預設位置的
dbsqlclirc設定檔案 (或--clirc選項指定的替代設定檔案)。
設定檔案
若要使用 dbsqlclirc 設定檔為 Databricks SQL CLI 提供 Databricks SQL 倉儲的驗證詳細資料,請首次執行 Databricks SQL CLI,如下所示:
dbsqlcli
Databricks SQL CLI 會為您在 Unix、Linux 和 macOS 上的 ~/.dbsqlcli/dbsqlclirc,以及 Windows 上的 %HOMEDRIVE%%HOMEPATH%\.dbsqlcli\dbsqlclirc 或 %USERPROFILE%\.dbsqlcli\dbsqlclirc 上建立設定檔。 若要自訂此檔案:
使用文字編輯器開啟並編輯
dbsqlclirc檔案。捲動至下列章節:
# [credentials] # host_name = "" # http_path = "" # access_token = ""移除四個
#字元,並:- 在
host_name旁,於之間的需求中,輸入您的倉儲的""值。 - 在
http_path旁邊,在字元之間輸入您倉儲的需求中的""值。 - 在
access_token旁邊,從字元之間的""需求輸入您的個人存取權杖值。
例如:
[credentials] host_name = "adb-12345678901234567.8.azuredatabricks.net" http_path = "/sql/1.0/warehouses/1abc2d3456e7f890a" access_token = "dapi12345678901234567890123456789012"- 在
儲存
dbsqlclirc檔案。
或者,您可以藉由將 dbsqlclirc 命令選項和路徑新增至替代檔案,來指定位於不同位置的檔案,而不是在其預設位置使用 --clirc 檔案。 該替代檔案的內容必須符合上述語法。
環境變數
若要使用 DBSQLCLI_HOST_NAME、 DBSQLCLI_HTTP_PATH和 DBSQLCLI_ACCESS_TOKEN 環境變數,為 Databricks SQL CLI 提供 Databricks SQL 倉儲的驗證詳細資料,請執行下列動作:
Unix、Linux 和 macOS
若要只設定目前終端機工作階段的環境變數,請執行下列命令。 若要設定所有終端機會話的環境變數,請在 Shell 的啟動配置文件中輸入下列命令,然後重啟您的終端機。 在下列命令中,取代下列值:
-
DBSQLCLI_HOST_NAME使用來自需求的倉儲 伺服器主機名 值。 -
DBSQLCLI_HTTP_PATH使用來自需求的資料庫 HTTP 路徑 值。 - 使用來自需求的個人存取權杖值取代
DBSQLCLI_ACCESS_TOKEN值。
export DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
export DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
export DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
窗戶
若要只設定目前命令提示字元工作階段的環境變數,請執行下列命令,並取代下列值:
-
DBSQLCLI_HOST_NAME使用來自需求的倉儲 伺服器主機名 值。 -
DBSQLCLI_HTTP_PATH使用來自需求的資料庫 HTTP 路徑 值。 - 使用來自需求的個人存取權杖值取代
DBSQLCLI_ACCESS_TOKEN值:
set DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
set DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
set DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
若要設定所有命令提示字元工作階段的環境變數,請執行下列命令,然後重新啟動命令提示字元,並取代下列值:
-
DBSQLCLI_HOST_NAME使用來自需求的倉儲 伺服器主機名 值。 -
DBSQLCLI_HTTP_PATH使用來自需求的資料庫 HTTP 路徑 值。 - 使用來自需求的個人存取權杖值取代
DBSQLCLI_ACCESS_TOKEN值。
setx DBSQLCLI_HOST_NAME "adb-12345678901234567.8.azuredatabricks.net"
setx DBSQLCLI_HTTP_PATH "/sql/1.0/warehouses/1abc2d3456e7f890a"
setx DBSQLCLI_ACCESS_TOKEN "dapi12345678901234567890123456789012"
命令選項
若要使用 --hostname、 --http-path和 --access-token 選項,為 Databricks SQL CLI 提供 Databricks SQL 倉儲的驗證詳細資料,請執行下列動作:
每次使用 Databricks SQL CLI 執行命令時,請執行下列動作:
- 根據需求指定
--hostname選項和倉庫伺服器的 主機名稱 值。 - 從需求指定
--http-path選項和倉儲的 HTTP 路徑 值。 - 從需求指定
--access-token選項和您的個人存取權杖值。
例如:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" \
--hostname "adb-12345678901234567.8.azuredatabricks.net" \
--http-path "/sql/1.0/warehouses/1abc2d3456e7f890a" \
--access-token "dapi12345678901234567890123456789012"
查詢來源
Databricks SQL CLI 能讓您以下列方式執行查詢:
查詢字串
若要以字串的形式執行查詢,請使用 -e 選項,後面接著查詢,以字串表示。 例如:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2"
輸出:
_c0,carat,cut,color,clarity,depth,table,price,x,y,z
1,0.23,Ideal,E,SI2,61.5,55,326,3.95,3.98,2.43
2,0.21,Premium,E,SI1,59.8,61,326,3.89,3.84,2.31
若要切換輸出格式,請使用 --table-format 選項以及一個值,如 ASCII 資料表格式的 ascii,例如:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" --table-format ascii
輸出:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut | color | clarity | depth | table | price | x | y | z |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1 | 0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
| 2 | 0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
如需可用輸出格式值的清單,請參閱 table_format 檔案中設定的 dbsqlclirc 註解。
檔案
若要執行包含 SQL 的檔案,使用 -e 選項,後面接著 .sql 檔案的路徑。 例如:
dbsqlcli -e my-query.sql
my-query.sql 檔案範例的內容:
SELECT * FROM default.diamonds LIMIT 2;
輸出:
_c0,carat,cut,color,clarity,depth,table,price,x,y,z
1,0.23,Ideal,E,SI2,61.5,55,326,3.95,3.98,2.43
2,0.21,Premium,E,SI1,59.8,61,326,3.89,3.84,2.31
若要切換輸出格式,請使用 --table-format 選項以及一個值,如 ASCII 資料表格式的 ascii,例如:
dbsqlcli -e my-query.sql --table-format ascii
輸出:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut | color | clarity | depth | table | price | x | y | z |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1 | 0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
| 2 | 0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
如需可用輸出格式值的清單,請參閱 table_format 檔案中設定的 dbsqlclirc 註解。
REPL
若要輸入範圍限定為預設資料庫的讀取-評估-列印迴圈 (REPL) 模式,請執行下列命令:
dbsqlcli
您也可以執行下列命令,以進入範圍限定為特定資料庫的 REPL 模式:
dbsqlcli <database-name>
例如:
dbsqlcli default
若要離開 REPL 模式,請執行下列命令:
exit
在 REPL 模式中,您可使用下列字元和索引鍵:
- 使用分號 (
;) 結束一行。 - 使用 F3 切換多行模式。
- 如果尚未顯示建議,使用空格鍵在插入點顯示建議。
- 使用向上和向下鍵瀏覽建議。
- 使用向右鍵來完成醒目提示的建議。
例如:
dbsqlcli default
hostname:default> SELECT * FROM diamonds LIMIT 2;
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut | color | clarity | depth | table | price | x | y | z |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1 | 0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
| 2 | 0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
2 rows in set
Time: 0.703s
hostname:default> exit
記錄
Databricks SQL CLI 預設會將其訊息記錄至檔案 ~/.dbsqlcli/app.log。 若要變更此檔案名稱或位置,請變更 log_filedbsqlclirc中 設定的值。
根據預設,訊息會記錄在 INFO 記錄層級及以下。 若要變更此記錄層級,請變更 log_level 設定檔案中 dbsqlclirc 設定的值。 可用的記錄層級值包括 CRITICAL、ERROR、WARNING、INFO 和 DEBUG,並會依該順序進行評估。
NONE 停用記錄。