rsiot::message

Module eav

source
Expand description

Пока эти модули не нужны, в будущем скорее всего можно удалить Представление всех сообщений в унифицированную модель.

Иногда с сообщениями необходимо работать унифицированным способом. Например:

  • итерироваться по массиву сообщений
  • сохранять поток сообщений в базу данных
  • и т.д.

За основу взята модель EAV. К стандартным полям entity, attribute, value добавлена метка времени (ts) и поля для поддержки аггрегации (agg, aggts, aggnext).

Поток сообщений представляет из себя временной ряд (timeseries). Сообщения могут поступать часто, хранить долговременно не всегда имеет смысл. Поэтому значения можно прореживать (аггрегировать). У разных значений могут быть разные требования к аггрегации. Например:

  • текущее показание температуры - можно сохранять среднее, минимум, максимум
  • счетчик с нарастающим итогом - можно сохранять приращение (инкремент) за промежуток аггрегирования
  • события - авария, команда - сохранять все значения, или сохранять кол-во событий за промежуток времени

Для поддержки этого механизма и предусмотрены поля agg, aggts, aggnext.

Structs§

  • Представление значения сообщения в виде модели EAV

Enums§

  • Тип аггрегации
  • Тип сохраняемого значения