Чему вы научитесь
- Разворачивать production-ready рабочее окружение dbt, ClickHouse, Docker, VS Code и DBeaver для эффективной локальной разработки.
- Строить многослойные хранилища данных (Raw, Bronze, Silver, Gold) на базе Modern Data Stack dbt + ClickHouse.
- Подключать и описывать источники сырых данных из слоя Raw при помощи конфигурационных файлов sources.yml.
- Проектировать оптимизированные модели dbt models, используя специфику и возможности движков семейства MergeTree (ReplacingMergeTree) в ClickHouse.
- Настраивать параметры и конфигурации моделей dbt, включая партиционирование, ключи сортировки, материализации и TTL, для их корректной работы с базой данных ClickHouse.
- Писать собственные макросы на Jinja и переопределять встроенные функции dbt для гибкого управления логикой моделей и автоматизации рутины.
- Вести понятную YAML-документацию для контроля качества данных и генерации интерактивной документации проекта с графом зависимостей Data Lineage.
- Писать собственные проверки качества любой сложности при помощи Custom Generic Tests.
- Создавать словари ClickHouse Dictionary для быстрого обогащения данных на лету при помощи dbt seeds без использования тяжелых операций JOIN.
- Создавать витрины данных с использованием инкрементальных моделей incremental для эффективного расчета бизнес-метрик на больших объемах данных.
- Строить production-ready хранилища данных — от сырых логов до финальных аналитических витрин, используя лучшие практики аналитической инженерии.
О курсе
Добро пожаловать на курс "dbt с нуля — практика на ClickHouse"!
Этот курс является практическим продолжением курса «dbt с нуля». Если в первой части мы изучали основные концепции и возможности dbt, то здесь сосредоточимся на практике и разберём, как использовать dbt в связке с ClickHouse для решения реальных задач и построения надежного аналитического хранилища данных.
Вместе мы создадим полноценный dbt-проект, который можно будет добавить в портфолио на GitHub: настроим локальное окружение, развернем ClickHouse, подключим dbt, реализуем слои трансформации данных от сырых данных до готовых витрин, внедрим тестирование, документацию и разберемся со спецификой моделей и инструментов dbt.
У курса есть собственный чат
Приглашаю присоединиться: dbt с нуля. Там можно оперативно обсудить сложные кейсы, познакомиться с коллегами или первыми узнать об анонсах новых материалов.
Как устроен каждый урок
-
Теория: понятное объяснение концепций без лишней «воды».
-
Практические примеры: разбор теории на понятных, приближенных к реальности примерах.
-
Задания: проверочные тесты, а также домашние задания на программирование. Все практические задания проверяются лично мной: я провожу Code Review и даю обратную связь с рекомендациями.
🛠️ Модуль 1 — Настройка окружения и быстрый старт
Развернем локальную инфраструктуру, запустив СУБД ClickHouse в изолированном Docker-контейнере, и подключим к ней клиент DBeaver. Настроим рабочее окружение в VS Code, установим адаптер dbt-clickhouse и инициализируем проект. В финале проверим корректность всех доступов и связей с помощью команды dbt debug.
🗄️ Модуль 2 — Сырой слой и источники данных
Познакомимся с концепцией медальонной архитектуры (Raw – Bronze – Silver – Gold) и разберем структуру файла dbt_project.yml. Самостоятельно создадим таблицы в ClickHouse и наполним их сырыми данными e-commerce с помощью SQL-скриптов. Опишем полученные источники в конфигурации sources.yml и свяжем их с dbt через макрос {{ source() }}.
🥉 Модуль 3 — Бронзовый слой
Научимся проектировать Bronze-слой: выполнять базовую очистку, переименование полей и приведение типов без изменения структуры данных. Разберем, как через блок config() передавать специфичные параметры ClickHouse, включая движки MergeTree и ключи сортировки. Внедрим первые встроенные тесты dbt для проверки качества данных и задокументируем модели в YAML.
🥈 Модуль 4 — Серебряный слой
Изучим принципы построения цепочек моделей с помощью макроса {{ ref() }} для создания прозрачного графа зависимостей Data Lineage. Научимся загружать статичные справочники через dbt Seeds и эффективно интегрировать ClickHouse Dictionary для быстрого маппинга данных. Реализуем дедупликацию и напишем кастомные тесты (Custom Generic Tests) для проверки сложной бизнес-логики.
🏗️ Модуль 5 — Золотой слой — В разработке
Изучим принципы проектирования витрин данных, оптимизированных под быстрые аналитические запросы. На практике создадим финальные бизнес-витрины и настроим их инкрементальную сборку с помощью incremental моделей, чтобы не пересчитывать миллиарды строк каждый раз. Научимся писать переиспользуемые макросы на Jinja для автоматизации SQL-кода и ускорения тяжелых агрегаций.
Для кого этот курс
Начальные требования
Для успешного прохождения курса нужны следующие знания:
— Основы SQL: CTE, SELECT, WHERE, GROUP BY, JOIN, а также понимаете основные объекты баз данных: таблицы, поля, представления, материализованные представления.
— Основы dbt, можно пройти на моем бесплатном курсе (https://stepik.org/course/289243).
— Основы ClickHouse.
Наши преподаватели
Как проходит обучение
Каждый урок содержит в себе:
-
Теорию: понятное объяснение концепций без лишней «воды».
-
Практические примеры: разбор теории на понятных, приближенных к реальности примерах.
-
Задания: проверочные тесты, а также домашние задания на программирование. Все практические задания проверяются лично мной: я провожу Code Review и даю обратную связь с рекомендациями.