SQLAlchemy gebruiken met Azure Databricks
Azure Databricks biedt een SQLAlchemy-dialect (het systeem dat SQLAlchemy gebruikt om te communiceren met verschillende typen database-API-implementaties en -databases) voor Azure Databricks. SQLAlchemy is een Python SQL-toolkit en Object Relational Mapper (ORM). SQLAlchemy biedt een reeks bekende persistentiepatronen op ondernemingsniveau, ontworpen voor efficiënte en krachtige databasetoegang, aangepast in een eenvoudige en Pythonische domeintaal. Zie Functies en filosofie.
Het SQLAlchemy-dialect voor Azure Databricks is opgenomen in de Databricks SQL Connector voor Python. Dit artikel heeft betrekking op SQLAlchemy dialect voor Azure Databricks versie 2.0, waarvoor Databricks SQL Connector voor Python versie 3.0.0 of hoger is vereist.
Vereisten
- Een ontwikkelcomputer met Python >=3.8 en <=3.11.
- Databricks raadt u aan om virtuele Python-omgevingen te gebruiken, zoals die worden geleverd door venv die zijn opgenomen in Python. Virtuele omgevingen helpen ervoor te zorgen dat u de juiste versies van Python en de Databricks SQL Connector voor Python samen gebruikt. Het instellen en gebruiken van virtuele omgevingen valt buiten het bereik van dit artikel. Zie Virtuele omgevingen maken voor meer informatie.
- Een bestaand cluster of SQL-magazijn.
Aan de slag
Installeer de Databricks SQL Connector voor Python-bibliotheek versie 3.0.0 of hoger op uw ontwikkelcomputer door deze uit te voeren
pip install "databricks-sql-connector[sqlalchemy]"
ofpython -m pip install "databricks-sql-connector[sqlalchemy]"
. Zie de releasegeschiedenis van databricks-sql-connector voor versiegegevens.Verzamel de volgende informatie voor het cluster of SQL Warehouse dat u wilt gebruiken:
Cluster
- De hostnaam van de server van het cluster. U kunt deze ophalen uit de serverhostnaamwaarde op het tabblad Geavanceerde opties > JDBC/ODBC voor uw cluster.
- Het HTTP-pad van het cluster. U kunt dit ophalen uit de waarde van het HTTP-pad op het tabblad Geavanceerde opties > JDBC/ODBC voor uw cluster.
SQL Warehouse
- De hostnaam van de server van het SQL-warehouse. U kunt deze ophalen uit de serverhostnaamwaarde op het tabblad Verbindingsgegevens voor uw SQL-warehouse.
- Het HTTP-pad van het SQL-warehouse. U kunt dit ophalen uit de waarde van het HTTP-pad op het tabblad Verbindingsgegevens voor uw SQL-warehouse.
Verificatie
Het SQLAlchemy-dialect voor Azure Databricks ondersteunt verificatie van persoonlijke toegangstokens van Azure Databricks.
Als u een persoonlijk toegangstoken voor Azure Databricks wilt maken, volgt u de stappen in persoonlijke toegangstokens van Azure Databricks voor werkruimtegebruikers.
Gebruik het volgende codefragment om het SQLAlchemy-dialect te verifiëren. In dit fragment wordt ervan uitgegaan dat u de volgende omgevingsvariabelen hebt ingesteld:
DATABRICKS_TOKEN
, ingesteld op het persoonlijke toegangstoken van Azure Databricks.DATABRICKS_SERVER_HOSTNAME
ingesteld op de serverhostnaamwaarde voor uw cluster of SQL Warehouse.DATABRICKS_HTTP_PATH
, ingesteld op HTTP-padwaarde voor uw cluster of SQL Warehouse.DATABRICKS_CATALOG
, ingesteld op de doelcatalogus in Unity Catalog.DATABRICKS_SCHEMA
, ingesteld op het doelschema (ook wel een database genoemd) in Unity Catalog.
Als u omgevingsvariabelen wilt instellen, raadpleegt u de documentatie van uw besturingssysteem.
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}"
)
# ...
U gebruikt de voorgaande engine
variabele om verbinding te maken met uw opgegeven catalogus en schema via uw Azure Databricks-rekenresource. Zie de volgende sectie en het sqlalchemy.py-bestand in GitHub voor voorbeelden van verbindingen.
Opmerking
Zie het bestand sqlalchemy.py in GitHub.
DBAPI-verwijzing
- Zie het bestand README.sqlalchemy.md in GitHub.
- Zie ook de broncodemap van sqlalchemy in GitHub.