Use SQLAlchemy com Databricks
Databricks fornece um dialeto SQLAlchemy (o sistema que SQLAlchemy usa para se comunicar com vários tipos de implementações de API de banco de dados e bancos de dados) para Databricks. SQLAlchemy é um kit de ferramentas Python SQL e mapeador relacional de objetos (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, adaptados em uma linguagem de domínio simples e Pythonic. Veja recurso e Filosofia.
O dialeto SQLAlchemy para Databricks está incluído no Databricks SQL Connector para Python. Este artigo aborda o dialeto SQLAlchemy para Databricks versão 2.0, que requer Databricks SQL Connector para Python versão 3.0.0 ou acima.
Requisitos
Uma máquina de desenvolvimento executando Python >=3.8 e <=3.11.
A Databricks recomenda que utilize ambientes virtuais Python, como os fornecidos pela venv que estão incluídos no Python. Os ambientes virtuais ajudam a garantir que você está usando as versões corretas do Python e do Databricks SQL Connector para Python juntos. Configurar e usar ambientes virtuais está fora do escopo deste artigo. Para mais informações, consulte Criando ambientes virtuais.
Uma empresa existente cluster ou SQL warehouse.
Começar
Instale a biblioteca Databricks SQL Connector para Python versão 3.0.0 ou acima em sua máquina 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 a história de lançamento do databricks-sql-connector.Reúna as seguintes informações para os clusters ou SQL warehouse que você deseja usar:
O hostname do servidor dos clusters. Você pode obter isso no valor do servidor hostname na Opções avançadas > JDBC/ODBC tab para seus clusters.
O caminho HTTP dos clusters. Você pode obter isso no valor do Caminho HTTP na Opções Avançadas > JDBC/ODBC tab para seus clusters.
O hostname do servidor do SQL warehouse. Você pode obter isso no valor do servidor hostname na Detalhes da conexão tab do seu SQL warehouse.
O caminho HTTP do SQL warehouse. Você pode obter isso no valor HTTP Path na Connection Details tab do SQL warehouse seu .
Autenticação
O dialeto SQLAlchemy para Databricks oferece suporte à autenticação access token pessoal do Databricks.
Para criar um Databricks pessoal access token, siga os passos em Databricks pessoal access tokens para usuários workspace .
Para autenticar o dialeto SQLAlchemy, use o trecho de código a seguir. Este trecho pressupõe que você definiu a seguinte variável de ambiente:
DATABRICKS_TOKEN
, defina como o access token pessoal do Databricks.DATABRICKS_SERVER_HOSTNAME
definido como o valor hostnamedo servidor para seus clusters ou SQL warehouse.DATABRICKS_HTTP_PATH
, defina o valor do Caminho HTTP para seus clusters ou SQL warehouse.DATABRICKS_CATALOG
, defina como o catálogo de destino no Unity Catalog.DATABRICKS_SCHEMA
, defina 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 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 esquema especificados por meio do recurso compute do 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 README.sqlalchemy.md no GitHub.
Consulte também o diretório do código-fonte sqlalchemy no GitHub.