Про этот курс
Это третья — финальная — часть программы по dbt. Уровень senior / internals. Если dbt II учила вести production-проект на 100+ моделях, то здесь мы спускаемся на этаж ниже: открываем core/dbt/ в репозитории dbt-labs/dbt-core и разбираем, как именно dbt run превращается в SQL, бегущий в warehouse. Кто такой Manifest, что делает GraphRunnableTask, почему execute=False ломает половину macros, как работает partial parse через msgpack, и какие пять контекстов Jinja дают разный набор объектов.
Курс рассчитан на 75-80 часов, разбит на 15 модулей, на русском, актуален на май 2026. Целевые версии: dbt-core 1.11.5 (stable Q4 2025), dbt-core 1.12 (April 2026, semantic layer v2 YAML), dbt-adapters 1.10+, dbt Fusion (beta May 2025, GA Coalesce 2025), dbt-duckdb 1.10.1. Где обсуждаем Fusion engine — упоминаем что это Rust implementation на SDF Labs codebase, и какие сценарии оно ускоряет, какие нет.
Кому этот курс подходит
Курс не подходит тем, кто впервые работает с dbt — таким сначала dbt I. И тем, кто застрял на «как написать первую инкрементальную модель» — туда dbt II. dbt III предполагает, что вы уже годами в production, и вопрос не «что делать?», а «как это устроено и где оно сломается?».
А вот если вы периодически читаете dbt-core PRs на GitHub, делаете контрибьюты в адаптеры (даже маленькие — dbt-duckdb, dbt-postgres), мейнтейните внутренний package для команды, или собираетесь писать свой adapter под нестандартный warehouse — этот курс закрывает разрыв между «использую dbt» и «понимаю что dbt делает».
Чем senior отличается от middle в dbt
Middle отвечает за project-level качество: 100 моделей в проде стабильно. Senior отвечает за то, чтобы platform-level dbt работала: 5 проектов в Mesh, 3 custom адаптера, внутренний package с 40 macros, 30 dashboards на Semantic Layer.
Это шесть осей senior. Каждой посвящено два-три модуля.
Что внутри курса
15 модулей, ~70 уроков. Структура:
Каждый урок — 2000-3500 слов senior-tone (глубокий, технический), 2-3 диаграммы, ссылки на конкретные файлы dbt-core source code, реальные Python-сниппеты из репозитория, блок «Попробуй сам» с глубокими техниками (открыть pdb на parsing, профилировать через cProfile, дебажить partial parse hash). После урока — quiz 5-7 вопросов уровня applied / analytical (conceptual — только для теоретических основ; зубрилку мы здесь не тренируем).
Стек курса
- dbt-core 1.11.5 (stable Q4 2025), 1.12 (April 2026 — отмечаем где разница)
- dbt-adapters 1.10+ — separate package since 1.8 split
- Python 3.10-3.12 — все примеры на 3.11
- dbt-duckdb 1.10.1 — основной обучающий adapter (источник Python-кода для разборов)
- DuckDB 1.4+ — для labs с custom adapter
- dbt Fusion (beta May 2025, GA Coalesce 2025) — отдельный модуль, ставится как
curl get.dbt.com - MetricFlow 0.207+ (входит в dbt-core 1.6+, активно эволюционирует)
Что НЕ покрываем
Курс целиком — про dbt internals. Намеренно опускаем:
- dbt Cloud UI — не платформа курса. Касаемся только Cloud-specific features (defer, jobs scheduler) концептуально
- Snowflake / BigQuery / Databricks specifics — наш adapter для разборов —
dbt-duckdb(open source, читаемый Python, ~5000 строк) - Airflow operators — используем Dagster как пример orchestration с pre-loaded Manifest
- dbt Power User VS Code — IDE-tooling вне scope
- Business cases — это технический курс, не «как продать data team boss-у»
Где курс уходит за рамки senior CV — модуль 12 (dbt Fusion deep) и модуль 13 (MetricFlow internals). Эти темы пока редко в production, но senior должен про них уметь рассуждать. Capstone — реально применимый артефакт: либо PR в dbt-core, либо собственный adapter, либо optimization case с замерами.
Что нужно от вас
Senior курс — это работа с исходниками. Чтобы реально вынести знания, нужно:
- Открыть dbt-core клонированным локально. Прямо параллельно с курсом.
git clone https://github.com/dbt-labs/dbt-core; git checkout v1.11.5. В каждом уроке будут отсылки к конкретным файлам —core/dbt/parser/manifest.py:line 234,dbt/contracts/graph/manifest.py. Открывайте, читайте, ставьтеbreakpoint()где интересно. - Делать labs. Лабораторий четыре — custom materialization, adapter from scratch, programmatic invocation, large-project optimization. Каждая занимает 4-8 часов. Без labs курс — это лекция; с labs — это навык.
- Не торопиться. 75-80 часов курса лучше растянуть на 8-10 недель. Каждый модуль строится на предыдущем: контексты Jinja не уложатся, пока не понятна разница parse vs execute фазы; adapter не уложится, пока не понятен Manifest.
Это бесплатно — и без подвоха
Курс полностью бесплатный. Нет paid tier, нет «купи курс за 2000 рублей, чтобы открыть остальные модули», нет email-подписок с обещанием «50 советов про dbt internals в PDF». Всё содержимое — здесь, открыто, навсегда.
Как создавался курс
Курс создан при участии Claude (Anthropic) как соавтора: ИИ помогал писать материалы, структурировать темы, разбирать Python-исходники dbt-core, генерировать примеры кода и диаграммы. Каждая глава проходила ручную сверку с первоисточниками — dbt-labs/dbt-core на GitHub, официальной документацией, исходным кодом адаптеров — но гарантировать 100% точность невозможно, особенно на быстро эволюционирующих темах (dbt Fusion, Semantic Layer v2).
Если вы заметили неточность, опечатку или хотите предложить улучшение — напишите в Telegram-группу курса. Для senior-курса это особенно ценно: вы можете найти gotcha, которого нет в моей версии, или указать на изменение в master ветке dbt-core, которое стоит включить.
Углублённое изучение с Claude
Курс рассчитан на самостоятельное изучение, но любая тема быстрее ложится, если задавать вопросы. Рекомендую держать рядом браузерное расширение Claude (claude.com/download) — оно работает с контентом открытой страницы: выделяете кусок урока и спрашиваете напрямую.
Для senior-уровня особенно полезны сценарии:
- «Покажи, как это устроено в master ветке» — когда хочется увидеть текущее состояние, не v1.11.5
- «Какие edge cases есть в этом сценарии?» — когда хочется проверить понимание полнотой кейсов
- «Как это связано с [другой части dbt-core]?» — когда нужно увязать концепцию через codebase
- «У меня adapter для X — как написать материализацию Y?» — когда хочется примерить материал на свой проект
Это не замена курсу, а способ ускорить интеграцию. Если ответы Claude расходятся с уроком — присылайте в Telegram-группу.
Нашли ошибку?
Если заметили неточность, опечатку или хотите предложить улучшение:
Telegram-канал
Подписывайтесь, чтобы узнавать об обновлениях и новых курсах: