Używanie programu SQLAlchemy z usługą Azure Databricks
Usługa Azure Databricks udostępnia dialekt SQLAlchemy (system SQLAlchemyużywa do komunikowania się z różnymi typami implementacji i baz danych interfejsu API bazy danych) dla usługi Azure Databricks. SQLAlchemy to zestaw narzędzi języka Python SQL i maper relacyjny obiektów (ORM). SqlAlchemy udostępnia zestaw dobrze znanych wzorców trwałości na poziomie przedsiębiorstwa, zaprojektowanych pod kątem wydajnego i wydajnego dostępu do bazy danych, dostosowanego do prostego i języka pythonic. Zobacz Funkcje i filozofia.
Dialekt SQLAlchemy dla usługi Azure Databricks musi być zainstalowany, aby korzystać z funkcji SQLAlchemy w usłudze Azure Databricks. W tym artykule opisano dialekt SQLAlchemy dla usługi Azure Databricks w wersji 1.0 i 2.0, który będzie oparty na łączniku SQL Usługi Databricks dla języka Python w wersji 4.0.0 lub nowszej.
Wymagania
- Maszyna deweloperna z uruchomionym językiem Python >=3.8 i <=3.11.
- Usługa Databricks zaleca używanie środowisk wirtualnych języka Python, takich jak te udostępniane przez venv dołączone do języka Python. Środowiska wirtualne pomagają zapewnić, że używasz poprawnych wersji języka Python i łącznika SQL usługi Databricks dla języka Python. Konfigurowanie i używanie środowisk wirtualnych wykracza poza zakres tego artykułu. Aby uzyskać więcej informacji, zobacz Tworzenie środowisk wirtualnych.
- Istniejący klaster lub magazyn SQL Warehouse.
Zacznij
Zainstaluj usługę databricks-sqlalchemy dla programu SQLAlchemy w wersji 1 przy użyciu
pip install databricks-sqlalchemy~=1.0
lub sqlAlchemy w wersji 2 przy użyciupip install databricks-sqlalchemy
. Aby uzyskać informacje o wersji, zapoznaj się z historią wydań databricks-sqlalchemy.Zbierz następujące informacje dotyczące klastra lub magazynu SQL, którego chcesz użyć:
Klaster
- Nazwa hosta serwera klastra. Możesz uzyskać to z wartości Nazwa hosta na karcie Opcje zaawansowane > JDBC/ODBC dla swojego klastra.
- Ścieżka HTTP klastra. Możesz uzyskać to z wartości ścieżki HTTP w Opcjach zaawansowanych > na karcie JDBC/ODBC dla twojego klastra.
SQL Warehouse
- Nazwa hosta serwera usługi SQL Warehouse. Możesz to uzyskać z wartości nazwy hosta serwera na karcie Szczegóły połączenia dla magazynu danych SQL.
- Ścieżka HTTP usługi SQL Warehouse. Możesz to uzyskać z wartości ścieżki HTTP na karcie Szczegóły połączenia dla usługi SQL Warehouse.
Uwierzytelnianie
Dialekt SQLAlchemy dla usługi Azure Databricks obsługuje uwierzytelnianie osobistego tokenu dostępu usługi Azure Databricks.
Aby utworzyć osobisty token dostępu usługi Azure Databricks, wykonaj kroki opisane w artykule Osobiste tokeny dostępu usługi Azure Databricks dla użytkowników obszaru roboczego.
Aby uwierzytelnić dialekt SQLAlchemy, użyj następującego fragmentu kodu. W tym fragmencie kodu założono, że ustawiono następujące zmienne środowiskowe:
-
DATABRICKS_TOKEN
ustawiony na osobisty token dostępu usługi Azure Databricks. -
DATABRICKS_SERVER_HOSTNAME
ustawioną na wartość nazwy hosta serwera dla twojego klastra lub magazynu SQL. -
DATABRICKS_HTTP_PATH
ustaw wartość ścieżki HTTP dla klastra lub magazynu SQL. -
DATABRICKS_CATALOG
, ustawiony w katalogu docelowym katalogu Unity. -
DATABRICKS_SCHEMA
, ustawiony na schemat docelowy (znany również jako baza danych) w katalogu Unity.
Aby ustawić zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego.
import os
from sqlalchemy import create_engine
access_token = os.getenv("DATABRICKS_TOKEN")
server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME")
http_path = os.getenv("DATABRICKS_HTTP_PATH")
catalog = os.getenv("DATABRICKS_CATALOG")
schema = os.getenv("DATABRICKS_SCHEMA")
engine = create_engine(
url = f"databricks://token:{access_token}@{server_hostname}?" +
f"http_path={http_path}&catalog={catalog}&schema={schema}"
)
# ...
Poprzednia zmienna engine
służy do łączenia się z określonym wykazem i schematem za pośrednictwem zasobu obliczeniowego usługi Azure Databricks.
SQLAlchemy, wersja 1
Przykłady połączeń można znaleźć w tym example.py
SQLAlchemy, wersja 2
Przykłady połączeń można znaleźć w poniższej sekcji i pliku sqlalchemy_example.py w usłudze GitHub.
Dokumentacja interfejsu DBAPI
- repozytorium GitHub databricks-sqlalchemy w wersji 1
- SQLAlchemy v1 README.md
- databricks-sqlalchemy v2 repozytorium GitHub
- SQLAlchemy v2 README.md