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


Использование SQLAlchemy с Azure Databricks

Azure Databricks предоставляет диалект SQLAlchemy (системный SQLAlchemy использует для взаимодействия с различными типами реализаций и баз данных API базы данных) для Azure Databricks. SQLAlchemy — это набор средств SQL Python и реляционный объект (ORM). SQLAlchemy предоставляет набор известных шаблонов сохраняемости корпоративного уровня, предназначенных для эффективного и высокопроизводительного доступа к базе данных, адаптированного к простому и языку домена Python. Ознакомьтесь с функциями и философией.

Диалект SQLAlchemy для Azure Databricks входит в состав соединителя SQL Databricks для Python. В этой статье рассматривается диалект SQLAlchemy для Azure Databricks версии 2.0, для которого требуется Соединитель SQL Databricks для Python версии 3.0.0 или более поздней.

Требования

  • Компьютер разработки под управлением Python >=3.8 и <=3.11.
  • Databricks рекомендует использовать виртуальные среды Python, например те, которые предоставляются venv , которые включены в Python. Виртуальные среды помогают обеспечить использование правильных версий Python и Соединителя SQL Databricks для Python вместе. Настройка и использование виртуальных сред выходят за рамки этой статьи. Дополнительные сведения см. в статье "Создание виртуальных сред".
  • Существующий кластер или хранилище SQL.

Начать

  • Установите соединитель SQL Databricks для библиотеки Python версии 3.0.0 или более поздней версии на компьютере разработки, выполнив или python -m pip install "databricks-sql-connector[sqlalchemy]".pip install "databricks-sql-connector[sqlalchemy]" Сведения о версии см. в журнале выпусков databricks-sql-connector.

  • Соберите следующие сведения о кластере или хранилище SQL, которое вы хотите использовать:

    Кластер

    Хранилище SQL

    • Имя узла сервера хранилища SQL. Его можно получить из значения Имя узла сервера на вкладке Сведения о подключении для хранилища SQL.
    • Путь HTTP хранилища SQL. Его можно получить из значения Путь HTTP на вкладке Сведения о подключении для хранилища SQL.

Проверка подлинности

Диалект SQLAlchemy для Azure Databricks поддерживает проверку подлинности личного маркера доступа Azure Databricks.

Чтобы создать личный маркер доступа Azure Databricks, сделайте следующее:

  1. В рабочей области Azure Databricks щелкните имя пользователя Azure Databricks в верхней строке и выберите "Параметры " в раскрывающемся списке.
  2. Щелкните "Разработчик".
  3. Рядом с маркерами доступа нажмите кнопку "Управление".
  4. Щелкните Generate new token (Создание нового маркера).
  5. (Необязательно) Введите комментарий, который поможет определить этот маркер в будущем и изменить время существования маркера по умолчанию в течение 90 дней. Чтобы создать маркер без времени существования (не рекомендуется), оставьте поле время существования (дни) пустым (пустым).
  6. Щелкните Создать.
  7. Скопируйте отображаемый маркер в безопасное расположение и нажмите кнопку "Готово".

Примечание.

Не забудьте сохранить скопированный маркер в безопасном расположении. Не делитесь скопированным маркером с другими пользователями. Если вы потеряете скопированный маркер, вы не сможете повторно создать тот же маркер. Вместо этого необходимо повторить эту процедуру, чтобы создать новый маркер. Если вы потеряете скопированный маркер или считаете, что маркер скомпрометирован, Databricks настоятельно рекомендует немедленно удалить этот маркер из рабочей области, щелкнув значок корзины (отозвать) рядом с маркером на странице маркеров доступа.

Если вы не можете создавать или использовать маркеры в рабочей области, это может быть связано с тем, что администратор рабочей области отключил маркеры или не предоставил вам разрешение на создание или использование маркеров. Обратитесь к администратору рабочей области или следующему:

Для проверки подлинности диалекта SQLAlchemy используйте следующий фрагмент кода. В этом фрагменте предполагается, что вы установили следующие переменные среды:

  • DATABRICKS_TOKEN, установите для маркера личного доступа Azure Databricks.
  • DATABRICKS_SERVER_HOSTNAMEЗадайте для кластера или хранилища SQL значение имени узла сервера.
  • DATABRICKS_HTTP_PATH, установите значение HTTP-пути для кластера или хранилища SQL.
  • DATABRICKS_CATALOG, установите целевой каталог в каталоге Unity.
  • 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.py в GitHub.

Пример

См. файл sqlalchemy.py в GitHub.

Справочник по DBAPI

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