docs(labs): добавлены история связей и инкрементальный пересчет
Зачем: дать практику учета новых связей пользователей при обновлении прежних дней витрины. Что: добавлены две связанные лабораторные с наблюдениями через Airflow, собственными таблицами student и повтором частично записанной загрузки. Обновлены программа, индекс и ссылки из справочников DDS и DM. Проверка: DDL и SQL под student на ClickHouse 26.3.17.56, четыре модельных дня через Airflow, полные сверки и повтор незавершенной загрузки; config-test, lint, локальные ссылки и независимое ревью.
This commit is contained in:
1 parent
c1d3a6db9b
commit
b839a671a1
6 files changed
+335
-9
No files matched your search
@@ -207,11 +207,27 @@
|
||||
|
||||
Открывается после ступени 1 основной программы.
|
||||
|
||||
- **Что мы знали о пользователе в тот день (#145).** Текущее знание и знание на
|
||||
дату дают разные отчеты; сведения из будущего меняют прошлое.
|
||||
- **[Когда хранилище узнало пользователя](../labs/optional/identity-over-time.md) (#145).**
|
||||
Учащийся собирает связи с подтверждающими покупками и сохраняет три
|
||||
ежедневных наблюдения. На одном наборе прежних сессий сравнивает расчет
|
||||
с прежними и новыми связями, выбирает историю для воспроизведения расчета.
|
||||
- **Добавь названия регионов в отчет (#143).** Менти собирает свой словарь по
|
||||
образцу каталога и обогащает отчет через `dictGet`.
|
||||
|
||||
Работа о связях продолжается в инженерном разделе лабораторной про
|
||||
инкрементальный `daily_traffic`. В обеих учащийся продвигает мир через
|
||||
`world_next_day` и `etl_pipeline`, сохраняет наблюдения под `student` в
|
||||
свои локальные таблицы `default` и сравнивает их SQL-запросами.
|
||||
|
||||
Время первой подтверждающей покупки и время обнаружения связи разделены.
|
||||
Минимум времени `purchase` не принят за границу появления новых связей:
|
||||
заказ может поступить позже события. Нужные изменения определяются по
|
||||
разности сохраненных наборов пар. Ежедневное наблюдение ограничивает момент
|
||||
появления связи интервалом; для пар начального наблюдения более ранняя
|
||||
история неизвестна. История сессий в этом опыте растет без исправлений
|
||||
прошлых дней, а связи не отзываются — поэтому сохраненных наборов связей
|
||||
достаточно для сравнения расчетов на прежних сессиях.
|
||||
|
||||
### Superset и BI
|
||||
|
||||
Открывается после ступени 2 основной программы.
|
||||
@@ -267,9 +283,28 @@
|
||||
- **Что будет, если день заменился не на всех шардах.** Замена дня завершается
|
||||
отдельно на каждом шарде, поэтому целостность результата подтверждает
|
||||
отдельная сверка.
|
||||
- **Как обновлять витрину без полной пересборки (#149) — повышенная
|
||||
сложность.** Экономия на пересчете требует хранить историю изменений, которую
|
||||
полная пересборка стирает.
|
||||
- **[Как обновлять витрину без полной пересборки](../labs/optional/incremental-daily-traffic.md)
|
||||
(#149) — повышенная сложность.** Продолжение работы о связях пользователей:
|
||||
учащийся строит свою витрину, выбирает затронутые дни по новым сессиям
|
||||
и связям, сверяет весь результат с `dm.daily_traffic_v`. Журнал успешных
|
||||
загрузок позволяет повторить опыт с частично записанным результатом.
|
||||
|
||||
Инкрементальная работа начинается с полной загрузки текущего состояния,
|
||||
затем охватывает два новых модельных дня. Обновление собственной витрины
|
||||
выполнено вставкой версий в `ReplacingMergeTree`, чтение — с `FINAL`.
|
||||
Это оставляет права `student` прежними и не требует менять конвейер стенда.
|
||||
Версия — дата наблюдения; ключ — день отчета. История связей хранится
|
||||
отдельно от версий витрины. Выбор опирается на
|
||||
[договор движка](https://clickhouse.com/docs/engines/table-engines/mergetree-family/replacingmergetree):
|
||||
максимальная версия по ключу и удаление прежних версий при слияниях.
|
||||
DDL, обновление вставкой и чтение с `FINAL` проверены под `student`
|
||||
на ClickHouse 26.3.17.56.
|
||||
|
||||
Полный пересчет остается эталоном, а экономия оценивается числом выбранных
|
||||
дней. На малом объеме ускорение не обещано. Поиск связей продолжает читать
|
||||
историю источников целиком; инкрементальным становится расчет дневной витрины.
|
||||
Полная замена стендового ETL отклонена: для учебного сравнения достаточно
|
||||
своей витрины и журнала рядом с работающим конвейером.
|
||||
|
||||
### Что делать, когда стенд сломался
|
||||
|
||||
|
||||
Reference in new issue
Block a user