Перейти к основному содержимому
(Версии dbt: v2.0 и новее)

Подключение Databricks к dbt v2

Вы можете настроить адаптер Databricks, выполнив dbt init в интерфейсе командной строки (CLI) или вручную создав файл profiles.yml с полями, настроенными для вашего типа аутентификации.

Адаптер Databricks для dbt v2 поддерживает следующие способы аутентификации:

  • Персональный токен доступа (для отдельных пользователей)
  • Токен сервисного принципала (для служебных пользователей)
  • OAuth
  • Федерация токенов OAuth с использованием OIDC

Разрешения на доступ к хранилищу для dbt v2​

Пользователь или субъект-служба Databricks, от имени которого работает dbt v2, должен иметь привилегии для каталога и схем, в которых выполняются модели, а также права доступа, необходимые для запросов метаданных. Требования зависят от того, используете ли вы Unity Catalog или устаревший Hive Metastore.

Необходимые объекты Databricks​

Перед подключением следующие объекты должны существовать или быть доступны:

ОбъектНазначение
Рабочая областьURL вашей рабочей области Databricks (host)
SQL warehouse или кластерВычислительный ресурс (с использованием http_path)
КаталогКаталог Unity Catalog или Hive Metastore
СхемаЦелевая схема в каталоге
Пользователь или субъект-службаУчетная запись для аутентификации

Unity Catalog​

Необходимые права доступа для Unity Catalog:

РазрешениеОбъектНазначение
USE CATALOGКаталогДоступ к каталогу
USE SCHEMAСхемаДоступ к схемам
SELECTТаблицы или представленияЧтение существующих данных и источников
CREATE TABLEСхемаСоздание моделей, материализованных в виде таблиц
CREATE VIEWСхемаСоздание моделей, материализованных в виде представлений
MODIFYТаблицыВставка, обновление и удаление данных
CREATE SCHEMAКаталогАвтоматическое создание схем (при необходимости)

Hive Metastore​

Необходимые права доступа для устаревшего Hive Metastore:

РазрешениеОбъектНазначение
USAGEБаза данныхДоступ к базе данных
SELECTТаблицыЧтение данных
CREATEБаза данныхСоздание таблиц и представлений
MODIFYТаблицыИзменение данных

Операции с метаданными​

Для основных функций dbt необходимы следующие права:

Тип запросаИспользуемый SQLНеобходимое разрешение
Получение схемы таблицыDESCRIBE TABLE или DESCRIBE TABLE EXTENDEDSELECT для таблицы
Получение схемы таблицы (DBR 16.2+)DESCRIBE TABLE EXTENDED ... AS JSONSELECT для таблицы
Получение списка отношенийЗапрос к INFORMATION_SCHEMA.TABLESUSE CATALOG и USE SCHEMA
Проверка актуальности источникаЗапрос к INFORMATION_SCHEMA.TABLES для получения last_alteredUSE CATALOG
Получение определения представленияЗапрос к SYSTEM.INFORMATION_SCHEMA.VIEWSДоступ к системному каталогу
Создание схемCREATE SCHEMA IF NOT EXISTSCREATE SCHEMA для каталога

Модели Python​

Дополнительные разрешения для сред, использующих модели Python

РазрешениеОбъектНазначение
Доступ к API рабочей области/api/2.0/workspace/*Создание каталогов для блокнотов
Импорт блокнотовРабочая областьИмпорт блокнотов Python
Выполнение заданийКластер или SQL warehouseЗапуск моделей Python

Сведения о настройке Databricks​

Адаптер dbt-databricks для dbt v2 — единственный поддерживаемый способ подключения к Databricks.

dbt-databricks может подключаться к хранилищам Databricks SQL Warehouse. Эти хранилища рекомендуется использовать для начала работы с Databricks.

Подробнее о получении учетных данных для настройки профиля см. в документации Databricks.

Настройка dbt v2​

При выполнении dbt init в CLI вам будет предложено заполнить следующие поля:

  • Host: Имя хоста экземпляра Databricks (без префикса http или https)
  • HTTP Path: Путь к вашему SQL-серверу или кластеру
  • Schema: Схема проекта для разработки, промежуточной среды или развертывания
  • Catalog (необязательно): Каталог Databricks, содержащий ваши схемы и таблицы

Кроме того, вы можете вручную создать файл profiles.yml и настроить поля. Примеры форматирования см. в разделе аутентификации. Если файл profiles.yml уже существует, вам будет предложено сохранить существующие поля или перезаписать их.

Затем выберите способ аутентификации. Следуйте инструкциям на экране, чтобы указать необходимые сведения.

Поддерживаемые типы аутентификации​

Введите свой персональный токен доступа (PAT) для среды Databricks. Подробнее о получении PAT см. в документации Databricks. Databricks считает эту возможность устаревшей и рекомендует использовать OAuth вместо PAT.

Пример настройки с персональным токеном доступа​

profiles.yml
default:
target: dev
outputs:
dev:
type: databricks
database: TRANSFORMING
schema: JANE_SMITH
host: YOUR.HOST.COM
http_path: YOUR/PATH/HERE
token: ABC123
auth_type: databricks_cli
threads: 16

Необязательные настройки подключения​

Добавьте эти необязательные поля в настройки подключения Databricks в profiles.yml, чтобы управлять временем ожидания подключения и повторными попытками.

Поле профиляОписаниеЗначение по умолчанию
connect_timeoutСколько секунд dbt ожидает подключения к Databricks, прежде чем прекратить попытку. Укажите число больше 0, иначе dbt вернет ошибку. Например, 600 означает 600 секунд (10 минут). Увеличьте это значение, если ваши задания запускаются, пока SQL-хранилище еще запускается.200
connect_retriesКоличество повторных попыток подключения к Databricks после неудачной первой попытки. Повторная попытка выполняется, только если Databricks помечает ошибку как допускающую повторную попытку или если retry_all имеет значение true.1
retry_allУстановите true, чтобы повторять попытки при любой ошибке подключения. Установите false, чтобы повторять попытки только при ошибках, которые Databricks помечает как допускающие повторную попытку.false

Эти настройки применяются только к установлению подключения. Они не обеспечивают повторное выполнение запросов, завершившихся ошибкой после подключения dbt.

Пример​

В следующем примере для connect_timeout задано значение 600 (10 минут), чтобы dbt мог дождаться запуска SQL-хранилища.

profiles.yml
outputs:
dev:
type: databricks
# ...остальные поля подключения
connect_timeout: 600

Дополнительная информация​

Информацию о настройках, специфичных для Databricks, см. в справочном руководстве по адаптеру Databricks.

Нашли ошибку?

0
Loading