Partager via


Utiliser SQLAlchemy avec Azure Databricks

Azure Databricks fournit un dialecteSQLAlchemy (le système utilisé par SQLAlchemy pour communiquer avec divers types de bases de données et d’implémentations d’API de base de données) pour Azure Databricks. SQLAlchemy est un kit d’outils Python SQL et un mappeur relationnel objet (ORM). SQLAlchemy offre une suite bien connue de modèles de persistance au niveau de l’entreprise conçue pour un accès efficace et à hautes performances aux bases de données et adaptée pour un langage de domaine simple et de type Python. Consultez Fonctionnalités et philosophie.

Le dialecte SQLAlchemy pour Azure Databricks doit être installé pour utiliser les fonctionnalités SQLAlchemy avec Azure Databricks. Cet article traite du dialecte SQLAlchemy pour Azure Databricks version 1.0 et 2.0, qui sera basé sur Databricks SQL Connector pour Python version 4.0.0 ou ultérieure.

Spécifications

  • Un ordinateur de développement exécutant Python >=3.8 et <=3.11.
  • Databricks vous recommande d’utiliser des environnements virtuels Python, tels que ceux fournis par venv inclus avec Python. Les environnements virtuels vous permettent d’assurer que vous utilisez une combinaison des bonnes versions de Python et du connecteur Databricks SQL. La configuration et l’utilisation des environnements virtuels n’entrent pas dans le cadre de cet article. Pour plus d’informations, consultez la Création d’environnements virtuels.
  • Cluster ou entrepôt SQL existant.

Get a démarré

  • Installez databricks-sqlalchemy pour SQLAlchemy v1 à l’aide de pip install databricks-sqlalchemy~=1.0 ou de SQLAlchemy v2 à l’aide de pip install databricks-sqlalchemy. Pour obtenir des informations sur la version, voir l’Historique des versions databricks-sqlalchemy.

  • Collectez les informations suivantes pour le cluster ou l’entrepôt SQL que vous souhaitez utiliser :

    Cluster

    • Nom d’hôte du serveur du cluster. Vous pouvez get celui-ci de la valeur Nom d’hôte du serveur sous l’onglet Options avancées > JDBC/ODBC pour votre cluster.
    • Chemin d’accès HTTP du cluster. Vous pouvez get celui-ci de la valeur Chemin d’accès HTTP sous l’onglet Options avancées > JDBC/ODBC pour votre cluster.

    Entrepôt SQL

    • Nom d’hôte du serveur de l’entrepôt SQL. Vous pouvez l’get à partir de la valeur Nom d’hôte du serveur sous l’onglet Détails de la connexion pour votre entrepôt SQL.
    • Chemin HTTP de l’entrepôt SQL. Vous pouvez l’get à partir de la valeur Chemin HTTP sous l’onglet Détails de la connexion pour votre entrepôt SQL.

Authentification

Le dialecte SQLAlchemy pour Azure Databricks prend en charge l’authentification par jeton d’accès personnel.

Pour créer un jeton d’accès personnel Azure Databricks, suivez les étapes décrites dans Les jetons d’accès personnels Azure Databricks pour les utilisateurs de l’espace de travail.

Pour authentifier le dialecte SQLAlchemy, utilisez l’extrait de code suivant. Cet extrait de code suppose que vous avez set les variables d’environnement suivantes :

  • DATABRICKS_TOKEN, set sur le jeton d’accès personnel Azure Databricks.
  • DATABRICKS_SERVER_HOSTNAME set sur la valeur du Nom d’hôte du serveur pour votre cluster ou votre entrepôt SQL.
  • DATABRICKS_HTTP_PATH, set à valeur de chemin HTTP pour votre cluster ou votre entrepôt SQL.
  • DATABRICKS_CATALOG, set vers la cible catalog dans Unity Catalog.
  • DATABRICKS_SCHEMA, set sur le schema cible (également appelé base de données) dans Unity Catalog.

Pour les variables d’environnement set, consultez la documentation de votre système d’exploitation.

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

# ...

Vous utilisez la variable engine précédente pour vous connecter à votre catalog et schema spécifiés via votre ressource de calcul Azure Databricks.

SQLAlchemy v1

Pour des exemples de connexion, consultez cet exemple de fichier example.py

SQLAlchemy v2

Pour obtenir des exemples de connexion, consultez la section suivante et le fichier sqlalchemy_example.py dans GitHub.

Informations de référence sur DBAPI

Ressources supplémentaires