идентичность эпизода — интервал: блокер снят измерением
- находка 47: ключ (date,start,end) даёт 174 координаты сна против 170 по метке и ноль столкновений внутри доставки против 33; value в ключе лишний - UUID в выгрузку Apple не попадает, другой идентичности у эпизода нет - поэпизодный sleep_analysis вернулся в scope razbor-metrik-v-obekty
This commit is contained in:
+20
-1
@@ -24,7 +24,8 @@ healthlog принимает выгрузки Apple Health из приложен
|
||||
- **Сохранили — значит приняли.** Код ответа отражает доставку, а не разбор
|
||||
(см. «Приём»).
|
||||
- **Ничего не теряем молча.** Идентичность — устойчивые координаты
|
||||
(`метрика + слой + метка времени`); `source` в ключ не входит, он
|
||||
(`метрика + слой + метка времени`), а у точки-интервала — `метрика + слой +
|
||||
начало + конец`; `source` в ключ не входит, он
|
||||
нестабилен. Хеш канонизированного содержимого остаётся детектором изменений,
|
||||
чтобы не писать зря. При столкновении выигрывает более полная точка, а не
|
||||
последняя пришедшая: бедная доставка не должна стирать поля у богатой.
|
||||
@@ -464,6 +465,24 @@ hour метки выровнены на час heart_rate 00:00:00
|
||||
значения: qty / Min / Avg / Max / source / … ← перезаписываются
|
||||
```
|
||||
|
||||
**У точки-интервала ключ — интервал.** Метка на эпизоде не уникальна: под одним
|
||||
`date` лежит до трёх записей сна, и это не дефект, а способ Apple выразить
|
||||
вложенность «в кровати» и фазы внутри неё. Ключ
|
||||
`метрика + слой + начало + конец` измерен на всём корпусе (находка 47): 174
|
||||
координаты против 170 по метке, ноль столкновений против 33 **внутри одной
|
||||
доставки**, где тай-брейк по времени приёма неприменим в принципе. `value` в
|
||||
ключе ничего не добавляет.
|
||||
|
||||
Эпизодность выводится из формы точки — есть `start` и `end`, отличные от `date`,
|
||||
— а не из списка имён метрик: список был бы вторым способом описывать то, что
|
||||
уже сказано данными. Час объекта берётся по началу эпизода, иначе
|
||||
принадлежность объекту зависела бы от длительности.
|
||||
|
||||
`HKObject.uuid` дал бы идентичность даром, но в выгрузку Apple он не попадает —
|
||||
там у записи только `type`, `sourceName`, `sourceVersion`, `creationDate`,
|
||||
`startDate`, `endDate`, `value`. Значит модель обязана выражаться через
|
||||
`start`/`end`, иначе `import(экспорт)` не сойдётся с `replay(HAE)`.
|
||||
|
||||
Мы дважды пробовали адресовать точку хешем её содержимого и дважды получали
|
||||
задвоение на живых данных:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user