dbt-trino#

dbt-trino — адаптер dbt для Trino, Starburst Enterprise и Starburst Galaxy.

Введение#

dbt — инструмент для организации рабочего процесса трансформации данных. Он помогает командам быстро и совместно развертывать аналитический код, следуя инженерным практикам разработки ПО: модульности, CI/CD, тестированию и документации. dbt позволяет всем, кто знает SQL, создавать production-grade конвейеры данных.

Один из частых вопросов при использовании dbt:

Можно ли подключить мой dbt-проект к двум базам данных?

Ответ на этот вопрос есть в FAQ на сайте dbt.

Коротко: dbt отвечает за трансформацию, то есть за T в ELT-конвейерах. Он не перемещает данные из источника в хранилище.

Адаптер dbt-trino использует Trino как движок запросов для федеративного выполнения запросов к разным источникам данных. Trino подключается к множеству разнородных источников через доступные коннекторы, используя одно подключение dbt, и обрабатывает SQL-запросы в масштабе. Трансформации, определенные в dbt, передаются в Trino. Trino выполняет эти SQL-трансформации и транслирует их в запросы к подключенным системам, чтобы создавать таблицы или представления и изменять данные.

Репозиторий dbt-trino является форком dbt-presto с адаптациями для работы с Trino.

Совместимость#

Плагин dbt протестирован с Trino версии 478, Starburst Enterprise версии 477-e.1 и Starburst Galaxy.

Установка и настройка#

Сведения об установке и настройке профиля для аутентификации в Trino или Starburst см. в разделе Starburst and Trino Setup документации dbt.

Конфигурация, специфичная для Trino и Starburst#

Параметры конфигурации, специфичные для Trino и Starburst, описаны в разделе Starburst (Trino) configurations документации dbt. Адаптированная версия этих сведений доступна в Конфигурация Starburst и Trino.

Участие в разработке#

Процесс релиза#

Первые пять шагов относятся только к повышению minor-версии:

  1. Создайте ветку 1.x.latest от последнего тега, соответствующего текущей minor-версии, например git checkout -b 1.6.latest v1.6.2 при повышении до 1.7. Отправьте ветку в удаленный репозиторий. Эта ветка будет использоваться для возможных backport.

  2. Создайте новую ветку. Не отправляйте следующие коммиты в 1.x.latest. Добавьте новую запись в .changes/0.0.0.md, которая указывает на только что созданную latest-ветку.

  3. Запустите changie merge, чтобы обновить README.md. После этого удалите файлы и папки changie, относящиеся к текущей minor-версии. Создайте коммит.

  4. Повысьте версию dbt-tests-adapter. Создайте коммит.

  5. Влейте эти два коммита в ветку master. Добавьте к PR метку Skip Changlelog.

Для повышения minor-версии продолжайте со следующих шагов. Для повышения patch-версии начинайте отсюда:

  1. Запустите workflow Version Bump. Major- и minor-части версии dbt используются, чтобы связать версию dbt-trino с версией dbt.

  2. Влейте PR с повышением версии. Убедитесь, что набор тестов проходит.

  3. Запустите workflow dbt-trino release, чтобы опубликовать dbt-trino в PyPI и GitHub.

Процесс backport#

Иногда нужно перенести некоторые изменения в старые версии. В таком случае создайте ветку от x.x.latest. Для каждой minor-версии существует своя ветка x.x.latest, например 1.3.latest. Внесите исправление и откройте PR обратно в x.x.latest. Создайте changelog командой changie new как обычно, поскольку отдельный changelog для каждой minor-версии хранится в каждой ветке x.x.latest.

После merge, чтобы выпустить релиз этой версии, следуйте инструкциям из раздела “Процесс релиза”, но запускайте каждый workflow на ветке x.x.latest.

Кодекс поведения#

Ожидается, что все участники, взаимодействующие с кодовыми базами, issue trackers, чатами и рассылками проекта dbt, будут следовать PyPA Code of Conduct.