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.
Ga als volgt te werk om een persoonlijk toegangstoken voor Azure Databricks te maken:
- Klik in uw Azure Databricks-werkruimte op uw Azure Databricks-gebruikersnaam in de bovenste balk en selecteer vervolgens Instellingen in de vervolgkeuzelijst.
- Klik op Ontwikkelaars.
- Klik naast Access-tokens op Beheren.
- Klik op Nieuw token genereren.
- (Optioneel) Voer een opmerking in waarmee u dit token in de toekomst kunt identificeren en de standaardlevensduur van het token van 90 dagen kunt wijzigen. Als u een token zonder levensduur wilt maken (niet aanbevolen), laat u het vak Levensduur (dagen) leeg (leeg).
- Klik op Genereren.
- Kopieer het weergegeven token naar een veilige locatie en klik vervolgens op Gereed.
Notitie
Zorg ervoor dat u het gekopieerde token op een veilige locatie opslaat. Deel uw gekopieerde token niet met anderen. Als u het gekopieerde token kwijtraakt, kunt u dat token niet opnieuw genereren. In plaats daarvan moet u deze procedure herhalen om een nieuw token te maken. Als u het gekopieerde token kwijtraakt of als u denkt dat het token is aangetast, raadt Databricks u ten zeerste aan dat u dat token onmiddellijk uit uw werkruimte verwijdert door te klikken op het prullenbakpictogram (Intrekken) naast het token op de pagina Toegangstokens .
Als u geen tokens in uw werkruimte kunt maken of gebruiken, kan dit komen doordat uw werkruimtebeheerder tokens heeft uitgeschakeld of u geen toestemming hebt gegeven om tokens te maken of te gebruiken. Raadpleeg uw werkruimtebeheerder of de volgende onderwerpen:
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.