Interfejs wiersza polecenia SQL usługi Databricks
Uwaga
W tym artykule opisano interfejs wiersza polecenia SQL usługi Databricks, który jest udostępniany jako i nie jest obsługiwany przez usługę Databricks za pośrednictwem kanałów pomocy technicznej klienta. Pytania i żądania funkcji można przekazać za pośrednictwem strony Problemy w repozytorium databricks/databricks-sql-cli w usłudze GitHub.
Interfejs wiersza polecenia SQL usługi Databricks (interfejs wiersza polecenia SQL usługi Databricks) umożliwia uruchamianie zapytań SQL w istniejących magazynach SQL usługi Databricks z poziomu terminalu lub wiersza polecenia systemu Windows zamiast z lokalizacji, takich jak edytor SQL usługi Databricks lub notes usługi Azure Databricks. W wierszu polecenia uzyskasz funkcje produktywności, takie jak sugestie i wyróżnianie składni.
Wymagania
- Co najmniej jeden magazyn SQL usługi Databricks. Utwórz magazyn, jeśli jeszcze go nie masz.
- Środowisko Python w wersji 3.7 lub nowszej. Aby sprawdzić, czy masz zainstalowany język Python, uruchom polecenie
python --version
z poziomu terminalu lub wiersza polecenia. (W niektórych systemach może być konieczne wprowadzeniepython3
). Zainstaluj język Python, jeśli jeszcze go nie zainstalowano. - , instalator pakietu dla języka Python. Nowsze wersje języka Python są
pip
instalowane domyślnie. Aby sprawdzić, czy zainstalowanopip
polecenie, uruchom poleceniepip --version
z poziomu terminalu lub wiersza polecenia. (W niektórych systemach może być konieczne wprowadzeniepip3
). Zainstaluj narzędzie, jeśli nie masz jeszcze zainstalowanego narzędzia . - (Opcjonalnie) Narzędzie do tworzenia środowisk wirtualnych języka Python i zarządzania nimi, takich jak venv. Środowiska wirtualne pomagają zapewnić, że używasz poprawnych wersji języka Python i interfejsu wiersza polecenia SQL usługi Databricks. Konfigurowanie i używanie środowisk wirtualnych wykracza poza zakres tego artykułu. Aby uzyskać więcej informacji, zobacz Tworzenie środowisk wirtualnych.
Instalowanie interfejsu wiersza polecenia sql usługi Databricks
Po spełnieniu wymagań zainstaluj pakiet interfejsu wiersza polecenia SQL usługi Databricks z indeksu pakietów języka Python (PyPI). Możesz użyć pip
polecenia , aby zainstalować pakiet interfejsu wiersza polecenia SQL usługi Databricks z poziomu interfejsu PyPI, uruchamiając pip
jedno z następujących poleceń.
pip install databricks-sql-cli
# Or...
python -m pip install databricks-sql-cli
Aby uaktualnić wcześniej zainstalowaną wersję interfejsu wiersza polecenia SQL usługi Databricks, uruchom polecenie pip
za pomocą jednego z następujących poleceń.
pip install databricks-sql-cli --upgrade
# Or...
python -m pip install databricks-sql-cli --upgrade
Aby sprawdzić zainstalowaną wersję interfejsu wiersza polecenia SQL usługi Databricks, uruchom pip
polecenie za pomocą jednego z następujących poleceń.
pip show databricks-sql-cli
# Or...
python -m pip show databricks-sql-cli
Uwierzytelnianie
Aby przeprowadzić uwierzytelnianie, musisz podać interfejs wiersza polecenia SQL usługi Databricks ze szczegółami połączenia magazynu. W szczególności potrzebne są wartości Nazwa hosta serwera i Ścieżka HTTP. Musisz również produktować interfejs wiersza polecenia SQL usługi Databricks z odpowiednimi poświadczeniami uwierzytelniania.
Interfejs wiersza polecenia SQL usługi Databricks obsługuje osobiste tokeny dostępu (PAT) usługi Databricks. Aby użyć uwierzytelniania pat usługi Azure Databricks, należy utworzyć osobisty token dostępu. Aby uzyskać szczegółowe informacje na temat tego procesu, zobacz Uwierzytelnianie osobistego tokenu dostępu w usłudze Azure Databricks.
Tokeny identyfikatora Entra firmy Microsoft nie są obsługiwane.
Te informacje uwierzytelniania można podać w interfejsie wiersza polecenia SQL usługi Databricks na kilka sposobów:
- W pliku ustawień w domyślnej
dbsqlclirc
lokalizacji (lub przez określenie pliku ustawień alternatywnych za pomocą opcji za każdym razem, gdy uruchamiasz polecenie za pomocą--clirc
interfejsu wiersza polecenia SQL usługi Databricks). Zobacz Plik ustawień. - Ustawiając
DBSQLCLI_HOST_NAME
zmienne środowiskowe iDBSQLCLI_ACCESS_TOKEN
.DBSQLCLI_HTTP_PATH
Zobacz Zmienne środowiskowe. - Określając
--hostname
opcje ,--http-path
i--access-token
za każdym razem, gdy uruchamiasz polecenie za pomocą interfejsu wiersza polecenia SQL usługi Databricks. Zobacz Opcje poleceń.
Uwaga
Plik dbsqlclirc
ustawień musi być obecny, nawet jeśli ustawisz poprzednie zmienne środowiskowe lub określ poprzednie opcje polecenia lub oba te opcje.
Za każdym razem, gdy uruchamiasz interfejs wiersza polecenia SQL usługi Databricks, szuka szczegółów uwierzytelniania w następującej kolejności i zatrzymuje się po znalezieniu pierwszego zestawu szczegółów:
- Opcje
--hostname
,--http-path
i--access-token
. DBSQLCLI_HOST_NAME
Zmienne środowiskowe iDBSQLCLI_ACCESS_TOKEN
DBSQLCLI_HTTP_PATH
.dbsqlclirc
Plik ustawień w domyślnej--clirc
lokalizacji (lub plik ustawień alternatywnych określony przez opcję).
Plik ustawień
Aby użyć pliku ustawień w celu udostępnienia interfejsu dbsqlclirc
wiersza polecenia SQL usługi Databricks ze szczegółami uwierzytelniania dla usługi Databricks SQL Warehouse, uruchom interfejs wiersza polecenia SQL usługi Databricks po raz pierwszy w następujący sposób:
dbsqlcli
Interfejs wiersza polecenia SQL usługi Databricks tworzy plik ustawień w ~/.dbsqlcli/dbsqlclirc
systemach Unix, Linux i macOS oraz w %HOMEDRIVE%%HOMEPATH%\.dbsqlcli\dbsqlclirc
systemie Windows lub %USERPROFILE%\.dbsqlcli\dbsqlclirc
w systemie Windows. Aby dostosować ten plik:
Użyj edytora tekstów, aby otworzyć i edytować
dbsqlclirc
plik.Przewiń do następującej sekcji:
# [credentials] # host_name = "" # http_path = "" # access_token = ""
Usuń cztery
#
znaki i:host_name
Obok pozycji wprowadź wartość nazwy hosta serwera magazynu z wymagań między znakami""
.http_path
Obok pozycji wprowadź wartość ścieżki HTTP magazynu z wymagań między znakami""
.access_token
Obok pozycji wprowadź wartość osobistego tokenu dostępu z wymagań między znakami""
.
Na przykład:
[credentials] host_name = "adb-12345678901234567.8.azuredatabricks.net" http_path = "/sql/1.0/warehouses/1abc2d3456e7f890a" access_token = "dapi12345678901234567890123456789012"
Zapisz plik
dbsqlclirc
.
Alternatywnie zamiast używać dbsqlclirc
pliku w jego domyślnej lokalizacji, można określić plik w innej lokalizacji, dodając --clirc
opcję polecenia i ścieżkę do pliku alternatywnego. Zawartość tego pliku alternatywnego musi być zgodna z poprzednią składnią.
Zmienne środowiskowe
Aby użyć zmiennych środowiskowych , DBSQLCLI_HTTP_PATH
i DBSQLCLI_ACCESS_TOKEN
w celu udostępnienia interfejsu DBSQLCLI_HOST_NAME
wiersza polecenia SQL usługi Databricks ze szczegółami uwierzytelniania dla usługi Databricks SQL Warehouse, wykonaj następujące czynności:
Unix, Linux i macOS
Aby ustawić zmienne środowiskowe tylko dla bieżącej sesji terminalu, uruchom następujące polecenia. Aby ustawić zmienne środowiskowe dla wszystkich sesji terminalu, wprowadź następujące polecenia w pliku uruchamiania powłoki, a następnie uruchom ponownie terminal. W następujących poleceniach zastąp wartość :
DBSQLCLI_HOST_NAME
z wartością nazwa hosta serwera magazynu z wymagań.DBSQLCLI_HTTP_PATH
z wartością ścieżki HTTP magazynu z wymagań.DBSQLCLI_ACCESS_TOKEN
z wartością osobistego tokenu dostępu z wymagań.
export DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
export DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
export DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
Windows
Aby ustawić zmienne środowiskowe tylko dla bieżącej sesji wiersza polecenia, uruchom następujące polecenia, zastępując wartość :
DBSQLCLI_HOST_NAME
z wartością nazwa hosta serwera magazynu z wymagań.DBSQLCLI_HTTP_PATH
z wartością ścieżki HTTP magazynu z wymagań.DBSQLCLI_ACCESS_TOKEN
z wartością osobistego tokenu dostępu z wymagań.
set DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
set DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
set DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
Aby ustawić zmienne środowiskowe dla wszystkich sesji wiersza polecenia, uruchom następujące polecenia, a następnie uruchom ponownie wiersz polecenia, zastępując wartość :
DBSQLCLI_HOST_NAME
z wartością nazwa hosta serwera magazynu z wymagań.DBSQLCLI_HTTP_PATH
z wartością ścieżki HTTP magazynu z wymagań.DBSQLCLI_ACCESS_TOKEN
z wartością osobistego tokenu dostępu z wymagań.
setx DBSQLCLI_HOST_NAME "adb-12345678901234567.8.azuredatabricks.net"
setx DBSQLCLI_HTTP_PATH "/sql/1.0/warehouses/1abc2d3456e7f890a"
setx DBSQLCLI_ACCESS_TOKEN "dapi12345678901234567890123456789012"
Opcje poleceń
Aby użyć opcji , --http-path
i --access-token
w celu udostępnienia interfejsu --hostname
wiersza polecenia SQL usługi Databricks ze szczegółami uwierzytelniania dla usługi Databricks SQL Warehouse, wykonaj następujące czynności:
Wykonaj następujące czynności za każdym razem, gdy uruchamiasz polecenie za pomocą interfejsu wiersza polecenia SQL usługi Databricks:
--hostname
Określ opcję i wartość nazwy hosta serwera magazynu z wymagań.--http-path
Określ opcję i wartość ścieżki HTTP magazynu z wymagań.--access-token
Określ opcję i wartość osobistego tokenu dostępu z wymagań.
Na przykład:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" \
--hostname "adb-12345678901234567.8.azuredatabricks.net" \
--http-path "/sql/1.0/warehouses/1abc2d3456e7f890a" \
--access-token "dapi12345678901234567890123456789012"
Źródła zapytań
Interfejs wiersza polecenia SQL usługi Databricks umożliwia uruchamianie zapytań na następujące sposoby:
- Z ciągu zapytania.
- Z pliku.
- W podejściu rePL (read-evaluate-print loop). Takie podejście zapewnia sugestie podczas wpisywania.
Ciąg zapytania
Aby uruchomić zapytanie jako ciąg, użyj -e
opcji, po której następuje zapytanie, reprezentowane jako ciąg. Na przykład:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2"
Wyjście:
_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
Aby przełączyć formaty wyjściowe, użyj --table-format
opcji wraz z wartością, taką jak ascii
format tabeli ASCII, na przykład:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" --table-format ascii
Wyjście:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _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 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
Aby uzyskać listę dostępnych wartości formatu danych wyjściowych, zobacz komentarze dotyczące table_format
ustawienia w dbsqlclirc
pliku.
Plik
Aby uruchomić plik zawierający sql, użyj -e
opcji , po której następuje ścieżka do .sql
pliku. Na przykład:
dbsqlcli -e my-query.sql
Zawartość przykładowego my-query.sql
pliku:
SELECT * FROM default.diamonds LIMIT 2;
Wyjście:
_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
Aby przełączyć formaty wyjściowe, użyj --table-format
opcji wraz z wartością, taką jak ascii
format tabeli ASCII, na przykład:
dbsqlcli -e my-query.sql --table-format ascii
Wyjście:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _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 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
Aby uzyskać listę dostępnych wartości formatu danych wyjściowych, zobacz komentarze dotyczące table_format
ustawienia w dbsqlclirc
pliku.
REPL
Aby wprowadzić tryb pętli REPL (read-evaluate-print loop) o określonym zakresie dla domyślnej bazy danych, uruchom następujące polecenie:
dbsqlcli
Możesz również wprowadzić tryb REPL o określonym zakresie dla określonej bazy danych, uruchamiając następujące polecenie:
dbsqlcli <database-name>
Na przykład:
dbsqlcli default
Aby zamknąć tryb REPL, uruchom następujące polecenie:
exit
W trybie REPL można użyć następujących znaków i kluczy:
- Użyj średnika (
;
), aby zakończyć wiersz. - Przełącz tryb wielowierszowy za pomocą F3 .
- Użyj paska spacji, aby wyświetlić sugestie w punkcie wstawiania, jeśli sugestie nie są jeszcze wyświetlane.
- Użyj strzałek w górę i w dół, aby nawigować po sugestiach.
- Użyj strzałki w prawo, aby ukończyć wyróżnioną sugestię.
Na przykład:
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
Rejestrowanie
Interfejs wiersza polecenia SQL usługi Databricks domyślnie rejestruje komunikaty w pliku ~/.dbsqlcli/app.log
. Aby zmienić tę nazwę pliku lub lokalizację, zmień wartość log_file
ustawienia w dbsqlclirc
pliku ustawień.
Domyślnie komunikaty są rejestrowane na INFO
poziomie dziennika i poniżej. Aby zmienić ten poziom dziennika, zmień wartość log_level
ustawienia w dbsqlclirc
pliku ustawień. Dostępne wartości poziomu dziennika obejmują CRITICAL
wartości , , ERROR
WARNING
, INFO
i DEBUG
i są oceniane w tej kolejności. NONE
wyłącza rejestrowanie.