В чём разница между dbt и dbt OSS?
В рамках выпуска общедоступной версии dbt v2 мы переименовали два дистрибутива, чтобы отразить их место в экосистеме. Движок dbt Fusion теперь называется просто dbt, а dbt Core v2 теперь называется dbt OSS. Мы ожидаем, что большинство пользователей, переходящих на dbt v2, выберут основной дистрибутив dbt, который можно бесплатно использовать и устанавливать локально.
Изменение названий не меняет нашей приверженности открытому исходному коду: полностью открытая реализация стандарта dbt существует и будет существовать всегда. Весь код, который мы перевели с ELv2 или проприетарных лицензий на Apache 2.0 в июне, остаётся под этой лицензией, а переход на общую основу (вместо сохранения dbt Core на устаревшем движке Python) делает версию dbt с открытым исходным кодом сильнее.
Переход к двум свободно используемым дистрибутивам с общей основой — главный источник путаницы, с которым мы столкнулись во время бета-тестирования v2. Эта статья поможет объяснить различия между dbt и dbt OSS и подскажет, какой дистрибутив вам стоит выбрать.
По умолчанию мы рекомендуем бесплатный дистрибутив dbt v2 (ранее известный как Fusion), а не dbt OSS. У него больше возможностей, а его лицензия разработана так, чтобы разрешать те же реальные сценарии использования бесплатно, без оплаты и общения с dbt Labs.
Краткое сравнение двух дистрибутивов
- Помните, как я говорил, что единственная уникальная характеристика dbt Core v2 — это открытый исходный код под лицензией Apache? Мы делаем это очевидным, заменяя название dbt Core v2 на dbt OSS.
- Для текущих пользователей бета-версии dbt Core v2 это исключительно смена названия; ни состав общедоступного кода, ни возможности его использования не меняются.
- Для текущих пользователей dbt Core v1 наша рекомендация остаётся той же, что и ранее в этом году: переходите на полную версию dbt, чтобы получить лучшие возможности для бесплатной локальной работы, и используйте dbt OSS, если вам нужен бинарный файл под лицензией Apache 2.
- В то же время движок dbt Fusion теперь называется dbt. Это версия dbt по умолчанию, которую стоит использовать практически всем, поэтому она и получает основное название.
- Это тоже исключительно смена названия; условия лицензирования, объявленные ранее в этом году, не меняются. Как конечный пользователь вы можете устанавливать и использовать этот дистрибутив бесплатно.
Оба дистрибутива используют одну и ту же спецификацию языка; вы можете переходить с одного на другой, не меняя критически важную бизнес-логику.
Расцвет локальных CLI
Локальные CLI сейчас набирают популярность. Агенты отлично работают со структурированным вводом и выводом и короткими циклами итераций, которые обеспечивают такие инструменты. Как я уже говорил раньше, одна из замечательных сторон перехода с Python на Rust заключается в том, что лучшая бесплатная версия dbt теперь может работать полностью локально.
Исторически название «dbt Core» часто использовали как краткое обозначение «бесплатной версии dbt», «локальной версии dbt» или «версии dbt с открытым исходным кодом». В эпоху v2 только одна из этих характеристик остаётся уникальным отличием, и мы считаем, что название dbt OSS лучше объясняет назначение каждого дистрибутива.
| dbt OSS | dbt | |
|---|---|---|
| Бесплатное использование | ✅ | ✅ |
| Возможность локальной работы | ✅ | ✅ |
| Стандартные возможности фреймворка бесплатно (на уровне dbt 1.x или выше) | ✅ | ✅ |
| Поддержка дополнительных платных функций с оплатой по объёму использования (например, dbt State, dbt Wizard) | ✅ | ✅ |
| Продолжает получать новые функции и улучшения | ✅ | ✅ |
| Общая основа кодовой базы | ✅ | ✅ |
| Расширенные локальные возможности бесплатно (например, семантический анализ SQL, линтинг, поддержка dbt LSP) | ❌ | ✅ |
| Поддержка дополнительных платных функций с оплатой за рабочее место (например, dbt Mesh, dbt Catalog) | ❌ | ✅ |
| Полностью открытый исходный код под лицензией Apache 2.0 | ✅ | ❌ |
На мой взгляд, ложная дихотомия «Core или Cloud» — следствие исторически сложившихся особенностей реализации dbt. Всегда существовали возможности, которые не были реализованы в общедоступном репозитории dbt-core, но поскольку вы взаимодействовали с ними через платформу dbt, а не через локальный CLI1, они воспринимались как облачные функции, а не как возможности самого dbt.
Если вы слышали, как мы говорим об One dbt, это должно стать глотком свежего воздуха. Где бы и как бы ваши команды ни работали с dbt, вы можете развернуть один бинарный файл во всей организации. Вы можете подключать дополнительные бесплатные или платные функции в удобное для вас время, без необходимости сначала переходить на другую установку dbt или другой способ аутентификации.
Что я получу, если буду использовать полный бинарный файл dbt?
Команда pip install dbt >= 2.0.0 сразу предоставляет бесплатный доступ к наиболее функциональной версии dbt без необходимости входа в систему или оплаты.
Если вы всё же решите платить за коммерческие функции, возможностей станет ещё больше. Для доступа к этим дополнительным функциям не потребуется устанавливать другой продукт2 или менять способ аутентификации — всё работает без дополнительных действий.
Независимо от того, какой дистрибутив вы используете:
- Ваш проект dbt использует общий язык: при выполнении
dbt buildвы получите одинаковые результаты. - Вы по-прежнему можете вносить улучшения и исправления в репозиторий dbt, и они попадут в оба дистрибутива.
Что я получу, если буду использовать dbt OSS?
Если бы dbt OSS (версия, собранная исключительно из кода под лицензией Apache) был единственным дистрибутивом dbt v2, это было бы существенное обновление по сравнению с dbt Core 1.12. Он включает всё необходимое для выполнения вашего проекта dbt, а также множество улучшений для разработчиков, таких как новый сайт dbt docs, повышенная скорость работы и dbt Information Schema. Разумеется, он также включает новые возможности языка, такие как checks.
Но поскольку это не единственный дистрибутив dbt v2, а полнофункциональный дистрибутив тоже можно бесплатно использовать локально, устанавливать dbt OSS стоит только в том случае, если вы точно знаете, что ваша компания требует ПО под лицензией Apache 2.0 в определённых ситуациях, или если вы собираетесь писать собственный код, изменяющий работу dbt.
Даже в этом случае стоит проверить, можно ли вести разработку с помощью dbt, а dbt OSS устанавливать только в среды развёртывания. Оба дистрибутива могут читать одни и те же файлы проекта, поэтому переключаться между ними несложно.
Я использую довольно старую версию dbt Core. Что мне делать?
Вам стоит запланировать постепенный переход на dbt v2 (или dbt OSS v2). Мы продолжим выпускать исправления безопасности и совместимости ещё много лет, но dbt Core 1.13 станет последним минорным релизом, который добавит существенную функциональность в кодовую базу на Python.
Прежде чем переходить на любой из дистрибутивов v2, обновитесь до dbt Core 1.12 (или любой ветки выпусков на платформе dbt). Эта версия позволяет протестировать проект с парсером v2 (с помощью нового флага --use-v2-parser), чтобы вы могли внести все необходимые исправления в проект, не прерывая рабочие процессы в production.
Чтобы упростить обновление, используйте пакет dbt-autofix и наши навыки агентов для миграции проектов.
На момент публикации некоторые адаптеры ещё не достигли полной зрелости, поэтому перед планированием обновления обязательно проверьте статус своего адаптера на сайте документации.
Как установить dbt v2 сейчас?
Все подробности приведены в руководстве по установке. Если ваша команда сейчас использует pip, замените pip install dbt-<adapter> на pip install dbt (рекомендуется) или pip install dbt-oss в зависимости от выбранного дистрибутива.
Больше не нужно устанавливать адаптеры отдельно: соответствующий драйвер загружается по мере необходимости на основе целевой среды проекта.
Если вы развёртываете dbt в среде, где сетевые политики запрещают загрузку драйверов из нашей CDN, можно вместо этого напрямую установить пакет адаптера. Например, pip install dbt-snowflake установит полную версию dbt и драйвер Snowflake ADBC.
Пока команда pip install dbt-core продолжит работать (и будет устанавливать dbt OSS), но мы рекомендуем явно перейти на один из двух дистрибутивов.
Часто задаваемые вопросы
Эти ответы основаны на вопросах, которые мы получали о двух дистрибутивах v2 во время бета-тестирования, до их переименования. После переименования некоторые из них стали тавтологичными, и записывать их кажется немного нелепым… но в этом и смысл.
- У dbt OSS открытый исходный код? Да, он распространяется под лицензией Apache 2.0 (OSS означает Open Source Software — программное обеспечение с открытым исходным кодом).
- dbt OSS — это тот же код, который изначально был выпущен как dbt Core 2.0? Да.
- В чём разница между dbt и dbt OSS? Оба дистрибутива — бесплатные реализации второй версии фреймворка dbt. dbt — основной дистрибутив с полным набором возможностей и лицензией, рассчитанной на широкое применение. dbt OSS — дистрибутив с сокращённым набором возможностей, содержащий только открытый код под лицензией Apache 2. Сам язык dbt — файлы SQL и YAML, которые вы пишете в своём проекте, — одинаков в обоих дистрибутивах. Разница заключается в том, что каждый дистрибутив может делать с одними и теми же входными файлами.
- Что стало с dbt Fusion? Теперь он называется просто dbt.
- Зачем существует dbt OSS, если вы рекомендуете большинству пользователей dbt? dbt OSS существует как запасной вариант для команд, которым в определённых ситуациях требуется ПО под лицензией Apache, а также как защита от зависимости от поставщика.
- Стоит ли мне перейти на один из дистрибутивов dbt v2? Да. Мы надеемся, что со временем все перейдут на версию 2, как в 2021 году все перешли с версии 0 на версию 1. Сейчас главный фактор — полностью ли поддерживается ваш адаптер для вашего сценария использования.
- Если я использую dbt, нужно ли мне что-то платить dbt Labs? Нет.
- Если я использую dbt, могу ли я заплатить dbt Labs за доступ к интересным функциям? Да! Если вы хотите использовать такие возможности, как mesh между проектами и платформами или расширенные возможности Catalog, уже установленный вами полный бинарный файл dbt будет работать с ними без дополнительных действий.
- Кому стоит выбрать dbt OSS вместо dbt? Очень немногим. Если вы создаёте собственный инструмент преобразования данных, вы можете сделать форк кодовой базы dbt OSS и расширить её. Если политика вашей компании требует использования ПО под лицензией Apache, используйте dbt OSS. Всем остальным мы рекомендуем полный дистрибутив dbt.
- Как перейти с dbt 1.x на 2.0? Используйте dbt-autofix или наши навыки агентов, чтобы обновиться до dbt Core v1.12. Проверьте совместимость проекта с помощью флага CLI
--use-v2-parser, а затем замените текущую установку dbt выбранным дистрибутивом v2. - Можно ли использовать dbt State с dbt OSS и dbt? Да, оба дистрибутива поддерживают dbt State независимо от того, используете ли вы платформу dbt или другой оркестратор. Его можно использовать даже с dbt Core v1 после установки отдельного плагина.
- Могу ли я продолжать участвовать в разработке dbt v2, если использую проприетарную версию? Да! Запросы новых функций, сообщения об ошибках, обсуждения и PR, относящиеся к обоим дистрибутивам, а также весь код под лицензией Apache находятся в репозитории dbt на GitHub. Если вы внесёте изменение в открытый код, оно будет доступно везде.
- Как долго dbt v1 будет получать исправления безопасности и совместимости? После выпуска dbt Core 1.13 станет последней минорной версией линейки 1.x. Версия 1.13 продолжит получать критически важную поддержку (патч-релизы с исправлениями безопасности и установки) и после стандартного срока в 1 год. Мы ещё не определили точную дату прекращения поддержки, но ожидаем, что этот период составит несколько (3–5) лет. Мы будем следить за переходом на версию 2 и заблаговременно предупредим об окончательной дате завершения поддержки.
