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 debe instalarse para usar las características de SQLAlchemy con Azure Databricks. En este artículo se describe el dialecto SQLAlchemy para Azure Databricks versión 1.0 y 2.0, que se basará en el Databricks SQL Connector para Python versión 4.0.0 o 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 databricks-sqlalchemy para SQLAlchemy v1 mediante
pip install databricks-sqlalchemy~=1.0
o para SQLAlchemy v2 mediantepip install databricks-sqlalchemy
. Para obtener información sobre la versión, consulta el historial de versiones de databricks-sqlalchemy.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 > del clúster.
- Ruta de acceso HTTP del clúster. Puede obtenerlo del valor de la ruta de acceso HTTP en la pestaña > 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.
SQLAlchemy v1
Para obtener ejemplos de conexión, consulte este example.py
SQLAlchemy v2
Para ver ejemplos de conexión, consulte la sección siguiente y el archivo sqlalchemy_example.py en GitHub.
Referencia de DBAPI
- Repositorio de GitHub databricks-sqlalchemy v1
- README.md de SQLAlchemy v1
- Repositorio de GitHub databricks-sqlalchemy v2
- SQLAlchemy v2 README.md