Freigeben über


Verwenden von SQLAlchemy mit Azure Databricks

Azure Databricks bietet einen SQLAlchemy-Dialekt (das System SQLAlchemy verwendet diesen, um mit verschiedenen Arten von Datenbank-API-Implementierungen und Datenbanken zu kommunizieren) für Azure Databricks. SQLAlchemy ist ein Python SQL-Toolkit und Object Relational Mapper (ORM). SQLAlchemy bietet eine Reihe bekannter Persistenzmuster auf Unternehmensniveau, die für einen effizienten und leistungsstarken Datenbankzugriff entwickelt wurden, angepasst an eine einfache und pythonische Domänensprache. Siehe Funktionen und Philosophie.

Der SQLAlchemy-Dialekt für Azure Databricks muss installiert werden, um die SQLAlchemy-Features mit Azure Databricks zu verwenden. In diesem Artikel wird der SQLAlchemy-Dialekt für Azure Databricks, Version 1.0 und 2.0, behandelt, der auf Databricks SQL Connector für Python Version 4.0.0 oder höher basiert.

Anforderungen

  • Ein Entwicklungscomputer mit Python >=3.8 und <=3.11.
  • Databricks empfiehlt die Verwendung von virtuellen Python-Umgebungen, etwa denen, die von venv bereitgestellt werden und in Python enthalten sind. Mithilfe virtueller Umgebungen kann sichergestellt werden, dass Sie die richtigen Versionen von Python und des Databricks SQL-Connectors für Python zusammen verwenden. Einrichtung und Verwendung virtueller Umgebungen werden in diesem Artikel nicht behandelt. Weitere Informationen finden Sie unter Erstellen virtueller Umgebungen.
  • Ein vorhandener Cluster oder vorhandenes SQL-Warehouse.

Erste Schritte

  • Installieren Sie databricks-sqlalchemy für SQLAlchemy v1 mit pip install databricks-sqlalchemy~=1.0 oder für SQLAlchemy v2 mit pip install databricks-sqlalchemy. Versionsinformationen finden Sie im Releaseverlauf von databricks-sqlalchemy.

  • Sammeln Sie die folgenden Informationen über den Cluster oder das SQL-Warehouse, den oder das Sie verwenden möchten:

    Kluster

    SQL-Warehouse

    • Den Serverhostnamen des SQL-Warehouses. Sie finden diesen im Wert Serverhostname auf der Registerkarte Verbindungsdetails für Ihr SQL-Warehouse.
    • Den HTTP-Pfad des SQL-Warehouses. Sie finden diesen im Wert HTTP-Pfad auf der Registerkarte Verbindungsdetails für Ihr SQL-Warehouse.

Authentifizierung

Der SQLAlchemy-Dialekt für Azure Databricks unterstützt die Authentifizierung mit persönlichen Zugriffstoken von Azure Databricks.

Führen Sie zum Erstellen eines persönlichen Azure Databricks-Zugriffstokens die Schritte in Azure Databricks persönliche Zugriffstoken für Arbeitsbereichsbenutzer aus.

Verwenden Sie den folgenden Codeschnipsel, um den SQLAlchemy-Dialekt zu authentifizieren. Bei diesem Codeschnipsel wird davon ausgegangen, dass Sie die folgenden Umgebungsvariablen festgelegt haben:

  • DATABRICKS_TOKEN ist auf das persönliche Azure Databricks-Zugriffstoken festgelegt.
  • DATABRICKS_SERVER_HOSTNAMEauf den Wert für den Server-Hostnamen Ihres Clusters oder SQL-Warehouses gesetzt.
  • DATABRICKS_HTTP_PATH ist auf den Wert von HTTP-Pfad für Ihren Cluster oder Ihr SQL-Warehouse festgelegt.
  • DATABRICKS_CATALOG, auf den Zielkatalog in Unity Catalog festgelegt.
  • DATABRICKS_SCHEMA, auf das Zielschema (auch Datenbank genannt) in Unity Catalog festgelegt.

Informationen zum Festlegen von Umgebungsvariablen finden Sie in der Dokumentation Ihres Betriebssystems.

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

# ...

Sie verwenden die vorangehende engine-Variable, um über Ihre Azure Databricks-Computeressource eine Verbindung mit Ihrem angegebenen Katalog und Schema herzustellen.

SQLAlchemy v1

Informationen zu Verbindungsbeispielen finden Sie in diesem example.py

SQLAlchemy v2

Verbindungsbeispiele finden Sie im folgenden Abschnitt und in der datei sqlalchemy_example.py in GitHub.

DBAPI-Referenz

Zusätzliche Ressourcen