docs(warehouse): упрощены объяснения витрин, сессий и пересчета

Зачем: читателю ступеней 1–4 нужно проследить выбор дней, расчет строки
и публикацию результата без расшифровки метафор.

Что: согласованы справочники DM, сессий, ETL и два раздела хранилища
с комментариями шести SQL-примеров. Уточнены ограничения повторного
запуска и выбора атрибутов при равном времени событий.

Проверка: make lint, git diff --check, локальные Markdown-ссылки и якоря.
SQL без комментариев совпадает; AST Python без строк документации совпадает.
Исторические разделы и материалы вне границ задачи сохранены.

Refs: #249
This commit is contained in:
ddadmin committed 2026-09-13 14:33:39 -04:00
1 parent 84dc718f62
commit 5f317ba8d2
11 files changed
+440 -490

No files matched your search

+7 -8
View File
@@ -1,11 +1,10 @@
-- DDS: подмена одного дня сессий собранной партицией двойника.
-- DDS: замена одного дня в session_rep готовой партицией session_stage_rep.
-- ON CLUSTER выполняет замену на локальных таблицах каждого шарда.
-- Замена атомарна на одном шарде, общей транзакции для кластера нет.
-- Повтор с тем же донором не добавляет копий строк.
--
-- Механика и доводы целиком — sql/dds/order_replace.sql: замена идёт по
-- локальным таблицам, шард за шардом, атомарность пошардовая, день
-- подставляет Jinja, потому что параметров ALTER … PARTITION не берёт.
--
-- Разница одна, и она про отказ. Несобранный день заказа вернуло бы в работу
-- следующее окно; сессиям возвращать нечем, и упавшая замена оставляет дыру
-- до тех пор, пока её не найдёт счёт хвоста (sql/dds/session_scope.sql).
-- Дату из session_scope.sql подставляет Jinja: параметр ClickHouse в
-- ALTER ... PARTITION здесь не поддерживается. Поиск дней следующего
-- запуска не обнаружит неполный день, если часть его строк уже есть в DDS.
ALTER TABLE dds.session_rep ON CLUSTER clickstream_cluster
REPLACE PARTITION '{{ params.day }}' FROM dds.session_stage_rep;