Поделиться через


Использование 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

Дополнительные ресурсы