Зачем: начинающим ученикам трудно читать главы без пояснений терминов
и ожидаемого результата примеров.
Что: уточнены заголовки и объяснения в пяти главах и вводной, добавлена
сверка графика с SQL, обновлены ссылки из заданий и документации генератора.
Проверка: SQL и команды сохранены, локальные ссылки проверены;
git diff --check пройден. Ревью смысла Sol 6.1 high замечаний не выявило,
новые пояснения дополнительно сверены с кодом и настройками.
- Зачем: после замены терминов осталось неверное согласование слов.
- Что: исправлены обороты «узла, который выполнил» и «число ... не изменилось».
- Проверка: проверены diff, сохранность SQL и команд, таблиц состава колонок и локальных ссылок; git diff --check прошел.
- Зачем: начинающим трудно читать задания из-за необъясненных терминов и неестественных формулировок.
- Что: переработаны вводная и 21 задание, названы темы разделов, объяснены термины и сокращены повторы; согласованы правила учебного текста и ссылки.
- Проверка: сохранены 25 блоков SQL и команд и таблицы состава колонок; проверены 153 локальные ссылки и 32 входящие ссылки на разделы; git diff --check прошел.
Зачем: сделать действия в двух лабораторных понятными студенту без
дополнительной расшифровки названий и временных обозначений.
Что: переименована первая работа, абстрактные заголовки заменены
конкретными действиями. Уточнены выбор копии списка связей и обновление
даты из журнала перед повтором загрузки. Выводы требуют сравнения данных.
Проверка: последовательное чтение глазами студента и независимая проверка
по исходникам; 81 локальная ссылка, неизменность SQL-блоков, diff --check.
Зачем: дать практику учета новых связей пользователей при обновлении
прежних дней витрины.
Что: добавлены две связанные лабораторные с наблюдениями через Airflow,
собственными таблицами student и повтором частично записанной загрузки.
Обновлены программа, индекс и ссылки из справочников DDS и DM.
Проверка: DDL и SQL под student на ClickHouse 26.3.17.56, четыре модельных
дня через Airflow, полные сверки и повтор незавершенной загрузки;
config-test, lint, локальные ссылки и независимое ревью.
Зачем: дать учащемуся практику проверки полноты, повторов и изменений данных для витрин.
Что: добавлены четыре лабораторные и учебная учетная запись для сохранения наблюдений.
Проверка: SQL и права student на стенде, восемь модельных дней через Airflow, config-test, lint и ссылки.
Зачем: студенту нужен понятный путь от сохраненного состояния к SQL-сравнению без доступа технической учетной записи к изменению хранилища.
Что: добавлен student с чтением источников и записью только в default; лабораторная сохраняет заказы и итоги в две локальные таблицы. Обновлены настройка доступа и программа, уточнено округление productPrice.
Проверка: DDL и INSERT SELECT под student, пустое наблюдение, восемь переходов сохраненной истории и запрет вставки в пять прикладных баз на обеих нодах. config-test, lint стенда и генератора, 54 ссылки, независимое ревью.
Зачем: результатом лабораторных должны быть обоснованные решения о подготовке данных для витрин.
Что: добавлены проверяемые результаты сверки полноты, выбора ключа, точного разбора и правила пересчета; обновлены программа и индекс, убран подсчет долей потерь.
Проверка: SELECT-запросы под analyst, расчеты по сохраненной истории девяти наблюдений, 54 локальные ссылки, git diff --check и независимое техническое ревью.
Зачем: учащемуся нужен понятный путь от наблюдений к выводу без готового ответа в задании.
Что: уточнены сравнения в четырех расследованиях; готовые объяснения заменены вопросами к строкам, расчетам и сохраненным состояниям.
Проверка: проверены 54 локальные ссылки и git diff --check; формулировки сверены с устройством источников и витрин.
Зачем: связать опоздания и отмены с изменением уже рассчитанного отчета.
Что: лабораторная с сохранением состояний заказов, ссылки в индексе и программе; убраны повторы в описании раздела.
Проверка: восемь однодневных world_next_day и etl_pipeline на Airflow 3.3.0; изменения сумм сошлись до копейки, закрытый день неизменен, DQ пройдены. Проверены 54 локальные ссылки, SQL-примеры и git diff --check.
Зачем: дать практику сверки событий покупки с заказами магазина.
Что: задания о потерях событий, повторах покупок и расхождении состава корзин.
Проверка: запросы под analyst на ClickHouse 26.3.17.56; счетчики, суммы и точный разбор JSON сошлись. make lint и независимая техническая проверка пройдены.
Зачем: превратить шесть идей факультативов в связный раздел из четырех работ.
Что: определены результаты работ и наблюдение за заказами через Airflow.
Проверка: git diff --check; порядок обновления данных сверен с кодом дагов.
Зачем: оценка моделей изменилась, назначение Opus автором текстов устарело.
Что: автор задачи сам пишет и редактирует материалы, если владелец не назначил иное.
Проверка: git diff --check; проверены AGENTS.md, CLAUDE.md и docs/agents.
Зачем: до запуска менти должен понимать действие параметров, а после
ошибки проверки — где искать причину.
Что: уточнены тексты Airflow, самопроверки, DQ и run-dag.sh, подписи
Superset и Grafana. Логика, запросы, метрики и идентификаторы сохранены.
Проверка: make lint, git diff --check, bash -n; разбор YAML/JSON,
сравнение структуры Python и конфигурации, искусственные примеры ошибок.
Airflow и Grafana проверены через локальные API, Superset — по YAML.
Визуальная проверка интерфейсов не выполнена: браузер недоступен.
Зачем: включить принятую редактуру материалов ступеней 5–6 в main.
Что: объединена ветка 250-ingestion-docs после просмотра владельцем.
Проверка: make lint, ссылки и неизменность исполняемого кода проверены
до приемки; git diff --check прошел перед коммитом.
Closes#250
Зачем: помочь начинающему инженеру проследить событие и версию заказа
от генератора до хранилища, включая ошибки и повторные поступления.
Что: обновлены вводная генератора, справочники приема и модели заказа,
разделы хранилища и комментарии SQL и дага. Сохранены технические условия;
исполняемый код, схемы и поведение стенда не изменены.
Проверка: make lint, git diff --check, 142 локальные ссылки и справка CLI.
SQL без комментариев и Python AST без строк документации совпали
с исходными. Генерация данных и сброс состояния не выполнялись.
Refs #250
Зачем: выражения «собираются в донор» и «публикуются дни» требовали
знать устройство конвейера до чтения объяснения.
Что: описаны назначение промежуточных таблиц и последовательность
расчета, записи и замены разделов. Перечитаны остальные объяснения:
выбор дней, разворачивание позиций заказа, проверка сессий и повтор запуска.
Проверка: make lint, git diff --check, локальные ссылки и якоря.
SQL без комментариев и AST обоих дагов без строк документации не изменились.
Refs: #249
Зачем: читателю ступеней 1–4 нужно проследить выбор дней, расчет строки
и публикацию результата без расшифровки метафор.
Что: согласованы справочники DM, сессий, ETL и два раздела хранилища
с комментариями шести SQL-примеров. Уточнены ограничения повторного
запуска и выбора атрибутов при равном времени событий.
Проверка: make lint, git diff --check, локальные Markdown-ссылки и якоря.
SQL без комментариев совпадает; AST Python без строк документации совпадает.
Исторические разделы и материалы вне границ задачи сохранены.
Refs: #249
Зачем: понимать термины стенда без изучения устройства генератора.
Что: понятия сгруппированы по учебным темам, определения упрощены;
уточнены идентификаторы, модельное время и повторный запуск стенда.
Проверка: сохранены все 43 прежних термина; проверены 11 входящих
и 6 внутренних ссылок, якорь «Язык» и git diff --check.
Зачем: помочь учащемуся понять назначение объектов и обработку данных по стрелкам карты.
Что: вычитаны карточки и подписи, пояснены термины, удалены повторы. Описания обработки уточнены по SQL, HTML пересобран.
Проверка: сохранены 17 объектов и 17 стрелок, проверены 85 ссылок. В Chromium проверены карточки, фильтры, подсветка, Escape и отображение при ширине 1920 и 1280 пикселей. make lint и git diff --cached --check прошли.
Зачем: помочь учащемуся понять путь данных и работу служб перед выполнением заданий.
Что: вычитаны оглавление и пять глав, пояснены термины, убраны внутренние метафоры и повторы. Уточнены пояснения к SQL и показателям мониторинга.
Проверка: 62 локальные ссылки и 6 входящих ссылок на разделы проверены; 8 блоков SQL и схем сохранены. git diff --cached --check прошел.
Зачем: помочь учащемуся понять назначение стенда и порядок работы с ним.
Что: убраны внутренние метафоры, пояснены термины, настройка перенесена перед запуском. Обновлена ссылка из путеводителя и удалена ссылка на предыдущий стенд.
Проверка: команды, адреса и пароли сохранены; 24 ссылки README и входящие ссылки на разделы проверены. git diff --cached --check прошел.
Зачем: сделать задания понятнее учащемуся и сохранить правила для будущих работ.
Что: объединены три коммита ветки docs/labs-human-language с сохранением истории через merge --no-ff.
Проверка: рабочее дерево чистое перед слиянием, origin/main входит в локальную main, итоговый diff прошел git diff --check. Ссылки и сохранность технических примеров проверены при редактуре.
Зачем: оставить только необходимые ориентиры для автора учебного текста.
Что: раздел сокращен до трех согласованных абзацев, ссылки на оба образца сохранены.
Проверка: git diff --check прошел; проверен diff единственного измененного файла.
Зачем: убрать механические повторы в итогах и избежать ложных расхождений при проверке графика Superset.
Что: уточнены правила итоговых списков и название задания о проверках заказов. В разборе событий разделены учет повторных доставок и выбор событий ODS для сравнения. Первый график Superset и проверочный SQL используют весь период витрины.
Проверка: git diff --check, локальные ссылки и переходы к измененным заголовкам прошли. Блоки кода и таблицы требований сохранены. Согласованность периода графика с SQL проверена по тексту; повторный проход через интерфейс Superset не выполнялся.
Зачем: помочь менти понять действия, проверить результат и оценить освоенное умение.
Что: вычитаны 13 заданий основной программы и общий индекс. Итоговые списки обращены к учащемуся, убраны история разработки и повторы. Правила учебного текста записаны в программе, из AGENTS.md добавлена ссылка.
Проверка: git diff --check, локальные ссылки и ссылки на измененные заголовки прошли. Блоки кода и таблицы требований совпадают с исходными. Упражнения на стенде повторно не выполнялись: изменен только текст.
Зачем: дать менти два самостоятельных задания по BI после ступени 2.
Что: обновлено ТЗ дашборда, добавлен опыт с объектом на одной ноде, уточнены программа и индекс. Формулировки обращены к учащемуся.
Проверка: локальные ссылки и git diff --check прошли. На ClickHouse 26.3.17.56 воспроизведены ошибка чтения со второй ноды и исправление; учебный объект удален. Полный проход через интерфейс Superset не выполнялся.
- Зачем:
- экран отвечал только графиками: итога за период не было, доли категорий
читались по высоте столбиков, а известные пользователи лежали на нуле
рядом с посетителями.
- Что:
- добавлены ряд крупных чисел (выручка, заказы, средний чек, посетители),
кольцо долей категорий и линия доли известных пользователей;
- средний чек и доля известных заведены метриками датасетов, знаменатель
через `nullIf`: на пустом периоде деление Decimal на ноль в ClickHouse
роняет панель;
- фильтр «Период» сужает все панели, включая сверку по `order_day`;
- `label_colors` закрепляет цвет за категорией и за рядами трафика;
- деньги без копеек, единица в названии панели; подписи дат читаются как
даты; сводная сверки развернута классами по строкам и уместилась без
прокрутки;
- обновлены справочник Superset и глава путеводителя.
- Проверка:
- `make lint`;
- `superset import-directory /app/import --overwrite` на живом стенде, экран
снят в браузере: девять панелей отрисованы, цвет категории одинаков на
столбиках и в кольце;
- период 03.06–06.06 сузил все панели, включая сводную по `order_day`;
- `SUM(revenue) / nullIf(SUM(orders), 0)` на периоде без заказов возвращает
NULL, без `nullIf` — исключение 153.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Зачем:
- карту регионов и кросс-фильтрацию предложат снова, а доводы против них
стоили двух линий ревью и замеров на живом стенде.
- Что:
- в docs/architecture/superset.md добавлен раздел «Отклоненные варианты»:
карта регионов, регион как общее измерение витрин, кросс-фильтрация между
панелями, пороги на панелях.
- к каждому отказу записаны проверенные факты и поводы вернуться к разговору.
- Проверка:
- `git diff --check`.
- `grep -rn "0018" docs` — ссылок на неоставленный ADR нет.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Зачем:
- сохранить ясный и естественный стиль текстов проекта.
- Что:
- в CLAUDE.md добавлены требования к лёгкости чтения и отказу от манерной прозы.
- Проверка:
- проверен diff CLAUDE.md.
- Зачем:
- дать учащемуся воспроизводимый путь от своего DDL до первой проверки витрины.
- Что:
- уточнено применение `sql/ddl/70-labs.sql` в работающем стенде через подключение `etl`.
- добавлены указания запуска `homework_check` и чтения журнала для `events_enriched`.
- Проверка:
- `git diff --check`.
- `make config-test` — зелёный.
- Зачем:
- эксплуатационные улучшения не должны становиться самостоятельной целью учебного проекта.
- Что:
- поддержка стенда ограничена сохранением учебного пути и учебными задачами.
- зафиксировано отсутствие отдельной эксплуатационной ценности.
- Проверка:
- git diff --check.
- Зачем:
- агентам нужен точный портрет читателя и проверяемый результат обучения.
- Что:
- описана подготовка начинающих инженеров данных перед работой со стендом.
- зафиксирована цель: освоить общепринятые приёмы и суметь построить похожее хранилище.
- добавлена ссылка на программу учебных заданий.
- Проверка:
- git diff --check.
- Зачем:
- объяснение формы витрин читалось искусственно и использовало неуместное слово «менти».
- Что:
- выбор таблицы или представления объяснён через конкретные действия в задании.
- слово «менти» убрано из dm.md и AGENTS.md.
- описание факультатива и ссылка на раздел DM приведены к новому тексту.
- Проверка:
- git diff --check.
- проверено отсутствие слова «менти» в изменённых документах и наличие целей ссылок.
- Зачем:
- расположение файла должно отличать задания основной программы от факультативов.
- Что:
- существующее ТЗ Superset перенесено в `docs/labs/optional/`, ссылки обновлены.
- правило размещения записано в `AGENTS.md`.
- выбор формы витрин объяснен учебной целью стенда.
- Проверка:
- `git diff --check`.
- проверены все упоминания `superset-dashboard` и относительные ссылки.
- Зачем:
- Завершить ТЗ основной программы расследованиями нагрузки и свежести данных.
- Что:
- Добавлено ТЗ ступени 7 с наблюдением запросов Grafana и доставки слепка заказов.
- В индексе лаб открыта ссылка на последнее задание программы.
- Проверка:
- Проверены относительные ссылки, git diff --check и соответствие панелям стенда.
- Зачем:
- сделать постановку ступени 6 понятнее после редакторского ревью, сохранив её учебный договор и границы.
- Что:
- оставлена свобода выбрать форму разбора без навязывания Nullable и готовой схемы 0/1.
- уточнены пакетная обработка, баланс годных строк, модельное и ручное время и убрана лишняя персонификация.
- Проверка:
- проверены SHA256, `git diff --check` и изменение только `docs/labs/6-1-event-parsing.md`.
- Зачем:
- ступени 6 не хватало ТЗ для пакетного разбора сырого среза рядом с живым приемом.
- Что:
- добавлено задание с одной собственной таблицей, строгим входом и сверкой всех 47 полей с ODS.
- индекс основной программы дополнен ссылкой на ступень 6 и актуальным статусом ступени 7.
- Проверка:
- выполнен `git diff --check`, проверены локальные ссылки и договор задания по DDL STG и ODS.
- Зачем:
- одно длинное ТЗ заставляло одновременно держать в голове три самостоятельных опыта и их очистку.
- Что:
- проверки, разбор ODS и сборка DDS разнесены по трем последовательным заданиям.
- уточнены границы учебной реализации, место диагностики и выбор закрытого дня.
- оглавление ступени 5 дополнено ссылками на все три задания.
- Проверка:
- проверены ссылки, пробная пачка jq, кластерные мутации и отсутствие ошибок пробелов в diff.
- Зачем:
- менти нужен наблюдаемый опыт, в котором проверки защищают изменение конвейера заказов.
- Что:
- добавлено ТЗ ступени 5 с договорами DQ, управляемыми ошибками и восстановлением.
- в оглавление лабораторных работ добавлена ссылка на новое задание.
- Проверка:
- проверены локальные ссылки, пробная пачка jq и отсутствие ошибок пробелов в diff.