dbt Core против dbt Cloud и установка
Две поставки dbt и как поставить ту, что нужна именно вам.
dbt Core — бесплатный open-source CLI-инструмент. dbt Cloud — платный SaaS поверх Core с веб-IDE, планировщиком и хостингом документации.
Две поставки, одно ядро
Под капотом обе версии используют один и тот же движок. dbt Core — это Python-пакет, который вы ставите через pip и запускаете командами в терминале. Он бесплатен и делает всё: компилирует модели, прогоняет тесты, строит документацию. Но запуск по расписанию, веб-редактор и совместная работа — на вас.
dbt Cloud добавляет вокруг Core удобства: браузерную IDE, кнопочный планировщик запусков (cron без своего сервера), хостинг документации, управление доступом, интеграцию с git и CI. За это берут деньги (есть бесплатный тариф для одного разработчика).
| Возможность | dbt Core | dbt Cloud |
| Цена | Бесплатно | Платно (есть free для 1 dev) |
| Интерфейс | CLI | Веб-IDE + CLI |
| Планировщик | Свой (Airflow, cron) | Встроенный |
| Хостинг docs | Сам | Встроенный |
Установка dbt Core
dbt — это ядро плюс адаптер под конкретное хранилище. Ставят их вместе: имя пакета адаптера говорит, к чему вы подключаетесь.
# Подключение к Postgres
pip install dbt-postgres
# Под другие хранилища — свой адаптер
pip install dbt-snowflake
pip install dbt-bigquery
pip install dbt-redshift
# Проверить версию
dbt --version
Адаптер тянет за собой сам dbt-core как зависимость, поэтому отдельно ставить ядро не нужно.
Создание проекта
# Сгенерировать каркас проекта
dbt init my_analytics
# dbt спросит тип хранилища и создаст структуру папок:
# models/, seeds/, tests/, macros/, dbt_project.yml
Как работает под капотом
Когда вы вызываете dbt run, Core читает ваши .sql-файлы, прогоняет их через шаблонизатор Jinja, превращает в обычный SQL, выстраивает порядок по зависимостям и через адаптер отправляет хранилищу. Адаптер — это переводчик: он знает диалект конкретного хранилища (как именно создать таблицу, как назвать схему). Поэтому один и тот же проект с минимальными правками работает на Postgres и на Snowflake.
Частые ошибки
- Ставить
dbt-coreбез адаптера. Без адаптера не к чему подключиться — всегда ставьте пакет под своё хранилище. - Путать Cloud как «другой dbt». Это та же логика моделей, разница только в обвязке (IDE, планировщик).
- Думать, что Cloud обязателен. Многие команды годами живут на Core + Airflow.
Итоги
- dbt Core — бесплатный CLI; dbt Cloud — платный SaaS с IDE и планировщиком поверх того же ядра.
- Устанавливают адаптер под хранилище (
dbt-postgres,dbt-snowflakeи т.д.), он тянет ядро. dbt initсоздаёт каркас проекта со стандартными папками.