docs(labs): история связей и инкрементальное обновление витрины #256

Merged
ddmitry merged 2 commits from labs/identity-incremental into main 2026-09-22 15:30:27 +03:00
Owner

Добавлены две связанные лабораторные: «Как новые заказы меняют отчет о посетителях» и «Как обновлять витрину без полной пересборки». Учащийся сохраняет историю связей посетителей с покупателями, затем строит рядом со стендовой витриной свой пересчет затронутых дней.

В первой работе учащийся под student сохраняет полный список связей после трех модельных дней и сравнивает расчеты на одном наборе прежних сессий. Так он проверяет, можно ли заменить историю появления связей датами покупок. Во второй работе он выбирает дни для пересчета, обновляет свою витрину вставкой версий и проверяет повторный запуск после частичной загрузки. Дата в журнале указывает список связей, использованный последней успешной загрузкой.

Новые задания связаны из индекса, программы и справочников DDS/DM. Права student и конвейер стенда остаются прежними. Полные запросы сохранения, пересчета и сверки пишет учащийся.

Продолжает идеи #145 и #149, уже закрытые после включения в программу. Уточнена их временная модель: минимум времени покупки не используется как отметка появления новой связи; изменения обнаруживаются сравнением наблюдений.

Проверка

  • На ClickHouse 26.3.17.56 под student выполнены DDL из обеих работ. Три исходных наблюдения содержат 3 834, 4 076 и 4 295 пар; наборы полностью совпадают с dds.identity_map_v, без пропусков и повторов.
  • При неизменных сессиях за 1 июня число посетителей осталось 7 343, а известных пользователей выросло с 401 до 406. Найдены связи с покупками 16 июня, отсутствовавшие в наблюдении 18 июня.
  • Обновление за 21 июня полностью совпало со стендовой витриной. Появилась 201 новая пара; поиск только по времени покупки пропустил бы все 201. Затронуты все 21 день, поэтому экономии пересчета на этом шаге нет; повтор после успешной загрузки выбирает ноль дат. В задании эта граница названа явно.
  • За 22 июня сначала записан только один день: сверка нашла 21 несовпадающую дату. Повтор от прежней отметки журнала восстановил совпадение без очистки результата; следующий повтор выбрал ноль дат. На этом шаге появились еще 223 пары и пересчитаны все 22 дня.
  • make config-test и make lint прошли при проверке сценария. Для текущих текстов проверены 81 локальная ссылка, git diff --check и совпадение SQL-блоков с проверенной на стенде версией.
  • Обе работы последовательно прочитаны глазами студента: источники, даты, порядок действий и способы сверки. Независимая проверка по исходникам блокеров выполнимости не нашла; выполнен проход на сокращение.

Проверка выполнена через API Airflow и SQL; полный проход через интерфейсы Airflow и DBeaver не выполнялся. Четыре пары world_next_day → etl_pipeline продвинули мир с 18 до 22 июня. Все созданные проверкой таблицы удалены под student.

Добавлены две связанные лабораторные: «Как новые заказы меняют отчет о посетителях» и «Как обновлять витрину без полной пересборки». Учащийся сохраняет историю связей посетителей с покупателями, затем строит рядом со стендовой витриной свой пересчет затронутых дней. В первой работе учащийся под `student` сохраняет полный список связей после трех модельных дней и сравнивает расчеты на одном наборе прежних сессий. Так он проверяет, можно ли заменить историю появления связей датами покупок. Во второй работе он выбирает дни для пересчета, обновляет свою витрину вставкой версий и проверяет повторный запуск после частичной загрузки. Дата в журнале указывает список связей, использованный последней успешной загрузкой. Новые задания связаны из индекса, программы и справочников DDS/DM. Права `student` и конвейер стенда остаются прежними. Полные запросы сохранения, пересчета и сверки пишет учащийся. Продолжает идеи #145 и #149, уже закрытые после включения в программу. Уточнена их временная модель: минимум времени покупки не используется как отметка появления новой связи; изменения обнаруживаются сравнением наблюдений. ### Проверка - На ClickHouse 26.3.17.56 под `student` выполнены DDL из обеих работ. Три исходных наблюдения содержат 3 834, 4 076 и 4 295 пар; наборы полностью совпадают с `dds.identity_map_v`, без пропусков и повторов. - При неизменных сессиях за 1 июня число посетителей осталось 7 343, а известных пользователей выросло с 401 до 406. Найдены связи с покупками 16 июня, отсутствовавшие в наблюдении 18 июня. - Обновление за 21 июня полностью совпало со стендовой витриной. Появилась 201 новая пара; поиск только по времени покупки пропустил бы все 201. Затронуты все 21 день, поэтому экономии пересчета на этом шаге нет; повтор после успешной загрузки выбирает ноль дат. В задании эта граница названа явно. - За 22 июня сначала записан только один день: сверка нашла 21 несовпадающую дату. Повтор от прежней отметки журнала восстановил совпадение без очистки результата; следующий повтор выбрал ноль дат. На этом шаге появились еще 223 пары и пересчитаны все 22 дня. - `make config-test` и `make lint` прошли при проверке сценария. Для текущих текстов проверены 81 локальная ссылка, `git diff --check` и совпадение SQL-блоков с проверенной на стенде версией. - Обе работы последовательно прочитаны глазами студента: источники, даты, порядок действий и способы сверки. Независимая проверка по исходникам блокеров выполнимости не нашла; выполнен проход на сокращение. Проверка выполнена через API Airflow и SQL; полный проход через интерфейсы Airflow и DBeaver не выполнялся. Четыре пары `world_next_day` → `etl_pipeline` продвинули мир с 18 до 22 июня. Все созданные проверкой таблицы удалены под `student`.
ddmitry added 1 commit 2026-09-22 12:57:31 +03:00
Зачем: дать практику учета новых связей пользователей при обновлении
прежних дней витрины.

Что: добавлены две связанные лабораторные с наблюдениями через Airflow,
собственными таблицами student и повтором частично записанной загрузки.
Обновлены программа, индекс и ссылки из справочников DDS и DM.

Проверка: DDL и SQL под student на ClickHouse 26.3.17.56, четыре модельных
дня через Airflow, полные сверки и повтор незавершенной загрузки;
config-test, lint, локальные ссылки и независимое ревью.
ddmitry added 1 commit 2026-09-22 13:15:12 +03:00
Зачем: сделать действия в двух лабораторных понятными студенту без
дополнительной расшифровки названий и временных обозначений.

Что: переименована первая работа, абстрактные заголовки заменены
конкретными действиями. Уточнены выбор копии списка связей и обновление
даты из журнала перед повтором загрузки. Выводы требуют сравнения данных.

Проверка: последовательное чтение глазами студента и независимая проверка
по исходникам; 81 локальная ссылка, неизменность SQL-блоков, diff --check.
ddmitry merged commit 3c3eb825e1 into main 2026-09-22 15:30:27 +03:00
ddmitry deleted branch labs/identity-incremental 2026-09-22 15:30:28 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ddmitry/clickstream-data-platform#256