Обзор сервиса DBT
Обзор
DBT — это сервис ADO c предустановленным окружением dbt, интегрированным в Arenadata Orchestrator.
dbt (data build tool) — это фреймворк для трансформации данных в хранилищах с использованием SQL и модульных моделей. Он позволяет описывать преобразования в виде кода, управлять зависимостями между наборами данных, а также применять практики тестирования и документирования.
Сервис DBT позволяет:
-
выполнять dbt-преобразования;
-
запускать тесты;
-
строить модели;
-
генерировать документацию.
Сервис можно использовать как через действия ADCM, так и через DAG в Airflow.
DBT состоит из двух компонентов:
-
DBT — предоставляет среду выполнения и возможности запуска dbt-команд;
-
DBT Docs — предоставляет веб-интерфейс для документации dbt.
Конфигурация
Сервис DBT и его компоненты настраиваются через ADCM.
Переменные, заданные в параметрах конфигурации, используются при выполнении как в действиях ADCM, так и в DAG Airflow.
При выполнении команд dbt параметры применяются в следующем порядке:
-
Параметры CLI (из действия Run dbt command или DAG).
-
Конфигурация сервиса (переменные окружения).
-
Значения по умолчанию конфигурации dbt.
Права доступа
Для успешного выполнения dbt пользователь, от имени которого выполняется команда (например, airflow), должен иметь соответствующие права доступа к файловой системе:
-
Пользователь должен иметь права на чтение директории dbt-проекта.
-
Пользователь должен иметь права на запись в следующие директории:
-
пользовательские пути (
--target-path,--log-path), если они заданы; -
пути по умолчанию (<project_dir>/target, <project_dir>/logs).
-
Если существующие файлы (например, manifest.json, dbt.log) недоступны для записи, выполнение завершится с ошибкой.
Все родительские директории должны допускать обход директорий (+x). Отсутствие этих прав приводит к невозможности доступа даже при корректных правах на файлы.
Использование
Команды dbt выполняются с помощью действия Run dbt command.
Чтобы запустить dbt-команду через ADCM:
-
На странице Clusters выберите нужный кластер.
-
В меню действий сервиса DBT выберите действие Run dbt command.
-
Укажите путь к директории проекта в поле Project dir.
-
Выберите нужную команду в поле Operation.
-
При необходимости заполните дополнительные параметры.
-
Нажмите Next, по желанию включите Raise non-blocking concern и подтвердите запуск, нажав Run.
Чтобы запустить команду dbt для конкретного хоста:
-
На странице Clusters выберите нужный кластер.
-
Перейдите на вкладку Hosts и выберите нужный хост с компонентом DBT.
-
В списке компонентов, установленных на этом хосте, выберите действие Run dbt command для компонента DBT.
-
Заполните необходимые поля и запустите действие.
Все команды выполняются через /usr/bin/dbt. Это исполняемый файл-обертка, который инициализирует переменные окружения, заданные на уровне сервиса.
Использование dbt в Airflow
При использовании dbt в DAG Airflow вы можете:
-
использовать исполняемый файл /usr/bin/dbt;
-
передавать обязательные параметры, например:
$ /usr/bin/dbt --project-dir <project_dir> ... -
при необходимости задавать дополнительные параметры:
$ /usr/bin/dbt --profiles-dir --target --log-path --target-path
Документация DBT
Компонент DBT Docs предоставляет доступ к сгенерированной документации dbt.
Для каждого проекта документация создается с помощью команды dbt docs generate. Сгенерированная документация доступна по адресу http://<host>:<port>, где <host> — IP-адрес хоста с DBT, а <port> — порт, указанный для DBT Docs в ADCM.
После изменения конфигурации требуется перезапуск компонента.