dbt — это инструмент для трансформации данных прямо в хранилище: BigQuery, Snowflake, Redshift, Postgres и других. Он помогает аналитикам и data-инженерам превращать сырые таблицы в понятные витрины, используя SQL, Git и документацию как код.
Что делает dbt
- берет данные из уже загруженных в DWH источников
- описывает преобразования в виде SQL-моделей
- управляет зависимостями между таблицами
- запускает тесты качества данных
- генерирует документацию и lineage-схему 🔍
Как работает dbt
В основе — модели. Обычно одна модель = один SQL-файл.
Например, из сырой таблицы заказов можно сделать очищенную витрину:
select
order_id,
customer_id,
order_date,
total_amount
from raw.orders
where status = 'completed'
После запуска dbt создаст таблицу или view в хранилище. Так вы строите цепочку: raw → staging → marts.
Базовая структура проекта
models/— SQL-моделиtests/— кастомные тестыseeds/— справочники из CSVsnapshots/— отслеживание изменений данныхdbt_project.yml— конфиг проекта
Первый туториал: с чего начать
- Установите dbt и адаптер под ваше хранилище
- Создайте проект:
dbt init - Настройте подключение в
profiles.yml - Добавьте первую модель в
models/ - Запустите:
dbt run🚀 - Проверьте качество:
dbt test
Почему dbt популярен
- SQL-first подход — не нужно писать сложный ETL-код
- удобная работа через Git
- прозрачные зависимости между моделями
- встроенные тесты:
not null,unique,relationships - документация создается автоматически 🧩
Пример тестов
Для таблицы пользователей можно проверить, что user_id уникален и не пустой. Это снижает риск ошибок в отчетах и BI.
Когда использовать dbt
- dbt подходит, если:
- данные уже загружаются в DWH другим инструментом
- нужна прозрачная логика трансформаций
- важно версионирование и командная разработка
- хочется быстрее строить аналитические витрины
Что важно понимать
dbt не заменяет ingestion-инструменты вроде Airbyte или Fivetran. Он не забирает данные из внешних систем, а именно трансформирует их после загрузки в хранилище.
Итог
dbt — один из самых практичных инструментов modern data stack. Он упрощает трансформации данных, делает SQL-пайплайны управляемыми и помогает выстроить надежную аналитику без хаоса в запросах 📈
За полезными находками загляните в подборку каналов про IT 💡