Участие в разработке адаптеров dbt
Сообщество dbt помогает специалистам по аналитике делиться знаниями, помогать друг другу и совместно развивать аналитическую инженерию. Здесь каждый может внести свой вклад — независимо от того, только ли вы начинаете свой путь в аналитической инженерии или уже обладаете большим опытом работы с данными.
В этом разделе рассказывается, как вы можете участвовать в разработке существующих адаптеров или создать новый адаптер.
Участие в разработке существующего адаптера
Плагины, поддерживаемые сообществом, постоянно развиваются, и вы можете внести свой вклад, тестируя их и создавая код. Если вы хотите принять участие:
- Присоединитесь к специализированному каналу #adapter-ecosystem в dbt Slack, а также к каналу хранилища данных, для которого предназначен ваш адаптер. См. ссылку Slack Channel на страницах платформ dbt v1.
- Просмотрите открытые issues в репозитории исходного кода плагина. Воспользуйтесь соответствующей ссылкой GitHub repo на страницах платформ dbt v1.
Создание нового адаптера v2
v2 — это движок dbt, переписанный на Rust и построенный на основе единого монорепозитория. Вместо поддержки отдельного пакета Python для каждого хранилища данных все адаптеры находятся вместе в dbt-labs/dbt и сгруппированы по функциональным областям, а не по хранилищам. Исправление ошибки в аутентификации или логике работы с объектами базы данных приносит пользу сразу всем адаптерам, а ваш вклад укрепляет всю экосистему.
Драйверы ADBC отвечают за управление подключениями — это предварительно скомпилированные бинарные файлы, которые вы регистрируете, а не пишете самостоятельно. Вы разрабатываете логику, специфичную для хранилища данных: учётные данные, правила именования объектов базы данных, SQL-макросы и запросы к каталогу — всего примерно в 13 файлах.
Чтобы внести адаптер v2, нужно открыть pull request непосредственно в монорепозитории. Вы зарегистрируете своё хранилище данных в перечислении AdapterType, реализуете типы учётных данных и объектов базы данных на Rust, напишете макросы Jinja для своего диалекта SQL и настроите базовые интеграционные тесты с реальным хранилищем данных. Проверка полноты сопоставлений match компилятором Rust служит списком задач: каждый необработанный вариант вызывает ошибку компиляции, пока ваш адаптер не будет завершён. Пошаговые инструкции см. в руководстве Участие в разработке адаптера dbt v2.