Uso de SQLAlchemy con Azure Databricks
Azure Databricks proporciona un dialectoSQLAlchemy (el sistema que SQLAlchemy usa para comunicarse con varios tipos de implementaciones y bases de datos de API de base de datos) para Azure Databricks. SQLAlchemy es un kit de herramientas de SQL de Python y un asignador relacional de objetos (ORM). SQLAlchemy proporciona un conjunto de patrones de persistencia de nivel empresarial conocidos, diseñados para un acceso de base de datos eficaz y de alto rendimiento, adaptados a un lenguaje de dominio sencillo y de Python. Vea Características y filosofía.
El dialecto SQLAlchemy para Azure Databricks se incluye con el Databricks SQL Connector para Python. En este artículo se describe el dialecto SQLAlchemy para la versión 2.0 de Azure Databricks, que requiere Databricks SQL Connector para Python, versión 3.0.0 o una posterior.
Requisitos
- Una máquina de desarrollo que ejecute Python >=3.8 y <3.11.
- Databricks recomienda usar entornos virtuales de Python, como los proporcionados por venv que se incluyen con Python. Los entornos virtuales ayudan a garantizar que usa las versiones correctas de Python y Databricks SQL Connector para Python juntos. La configuración y el uso de entornos virtuales están fuera del ámbito de este artículo. Para más información, consulte Creación de entornos virtuales.
- Un clúster o un almacén de SQL existente.
Introducción
Instale la versión 3.0.0 o una posterior de la biblioteca Databricks SQL Connector para Python en la máquina de desarrollo; para ello, ejecute
pip install "databricks-sql-connector[sqlalchemy]"
opython -m pip install "databricks-sql-connector[sqlalchemy]"
. Para obtener información sobre la versión, vea el historial de versiones de databricks-sql-connector.Recopile la siguiente información del clúster o el almacén de SQL que desea usar:
Clúster
- Nombre de host del servidor del clúster. Puede obtenerlo del valor del nombre de host del servidor en la pestaña Opciones avanzadas y JDBC/ODBC del clúster.
- Ruta de acceso HTTP del clúster. Puede obtenerlo del valor de la ruta de acceso HTTP en la pestaña Opciones avanzadas y JDBC/ODBC del clúster.
Almacén de SQL
- Nombre de host del servidor del almacén de SQL. Puede obtenerlo del valor del nombre de host del servidor en la pestaña Detalles de conexión del almacén de SQL.
- Ruta de acceso HTTP del almacén de SQL. Puede obtenerlo del valor de la ruta de acceso HTTP en la pestaña Detalles de conexión del almacén de SQL.
Autenticación
El dialecto SQLAlchemy para Azure Databricks admite la autenticación de tokens de acceso personal de Azure Databricks.
Para crear un token de acceso personal de Azure Databricks, siga los pasos descritos en Tokens de acceso personal de Azure Databricks para los usuarios del área de trabajo.
Para autenticar el dialecto SQLAlchemy, use el siguiente fragmento de código. En este fragmento, se da por supuesto que ha establecido las siguientes variables de entorno:
DATABRICKS_TOKEN
, establecido en el token de acceso personal de Azure Databricks.DATABRICKS_SERVER_HOSTNAME
establecido en el valor de Nombre de host del servidor del clúster o almacén de SQL.DATABRICKS_HTTP_PATH
, establecido en el valor de Ruta de acceso HTTP del clúster o almacén del SQL.DATABRICKS_CATALOG
, establecido en el catálogo de destino en Unity Catalog.DATABRICKS_SCHEMA
, establecido en el esquema de destino (también conocido como base de datos) en Unity Catalog.
Para establecer las variables de entorno, consulte la documentación del sistema operativo.
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}"
)
# ...
Use la variable anterior engine
para conectarse al catálogo y al esquema especificados mediante el recurso de proceso de Azure Databricks. Para obtener ejemplos de conexión, vea la sección siguiente y el archivo sqlalchemy.py en GitHub.
Ejemplo
Consulte el archivo sqlalchemy.py en GitHub.
Referencia de DBAPI
- Vea el archivo README.sqlalchemy.md en GitHub.
- Vea también el directorio de código fuente sqlalchemy en GitHub.