- Зачем:
- перечитка урока 3 свежим взглядом нашла баг в его эталонном пути: проверки
device_not_found/geo_not_found/location_not_found в DDS никогда не срабатывали,
а текст урока ошибочно утверждал, что метки ставятся
- Что:
- sql/dds/30_ods_to_dds.sql: добавлен SETTINGS join_use_nulls=1 в оба
INSERT...SELECT. Без него LEFT JOIN на несовпадении клал в assumeNotNull(click_id)
нулевой UUID (не NULL), и if(...IS NULL, ['*_not_found'], []) молча давал []
(мёртвый код). Тот же класс бага про типы/NULL, что kafka_ts в уроке 1
- docs/course/lessons/03_ods_to_dds.md: убраны ложные claim'ы про geo_not_found/
location_not_found, формулировки приведены к реальному поведению (клик без гео
остаётся с пустыми полями NULL; целостность событий — через orphan_events);
поправлена опечатка «список всех клиентов» → «всех кликов»
- Проверка:
- синтетический тест join_use_nulls=1: клик в device без geo → в ods_parse_errors
появляются geo_not_found и geo_country_missing (до фикса — пусто)
- LIMIT=50 make transform после фикса: dds.click=26, dds.event=50,
orphan_events=0, ни одной строки с непустым ods_parse_errors (вывод не изменился —
на чистом срезе несовпадений нет)
Курс «Кликстрим на ClickHouse» (со звёздочкой)
Продвинутый курс для менти, уже прошедших базовую программу: основные паттерны инженерии данных на стенде Kafka + ClickHouse + Airflow + мониторинг. Менти проходит материал самостоятельно, а на еженедельном созвоне с ментором разбирает затыки и отвечает на вопросы по теме — чтобы проверить глубину понимания.
Сам курс — это блок «со звёздочкой» открытого роадмапа Data Engineer (de.dementev.space, он же на GitHub). Роадмап открыт и устроен так, что идти по нему можно в одиночку; с ментором — ощутимо короче дорога: добавляются персональный план, разбор домашек и код-ревью.
Что где искать
| Файл | Что это | Когда открывать |
|---|---|---|
PRD.md |
Рамка: зачем курс, цели, аудитория, скоуп, критерии успеха | Чтобы понять «что и зачем». Замороженный документ |
LEARNING_PLAN.md |
План обучения: карта уроков, маршрут, аудит эталонных путей | Чтобы понять «в каком порядке и из чего» |
LESSON_STANDARD.md |
Стандарт уроков: шаблон урока, качество кода, самопроверка | Рабочий чеклист при написании каждого урока |
lessons/ |
Сами уроки, по одному файлу (есть: уроки 0–5) | Прохождение курса менти |
Порядок чтения
- Новому участнику (или будущей сессии): начать с
PRD.md, затемLEARNING_PLAN.md. - Перед написанием урока: держать открытым
LESSON_STANDARD.md.
Границы
Материалы под конкретного менти (привязка к работодателю, легенда, подготовка к собесам) в этот репозиторий не кладём — репозиторий публичный, приватное живёт в менторской базе.