Compartir a través de


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]" o python -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, haga lo siguiente:

  1. En el área de trabajo de Azure Databricks, haga clic en el nombre de usuario de Azure Databricks en la barra superior y, a continuación, seleccione Configuración en la lista desplegable.
  2. Haga clic en Desarrollador.
  3. Junto a Tokens de acceso, haga clic en Administrar.
  4. Haga clic en Generate new token (Generar nuevo token).
  5. (Opcional) Escriba un comentario que le ayude a identificar este token en el futuro y cambie la duración predeterminada del token de 90 días. Para crear un token sin duración (no recomendado), deje el cuadro Duración (días) vacío (en blanco).
  6. Haga clic en Generar.
  7. Copie el token mostrado en una ubicación segura y, a continuación, haga clic en Listo.

Nota:

Asegúrese de guardar el token copiado en una ubicación segura. No comparta el token copiado con otros usuarios. Si pierde el token copiado, no podrá volver a generar ese mismo token. Debe repetir el procedimiento para crear un nuevo token. Si pierde el token copiado o cree que el token se ha visto comprometido, Databricks recomienda eliminar inmediatamente ese token del área de trabajo haciendo clic en el icono de papelera (Revocar) situado junto al token en la página Tokens de acceso.

Si no puede crear o usar tokens en el área de trabajo, puede deberse a que el administrador del área de trabajo tiene tokens deshabilitados o no le ha concedido permiso para crear o usar tokens. Consulte el administrador del área de trabajo o los siguientes temas:

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_HOSTNAMEestablecido 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

Recursos adicionales