Files
clickstream-ch-kafka-supers…/docs/course
ddadmin 5f5312c70c fix(dds): починены мёртвые проверки *_not_found + правки урока 3 по ревью
- Зачем:
  - перечитка урока 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 (вывод не изменился —
    на чистом срезе несовпадений нет)
2026-06-05 21:58:44 +03:00
..

Курс «Кликстрим на ClickHouse» (со звёздочкой)

Продвинутый курс для менти, уже прошедших базовую программу: основные паттерны инженерии данных на стенде Kafka + ClickHouse + Airflow + мониторинг. Менти проходит материал самостоятельно, а на еженедельном созвоне с ментором разбирает затыки и отвечает на вопросы по теме — чтобы проверить глубину понимания.

Сам курс — это блок «со звёздочкой» открытого роадмапа Data Engineer (de.dementev.space, он же на GitHub). Роадмап открыт и устроен так, что идти по нему можно в одиночку; с ментором — ощутимо короче дорога: добавляются персональный план, разбор домашек и код-ревью.

Что где искать

Файл Что это Когда открывать
PRD.md Рамка: зачем курс, цели, аудитория, скоуп, критерии успеха Чтобы понять «что и зачем». Замороженный документ
LEARNING_PLAN.md План обучения: карта уроков, маршрут, аудит эталонных путей Чтобы понять «в каком порядке и из чего»
LESSON_STANDARD.md Стандарт уроков: шаблон урока, качество кода, самопроверка Рабочий чеклист при написании каждого урока
lessons/ Сами уроки, по одному файлу (есть: уроки 0–5) Прохождение курса менти

Порядок чтения

  1. Новому участнику (или будущей сессии): начать с PRD.md, затем LEARNING_PLAN.md.
  2. Перед написанием урока: держать открытым LESSON_STANDARD.md.

Границы

Материалы под конкретного менти (привязка к работодателю, легенда, подготовка к собесам) в этот репозиторий не кладём — репозиторий публичный, приватное живёт в менторской базе.