Usare SQLAlchemy con Azure Databricks
Azure Databricks fornisce un dialetto SQLAlchemy(il sistema SQLAlchemy usa per comunicare con vari tipi di implementazioni e database dell'API di database) per Azure Databricks. SQLAlchemy è un toolkit Python SQL e ORM (Object Relational Mapper). SQLAlchemy offre una suite di modelli di persistenza di livello aziendale noti, progettati per l'accesso efficiente e ad alte prestazioni al database, adattati in un linguaggio di dominio semplice e pythonico. Consultare Funzionalità e filosofia.
Il dialetto SQLAlchemy per Azure Databricks deve essere installato per usare le funzionalità SQLAlchemy con Azure Databricks. Questo articolo illustra il dialetto SQLAlchemy per Azure Databricks versione 1.0 e 2.0, che sarà basato su Databricks SQL Connector per Python versione 4.0.0 o successiva.
Requisiti
- Un computer di sviluppo che esegue Python >=3.8 e <=3.11.
- Databricks consiglia di usare ambienti virtuali Python, ad esempio quelli forniti da venv inclusi in Python. Gli ambienti virtuali consentono di assicurarsi di usare insieme le versioni corrette di Python e il connettore SQL di Databricks per Python. La configurazione e l'uso di ambienti virtuali non rientra nell'ambito di questo articolo. Per altre informazioni, consultare Creare ambienti virtuali.
- Un cluster esistente o SQL warehouse.
Get avviata
Installare databricks-sqlalchemy per SQLAlchemy v1 usando
pip install databricks-sqlalchemy~=1.0
o per SQLAlchemy v2 usandopip install databricks-sqlalchemy
. Per informazioni sulla versione, vedere la cronologia delle versioni di databricks-sqlalchemy.Raccogliere le informazioni seguenti per il cluster o SQL Warehouse da usare:
Cluster
- Nome host del server del cluster. È possibile
questo dal valore nome host server nella scheda per il cluster.Opzioni avanzate JDBC/ODBC - Percorso HTTP del cluster. È possibile
questo valore dal valore percorso HTTP nella scheda opzioni avanzate JDBC/ODBC per il cluster.
Warehouse SQL
- Nome host del server di SQL Warehouse. È possibile
dal valore nome host del server di nella scheda Dettagli connessione per SQL Warehouse. - Percorso HTTP del warehouse SQL. È possibile
dal valore percorso HTTP nella scheda dettagli connessione per SQL Warehouse.
- Nome host del server del cluster. È possibile
Autenticazione
Il dialetto SQLAlchemy per Azure Databricks supporta l'autenticazione del token di accesso personale di Azure Databricks.
Per creare un token di accesso personale di Azure Databricks, seguire la procedura descritta in Token di accesso personale di Azure Databricks per gli utenti dell'area di lavoro.
Per autenticare il dialetto SQLAlchemy, usare il frammento di codice seguente. Questo frammento presuppone che siano presenti le seguenti variabili di ambiente set:
-
DATABRICKS_TOKEN
, set al token di accesso personale di Azure Databricks. al valore nome host del server per il cluster o sql warehouse. - Percorso HTTP
DATABRICKS_HTTP_PATH
, set al valore per il cluster o magazzino SQL. -
DATABRICKS_CATALOG
, set al catalog di destinazione in Unity Catalog. -
DATABRICKS_SCHEMA
, set al schema di destinazione (noto anche come database) in Unity Catalog.
Per consultare le variabili di ambiente set, vedere la documentazione del sistema operativo.
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}"
)
# ...
Usi la variabile engine
precedente per connettersi ai catalog e schema specificati tramite la risorsa di calcolo di Azure Databricks.
SQLAlchemy v1
Per esempi di connessione, consultare questo file: example.py
SQLAlchemy v2
Per esempi di connessione, vedere la sezione seguente e il file sqlalchemy_example.py in GitHub.
Riferimento DBAPI
- databricks-sqlalchemy v1 repository GitHub
- SQLAlchemy v1 README.md
- databricks-sqlalchemy v2 repository di GitHub
- SQLAlchemy v2 README.md