план и README синхронизированы с состоянием
- шаг 3 отмечен как почти готовый: частичный разбор закрыт, остались тренировки, reindex и словарь категориальных значений - ближайшая цель — reindex: после миграции доставки числятся pending, а подобрать их некому - находок в разведке 50, не 46
This commit is contained in:
@@ -55,11 +55,17 @@ iPhone ──HTTPS POST──► healthlog ──► журнал доставо
|
|||||||
|
|
||||||
## Состояние
|
## Состояние
|
||||||
|
|
||||||
В разработке. Готовы шаги 1–2 из 11: сервис принимает пакеты и складывает их в
|
В разработке. Готовы шаги 1–2 из 11 и большая часть шага 3: сервис принимает
|
||||||
сырой архив. Разбора, хранилища и read API ещё нет — план в
|
пакеты, складывает их в сырой архив и **разбирает метрики в часовые объекты**
|
||||||
[docs/plan.md](docs/plan.md).
|
— с выводом слоя из данных, канонизацией содержимого и слиянием точек по
|
||||||
|
полноте. Секции, которых разбор пока не покрывает (`workouts`, `stateOfMind` —
|
||||||
|
половина потока), принимаются, хранятся и честно помечаются как неразобранные.
|
||||||
|
|
||||||
Разведка формата закончена: 46 находок на живом потоке, половина расходится с
|
Чего ещё нет: пересборки хранилища из архива (`reindex`), каталога метрик с
|
||||||
|
измеренным родом агрегации и **read API** — данные наружу пока не отдаются
|
||||||
|
никак. План в [docs/plan.md](docs/plan.md).
|
||||||
|
|
||||||
|
Разведка формата закончена: 50 находок на живом потоке, половина расходится с
|
||||||
документацией Health Auto Export — [docs/local-research.md](docs/local-research.md).
|
документацией Health Auto Export — [docs/local-research.md](docs/local-research.md).
|
||||||
|
|
||||||
## Команды
|
## Команды
|
||||||
|
|||||||
+20
-5
@@ -9,13 +9,22 @@
|
|||||||
## Ближайшая цель
|
## Ближайшая цель
|
||||||
|
|
||||||
Метрики разбираются и ложатся в часовые объекты: тела перестали быть
|
Метрики разбираются и ложатся в часовые объекты: тела перестали быть
|
||||||
недифференцированной кучей. Дальше — доразобрать остаток шага 3
|
недифференцированной кучей. Блокеры, накопившиеся из ревью, разобраны — их в
|
||||||
(тренировки и записи со своими `id`, `reindex`, словарь категориальных
|
беклоге ноль.
|
||||||
значений) и разобрать блокеры, накопившиеся из ревью.
|
|
||||||
|
Дальше — **`reindex`**, и он сейчас срочнее остального остатка шага 3. После
|
||||||
|
миграции 00005 доставки числятся `pending`, а подобрать их некому: код
|
||||||
|
пересборки не написан. Данные целы (тела в архиве, объекты в витрине), но
|
||||||
|
учёт честно говорит «этим разбором не смотрели», и так будет, пока пересборки
|
||||||
|
нет. Тем же кодом закрывается половина задачи «разнести ответ и свёртку».
|
||||||
|
|
||||||
|
Потом — остаток шага 3: тренировки и записи со своими `id` (это половина
|
||||||
|
потока: `workouts` и `stateOfMind` принимаются и хранятся, но не разбираются),
|
||||||
|
словарь категориальных значений.
|
||||||
|
|
||||||
Разведка закончена: правило вывода слоя, модель идентичности и формы точки
|
Разведка закончена: правило вывода слоя, модель идентичности и формы точки
|
||||||
проверены на живом потоке, выводы — в
|
проверены на живом потоке, выводы — в
|
||||||
[local-research.md](local-research.md), 47 находок.
|
[local-research.md](local-research.md), 50 находок.
|
||||||
|
|
||||||
## Шаги
|
## Шаги
|
||||||
|
|
||||||
@@ -25,7 +34,9 @@
|
|||||||
запись тела в архив, строка в `delivery`. Разбора ещё нет.
|
запись тела в архив, строка в `delivery`. Разбора ещё нет.
|
||||||
← **подключаем телефон по локальной сети**
|
← **подключаем телефон по локальной сети**
|
||||||
- [~] **3. Разбор и хранилище.** Метрики — сделано (`bucket`, `internal/hae`,
|
- [~] **3. Разбор и хранилище.** Метрики — сделано (`bucket`, `internal/hae`,
|
||||||
`internal/canon`, `internal/fold`); остались тренировки и записи со
|
`internal/canon`, `internal/fold`), вместе с частичным разбором: секции,
|
||||||
|
которых разбор не покрывает, перечисляются, доставка получает статус
|
||||||
|
`partial` и список непокрытых ключей. Остались тренировки и записи со
|
||||||
своими `id`, `reindex` и словарь категориальных значений. Миграции,
|
своими `id`, `reindex` и словарь категориальных значений. Миграции,
|
||||||
часовые объекты метрик
|
часовые объекты метрик
|
||||||
(`bucket`, ключ `метрика + слой + час`) + `workout`/`record` по своим
|
(`bucket`, ключ `метрика + слой + час`) + `workout`/`record` по своим
|
||||||
@@ -80,6 +91,10 @@
|
|||||||
- **Ретеншен сырого архива** — удаление доставок старше последнего
|
- **Ретеншен сырого архива** — удаление доставок старше последнего
|
||||||
проверенного экспорта (не фиксированный срок: журнал не должен рваться).
|
проверенного экспорта (не фиксированный срок: журнал не должен рваться).
|
||||||
Пока архив не подчищается; включить после того, как разбор устоится.
|
Пока архив не подчищается; включить после того, как разбор устоится.
|
||||||
|
Предусловие снято: статус `partial` и список непокрытых секций готовы, и
|
||||||
|
ретеншен обязан спрашивать статус, а не считать `parsed` разрешением.
|
||||||
|
Вместе с ним действует правило — задача, которая начинает разбирать секцию,
|
||||||
|
тем же изменением переводит `partial`-строки с этим ключом в `pending`.
|
||||||
- **Порог `sealed`** — с какого возраста час считается запечатанным. Ставим по
|
- **Порог `sealed`** — с какого возраста час считается запечатанным. Ставим по
|
||||||
факту: сначала пишем `WARN` на изменение старых объектов и смотрим, какая
|
факту: сначала пишем `WARN` на изменение старых объектов и смотрим, какая
|
||||||
глубина досчёта встречается в жизни (наблюдалось до 22 минут, находка 10).
|
глубина досчёта встречается в жизни (наблюдалось до 22 минут, находка 10).
|
||||||
|
|||||||
Reference in New Issue
Block a user