Подключение Databricks Совместимо с dbt v2
Адаптер dbt-databricks поддерживается командой Databricks. Команда Databricks стремится поддерживать и совершенствовать адаптер в долгосрочной перспективе, поэтому вы можете быть уверены, что эта интеграция позволит использовать лучшие возможности dbt и Databricks. Подключение к Databricks через dbt-spark объявлено устаревшим.
О адаптере dbt-databricks
dbt-databricks совместим со следующими версиями dbt v1 в dbt с различной степенью поддержки функциональности.
| Функция | Версии dbt |
|---|---|
| dbt-databricks | Доступен начиная с dbt 1.0 в dbt |
| Unity Catalog | Доступен начиная с dbt 1.1 |
| Модели Python | Доступны начиная с dbt 1.3 |
Адаптер dbt-databricks предлагает:
- Более простая настройка
- Лучшие значения по умолчанию: Адаптер dbt-databricks более определен, направляя пользователей к улучшенному опыту с меньшими усилиями. Дизайнерские решения этого адаптера включают использование формата Delta по умолчанию, использование merge для инкрементных моделей и выполнение затратных запросов с Photon.
- Поддержка Unity Catalog: Unity Catalog позволяет пользователям Databricks централизованно управлять всеми данными, упрощая управление доступом и улучшая производительность поиска и запросов. Пользователи Databricks теперь могут получить трехуровневую иерархию данных – каталог, схема, имя модели – что решает давнюю проблему в организации и управлении данными.
Чтобы узнать, как оптимизировать производительность с помощью настроек для конкретной платформы данных в dbt, обратитесь к разделу Настройки для Databricks.
Чтобы предоставить пользователям или ролям разрешения на базу данных (права доступа и привилегии), обратитесь к странице примеров разрешений.
Права доступа к хранилищу для 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 EXTENDED | SELECT для таблицы |
| Получение схемы таблицы (DBR 16.2+) | DESCRIBE TABLE EXTENDED ... AS JSON | SELECT для таблицы |
| Получение списка отношений | Запрос к INFORMATION_SCHEMA.TABLES | USE CATALOG и USE SCHEMA |
| Проверка актуальности источника | Запрос к INFORMATION_SCHEMA.TABLES для получения last_altered | USE CATALOG |
| Получение определения представления | Запрос к SYSTEM.INFORMATION_SCHEMA.VIEWS | Доступ к системному каталогу |
| Создание схем | CREATE SCHEMA IF NOT EXISTS | CREATE SCHEMA для каталога |
Модели Python
Дополнительные разрешения для сред, использующих модели Python
| Разрешение | Объект | Назначение |
|---|---|---|
| Доступ к API рабочей области | /api/2.0/workspace/* | Создание каталогов для блокнотов |
| Импорт блокнотов | Рабочая область | Импорт блокнотов Python |
| Выполнение заданий | Кластер или SQL warehouse | Запуск моделей Python |
Поля подключения
| Поле | Описание | Примеры |
|---|---|---|
| Имя хоста сервера | Имя хоста аккаунта Databricks для подключения | dbc-a2c61234-1234.cloud.databricks.com |
| HTTP Path | HTTP путь к кластеру Databricks или SQL хранилищу | /sql/1.0/warehouses/1a23b4596cd7e8fg |
| Catalog | Имя каталога Databricks (необязательно) | Production |
