Partilhar via


Usar SQLAlchemy com o Azure Databricks

O Azure Databricks fornece um dialeto SQLAlchemy(o sistema que o SQLAlchemy usa para se comunicar com vários tipos de implementações de API de banco de dados e bancos de dados) para o Azure Databricks. SQLAlchemy é um kit de ferramentas Python SQL e Object Relational Mapper (ORM). SQLAlchemy fornece um conjunto de padrões de persistência de nível empresarial bem conhecidos, projetados para acesso eficiente e de alto desempenho ao banco de dados, adaptado em uma linguagem de domínio simples e pythonic. Ver Características e Filosofia.

O dialeto SQLAlchemy para Azure Databricks precisa ser instalado para usar os recursos SQLAlchemy com o Azure Databricks. Este artigo aborda o dialeto SQLAlchemy para Azure Databricks versão 1.0 e 2.0, que será baseado no Databricks SQL Connector para Python versão 4.0.0 ou superior.

Requisitos

  • Uma máquina de desenvolvimento executando Python >=3.8 e <=3.11.
  • O Databricks recomenda que você use ambientes virtuais Python, como aqueles fornecidos pelo venv que estão incluídos no Python. Os ambientes virtuais ajudam a garantir que você esteja usando as versões corretas do Python e do Databricks SQL Connector for Python juntos. A configuração e o uso de ambientes virtuais estão fora do escopo deste artigo. Para obter mais informações, consulte Criando ambientes virtuais.
  • Um clusterou armazém SQL existente.

Começar

  • Instale databricks-sqlalchemy para SQLAlchemy v1 usando pip install databricks-sqlalchemy~=1.0 ou para SQLAlchemy v2 usando pip install databricks-sqlalchemy. Para obter informações sobre a versão, consulte o histórico de versões do databricks-sqlalchemy.

  • Reúna as seguintes informações para o cluster ou SQL warehouse que você deseja usar:

    Cluster

    • O nome do host do servidor do cluster. Você pode obtê-lo a partir do valor Nome do host do servidor na guia Opções avançadas JDBC/ODBC para seu cluster.
    • O caminho HTTP do cluster. Você pode obtê-lo a partir do valor Caminho HTTP na guia Opções Avançadas > JDBC/ODBC do cluster.

    Armazém SQL

    • O nome de host do servidor do SQL warehouse. Você pode obter este valor em Nome do Servidor na aba Detalhes da Conexão para o seu armazém de dados SQL.
    • O caminho HTTP do SQL warehouse. Você pode obter isto a partir do valor Caminho HTTP na aba Detalhes da Conexão para o seu armazém de dados SQL.

Autenticação

O dialeto SQLAlchemy para Azure Databricks dá suporte à autenticação de token de acesso pessoal do Azure Databricks.

Para criar um token de acesso pessoal do Azure Databricks, siga as etapas em Tokens de acesso pessoal do Azure Databricks para usuários do espaço de trabalho.

Para autenticar o dialeto SQLAlchemy, use o seguinte trecho de código. Este trecho pressupõe que você tenha definido as seguintes variáveis de ambiente:

  • DATABRICKS_TOKEN, definido como o token de acesso pessoal do Azure Databricks.
  • definido como o valor de Hostname do Servidor para o cluster ou warehouse SQL.
  • DATABRICKS_HTTP_PATH, defina como o valor de Caminho HTTP para o seu cluster ou armazém SQL.
  • DATABRICKS_CATALOG, definido no Unity Catalog como o catálogo de destino.
  • DATABRICKS_SCHEMA, definido como o esquema de destino (também conhecido como banco de dados) no Unity Catalog.

Para definir variáveis de ambiente, consulte a documentação do seu sistema operacional.

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

# ...

Você usa a variável engine anterior para se conectar ao catálogo e ao esquema especificados por meio do recurso de computação do Azure Databricks.

SQLAlchemy v1

Para exemplos de conexão, consulte este example.py

SQLAlchemy v2

Para obter exemplos de conexão, consulte a seção a seguir e o arquivo sqlalchemy_example.py no GitHub.

Referência DBAPI

Recursos adicionais