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 e bancos de dados da API de banco de dados) para o Azure Databricks. SQLAlchemy é um kit de ferramentas SQL do Python e ORM (Object Relational Mapper). O SQLAlchemy fornece um conjunto de padrões de persistência de nível empresarial conhecidos, projetados para acesso eficiente e de alto desempenho ao banco de dados, adaptados em uma linguagem de domínio simples e Python. Consulte Recursos e Filosofia.
O dialeto SQLAlchemy para o Azure Databricks está incluído no Conector SQL do Databricks para Python. Este artigo aborda o dialeto SQLAlchemy para o Azure Databricks versão 2.0, que requer o Conector SQL do Databricks para Python versão 3.0.0 ou superior.
Requisitos
- Um computador de desenvolvimento executando Python >=3.8 e <=3.11.
- O Databricks recomenda que você use ambientes virtuais Python, como os fornecidos por 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 Conector do SQL do Databricks para Python juntos. A configuração e o uso de ambientes virtuais estão fora do escopo deste artigo. Para obter mais informações, confira Criando ambientes virtuais.
- Um cluster ou SQL warehouse existente.
Introdução
Instale a biblioteca do Conector SQL do Databricks para Python versão 3.0.0 ou posterior em seu computador de desenvolvimento, executando
pip install "databricks-sql-connector[sqlalchemy]"
oupython -m pip install "databricks-sql-connector[sqlalchemy]"
. Para obter informações sobre a versão, consulte o histórico de versão do databricks-sql-connector.Reúna as seguintes informações sobre o cluster ou SQL warehouse que você deseja usar:
Cluster
- O nome do host do servidor do cluster. Você pode obter isso do valor de Nome do Host do Servidor na guia Opções Avançadas > JDBC/ODBC do cluster.
- O caminho HTTP do cluster. Você pode obter isso do valor de caminho HTTP do Servidor na guia Opções Avançadas > JDBC/ODBC do cluster.
SQL warehouse
- O nome do host do servidor do SQL warehouse. É possível obtê-lo no valor do Nome do host do servidor na guia Detalhes da conexão do SQL warehouse.
- O caminho HTTP do SQL warehouse. É possível obtê-lo no valor de Caminho HTTP na guia Detalhes da conexão do SQL warehouse.
Autenticação
O dialeto SQLAlchemy para o 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 workspace.
Para autenticar o dialeto SQLAlchemy, use o snippet de código a seguir. Esse snippet de código pressupõe que você tenha definido as seguintes variáveis de ambiente:
DATABRICKS_TOKEN
, definido como o token de acesso pessoal do Azure Databricks.DATABRICKS_SERVER_HOSTNAME
definido como o valor Nome do Host do Servidor do seu cluster ou SQL Warehouse.DATABRICKS_HTTP_PATH
, definido para o valor do Caminho HTTP para seu cluster ou SQL Warehouse.DATABRICKS_CATALOG
, definido como o catálogo de destino no Catálogo do Unity.DATABRICKS_SCHEMA
, definido como o esquema de destino (também conhecido como banco de dados) no Catálogo do Unity.
Para definir variáveis de ambiente, confira a documentação do 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}"
)
# ...
Use 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. Para obter exemplos de conexão, consulte a seção a seguir e o arquivo sqlalchemy.py no GitHub.
Exemplo
Consulte o arquivo sqlalchemy.py no GitHub.
Referência DBAPI
- Consulte o arquivo de README.sqlalchemy.md no GitHub.
- Consulte também o diretório de código-fonte sqlalchemy no GitHub.