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.
Участие в разработке#
Чтобы сообщить об ошибке или запросить новую возможность, напишите в Slack-сообщество dbt в канал #db-starburst-and-trino, в Trino Slack в канал #python или создайте issue.
Чтобы помочь с разработкой dbt-trino, см. Contributing Guide.
Процесс релиза#
Первые пять шагов относятся только к повышению minor-версии:
Создайте ветку
1.x.latestот последнего тега, соответствующего текущей minor-версии, напримерgit checkout -b 1.6.latest v1.6.2при повышении до 1.7. Отправьте ветку в удаленный репозиторий. Эта ветка будет использоваться для возможных backport.Создайте новую ветку. Не отправляйте следующие коммиты в
1.x.latest. Добавьте новую запись в.changes/0.0.0.md, которая указывает на только что созданную latest-ветку.Запустите
changie merge, чтобы обновитьREADME.md. После этого удалите файлы и папки changie, относящиеся к текущей minor-версии. Создайте коммит.Повысьте версию
dbt-tests-adapter. Создайте коммит.Влейте эти два коммита в ветку master. Добавьте к PR метку
Skip Changlelog.
Для повышения minor-версии продолжайте со следующих шагов. Для повышения patch-версии начинайте отсюда:
Запустите workflow
Version Bump. Major- и minor-части версии dbt используются, чтобы связать версию dbt-trino с версией dbt.Влейте PR с повышением версии. Убедитесь, что набор тестов проходит.
Запустите 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.