Использование SQLAlchemy с Azure Databricks
Azure Databricks предоставляет диалект SQLAlchemy (системный SQLAlchemyиспользует для взаимодействия с различными типами реализаций и баз данных API базы данных) для Azure Databricks. SQLAlchemy — это набор средств SQL Python и реляционный объект (ORM). SQLAlchemy предоставляет набор известных шаблонов сохраняемости корпоративного уровня, предназначенных для эффективного и высокопроизводительного доступа к базе данных, адаптированного к простому и языку домена Python. Ознакомьтесь с функциями и философией.
Диалект SQLAlchemy для Azure Databricks необходимо установить для использования функций SQLAlchemy с Azure Databricks. В этой статье рассматривается диалект SQLAlchemy для Azure Databricks версии 1.0 и 2.0, который будет основан на соединителе SQL Databricks для Python версии 4.0.0 или более поздней.
Требования
- Компьютер разработки под управлением Python >=3.8 и <=3.11.
- Databricks рекомендует использовать виртуальные среды Python, например те, которые предоставляются venv , которые включены в Python. Виртуальные среды помогают обеспечить использование правильных версий Python и Соединителя SQL Databricks для Python вместе. Настройка и использование виртуальных сред выходят за рамки этой статьи. Дополнительные сведения см. в статье "Создание виртуальных сред".
- Существующий кластер или хранилище SQL.
Начало работы
Установите databricks-sqlalchemy для SQLAlchemy версии 1 с помощью
pip install databricks-sqlalchemy~=1.0
или SQLAlchemy версии 2 с помощьюpip install databricks-sqlalchemy
. См. сведения о версии в истории выпусков databricks-sqlalchemy .Соберите следующие сведения о кластере или хранилище SQL, которое вы хотите использовать:
Кластер
- Имя узла сервера кластера. Вы можете получить это из значения имени узла сервера
на вкладке для вашего кластера.Дополнительные параметры JDBC/ODBC - Путь HTTP кластера. Это можно получить из значения пути HTTP
на вкладке кластера.дополнительные параметры JDBC/ODBC
Хранилище SQL
- Имя узла сервера хранилища SQL. Вы можете получить это из значения имени узла сервера на вкладке "Сведения о подключении" для вашего хранилища SQL.
- Путь HTTP хранилища SQL. Это можно получить из значения пути HTTP на вкладке сведения о подключении для хранилища SQL.
- Имя узла сервера кластера. Вы можете получить это из значения имени узла сервера
Проверка подлинности
Диалект SQLAlchemy для Azure Databricks поддерживает проверку подлинности личного маркера доступа Azure Databricks.
Чтобы создать личный маркер доступа Azure Databricks, выполните действия, описанные в разделе "Личные маркеры доступа Azure Databricks" для пользователей рабочей области.
Для проверки подлинности диалекта SQLAlchemy используйте следующий фрагмент кода. В этом фрагменте предполагается, что вы установили следующие переменные среды:
- Установите
DATABRICKS_TOKEN
для токена личного доступа Azure Databricks. задать значение имени узла сервера для кластера или хранилища SQL. -
DATABRICKS_HTTP_PATH
задайте значение пути HTTP для кластера или хранилища SQL. -
DATABRICKS_CATALOG
, установите целевой каталог в Unity Catalog. -
DATABRICKS_SCHEMA
, установите целевую схему (также называемую базой данных) в каталоге Unity.
Чтобы задать переменные среды, ознакомьтесь с документацией операционной системы.
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}"
)
# ...
Предыдущая engine
переменная используется для подключения к указанному каталогу и схеме через вычислительный ресурс Azure Databricks.
SQLAlchemy версии 1
Примеры подключения можно увидеть в этом example.py
SQLAlchemy версии 2
Примеры подключения см. в следующем разделе и файле sqlalchemy_example.py в GitHub.
Справочник по DBAPI
- databricks-sqlalchemy версии 1 репозиторий GitHub
- SQLAlchemy версии 1 README.md
- databricks-sqlalchemy версии 2 репозиторий GitHub
- SQLAlchemy v2 README.md