Обзор сервиса 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 параметры применяются в следующем порядке:

  1. Параметры CLI (из действия Run dbt command или DAG).

  2. Конфигурация сервиса (переменные окружения).

  3. Значения по умолчанию конфигурации 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:

  1. На странице Clusters выберите нужный кластер.

  2. В меню действий сервиса DBT выберите действие Run dbt command.

  3. Укажите путь к директории проекта в поле Project dir.

  4. Выберите нужную команду в поле Operation.

  5. При необходимости заполните дополнительные параметры.

  6. Нажмите Next, по желанию включите Raise non-blocking concern и подтвердите запуск, нажав Run.

Чтобы запустить команду dbt для конкретного хоста:

  1. На странице Clusters выберите нужный кластер.

  2. Перейдите на вкладку Hosts и выберите нужный хост с компонентом DBT.

  3. В списке компонентов, установленных на этом хосте, выберите действие Run dbt command для компонента DBT.

  4. Заполните необходимые поля и запустите действие.

Все команды выполняются через /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.

После изменения конфигурации требуется перезапуск компонента.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней