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 Coredbt 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 создаёт каркас проекта со стандартными папками.
Проверьте себя
1. Что из этого даёт dbt Cloud сверх dbt Core?
AДругой язык моделей
BВеб-IDE, встроенный планировщик и хостинг документации
CВозможность писать SQL
DПоддержку тестов
2. Зачем нужен адаптер вроде dbt-postgres?
AЧтобы ускорить SQL
BЧтобы dbt знал диалект конкретного хранилища и умел к нему подключаться
CЧтобы заменить хранилище
DЧтобы установить Python