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.

Get avviata

  • 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 questo dal valore nome host server nella scheda Opzioni avanzate JDBC/ODBC per il cluster.
    • 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.

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

Risorse aggiuntive