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 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 usando pip 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 opzioni avanzate JDBC/ODBC per il cluster.

    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

Risorse aggiuntive