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 moet worden geïnstalleerd om de SQLAlchemy-functies te kunnen gebruiken met Azure Databricks. In dit artikel wordt het SQLAlchemy-dialect voor Azure Databricks versie 1.0 en 2.0 behandeld. Dit is gebaseerd op Databricks SQL Connector voor Python versie 4.0.0 of hoger.
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 databricks-sqlalchemy voor SQLAlchemy v1 met behulp van
pip install databricks-sqlalchemy~=1.0
of voor SQLAlchemy v2 met behulp vanpip install databricks-sqlalchemy
. Zie de releasegeschiedenis van databricks-sqlalchemyvoor versie-informatie.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 dit ophalen uit de serverhostnaam waarde op het tabblad Geavanceerde opties > JDBC/ODBC- voor uw cluster.
- Het HTTP-pad van het cluster. U kunt dit ophalen uit de HTTP-padwaarde op het tabblad Geavanceerde opties > JDBC/ODBC- voor uw cluster.
SQL Warehouse
- De hostnaam van de server van het SQL-warehouse. U kunt dit ophalen uit de serverhostnaam waarde op het tabblad Verbindingsdetails voor uw SQL-warehouse.
- Het HTTP-pad van het SQL-warehouse. U kunt dit ophalen uit het HTTP-pad waarde 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
instellen op de persoonlijke toegangstoken van Azure Databricks. -
DATABRICKS_SERVER_HOSTNAME
ingesteld op de Server-hostnaam waarde voor uw cluster of SQL Warehouse. -
DATABRICKS_HTTP_PATH
, ingesteld op HTTP-pad waarde 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.
SQLAlchemy v1
Raadpleeg deze example.py voor verbindingsvoorbeelden
SQLAlchemy v2
Zie de volgende sectie en het sqlalchemy_example.py-bestand in GitHub voor verbindingsvoorbeelden.
DBAPI-verwijzing
- databricks-sqlalchemy v1 GitHub-opslagplaats
- SQLAlchemy v1-README.md
- Databricks-sqlalchemy v2 GitHub-opslagplaats
- SQLAlchemy v2 README.md