ключ точки — интервал одной формы, класс «эпизодных метрик» убран

Перепись по 22 метрикам с интервалами опровергла признак из первой редакции:
start всегда равен date, интервалы несёт не только сон, обе формы точки не
смешиваются внутри метрики одной доставки, а разные интервалы под одной меткой
всегда несут разное содержимое. Значит ключ единый — метрика + слой + начало +
конец, у измерения вырожденный, без ветвления по классу.
This commit is contained in:
av
2026-08-01 17:15:49 +03:00
parent 3c9d226a34
commit 3e93dd95b4
7 changed files with 119 additions and 73 deletions
@@ -20,13 +20,12 @@
`Default` соответствует трём разным режимам.
- Точки складываются в **часовые объекты** (`bucket`, ключ `метрика + слой +
час`), содержимое — gzip-BLOB. Запись — read-modify-write со слиянием.
- **Идентичность точки — координаты** (`метрика + слой + метка`). `source` в
ключ не входит: он нестабилен и меняется задним числом. При столкновении
- **Идентичность точки — координаты** (`метрика + слой + начало + конец`; у
точки-измерения конец равен началу). Ключ одной формы для всех точек: под
одной меткой лежит до трёх записей сна, и 33 столкновения происходят внутри
одной доставки, где тай-брейк по времени приёма неприменим. `source` в ключ
не входит: он нестабилен и меняется задним числом. При столкновении
выигрывает **более полная** точка, а не последняя пришедшая.
- **Точка-интервал адресуется интервалом**: `метрика + слой + начало + конец`.
Под одной меткой лежит до трёх эпизодов сна, и 33 столкновения из измеренных
происходят внутри одной доставки, где тай-брейк по времени приёма неприменим.
Эпизодность выводится из формы точки, а не из списка имён метрик.
- **Канонизация с округлением** чисел до ~12 значащих цифр; хеш канонической
формы — детектор изменений, а не ключ.
- `sleep_analysis` разводится на два имени: поэпизодное и суточную сводку —