Condividi tramite


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 è incluso nel connettore SQL di Databricks per Python. Questo articolo illustra il dialetto SQLAlchemy per Azure Databricks versione 2.0, che richiede il connettore SQL di Databricks per Python versione 3.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.

Introduzione

  • Installare il connettore SQL di Databricks per la libreria Python versione 3.0.0 o successiva nel computer di sviluppo eseguendo pip install "databricks-sql-connector[sqlalchemy]" o python -m pip install "databricks-sql-connector[sqlalchemy]". Per informazioni sulla versione, consultare la cronologia delle versioni di databricks-sql-connector.

  • Raccogliere le informazioni seguenti per il cluster o SQL Warehouse da usare:

    Cluster

    • Nome host del server del cluster. È possibile ottenere questo valore dal valore Nome host server nella scheda Opzioni avanzate > JDBC/ODBC per il cluster.
    • Percorso HTTP del cluster. È possibile ottenere questo dal valore Percorso HTTP nella scheda Opzioni avanzate > JDBC/ODBC per il cluster.

    Warehouse SQL

    • Nome host del server di SQL Warehouse. È possibile ottenere questo valore dal valore Nome host server nella scheda Dettagli connessione per SQL warehouse.
    • Percorso HTTP del warehouse SQL. È possibile ottenere questo valore dal valore Percorso HTTP nella scheda Dettagli connessione per 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 sono state impostate le variabili di ambiente seguenti:

  • DATABRICKS_TOKEN, impostato sul token di accesso personale di Azure Databricks.
  • DATABRICKS_SERVER_HOSTNAMEimpostato sul valore Nome host server per il cluster o SQL Warehouse.
  • DATABRICKS_HTTP_PATH, impostato sul valore percorso HTTP per il cluster o SQL Warehouse.
  • 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, si veda la documentazione relativa al sistema operativo Windows utilizzato.

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}"
)

# ...

Usare la variabile precedente engine per connettersi al catalogo e allo schema specificati tramite la risorsa di calcolo di Azure Databricks. Per esempi di connessione, consultare la sezione seguente e il file sqlalchemy.py in GitHub.

Esempio

Consultare il file sqlalchemy.py in GitHub.

Riferimento DBAPI

Risorse aggiuntive