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.
Inizia
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 ottenerlo dal valore Server Hostname nella scheda Opzioni avanzate> JDBC/ODBC per il cluster.
- Percorso HTTP del cluster. È possibile ottenerlo dal valore percorso HTTP
nella scheda JDBC/ODBC per il cluster.opzioni avanzate
Warehouse SQL
- Nome host del server di SQL Warehouse. È possibile ottenere questo dal valore hostname del server
nella scheda Dettagli connessione per il SQL Warehouse. - Percorso HTTP del warehouse SQL. È possibile ottenerlo dal valore percorso HTTP nella scheda Dettagli connessione per il tuo SQL Warehouse.
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 state impostate le variabili di ambiente seguenti:
-
DATABRICKS_TOKEN
, impostare sul token di accesso personale di Azure Databricks. impostato sul valore nome host del server per il cluster o SQL Warehouse. -
DATABRICKS_HTTP_PATH
, impostato su il valore del percorso HTTP per il tuo cluster o magazzino dati SQL. -
DATABRICKS_CATALOG
, impostato sul catalogo di destinazione in Unity Catalog. -
DATABRICKS_SCHEMA
, impostato sullo schema di destinazione (noto anche come database) in Unity Catalog.
Per impostare le variabili di ambiente, 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 al catalogo e allo 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