Серии, основанные на статистике и гранулах

В большинстве случаев, серии переменных основаны на "сырых" значениях переменной серии. Данные значения сохраняются в базе данных сервера.

Однако можно построить график, в котором точки исторических данных основаны на статистическом канале или гранулах с предварительно агрегированными данными. .

Чтобы построить такой график, сначала убедитесь, что для переменной серии существует статистический канал или гранулы. После создания статистического канала или гранул можно построить график двумя способами:

  • Автоматическое определение канала статистики или гранул путем создания соответствующей записи в свойстве Source Variables графика

  • Использование ссылок на значение статистики в Выражении серии

Автоматическое определение

Чтобы автоматически обнаружить существующий канал статистики или грануляции, установите для типа источника данных графика значение Variable и создайте строку в свойстве Source Variables графика со значениями, соответствующими каналу статистики.

Например, предположим, что устройство с контекстным путем users.admin.devices.thermometer имеет переменную с именем temp и канал статистики с именем statisticsChannel_temp с выражением ({temp_val}-32)*5/9 для преобразования температуры из фаренгейта в цельсий, тип выбран как Gauge, выражение временной метки отсутствует, а типы агрегации - Average, Minimumи Maximum.

Поле

Примечание

Имя

statisticsChannel_temp

Контекст

users.admin.devices.thermometer

Переменная

temp

Использовать агрегированные данные

Statistics, Granulation, или Both

Выражение

({tempValue}-32)*5/9

Пользовательское выражение временной метки

Оставляется пустым, поскольку канал статистики не имеет Выражения временной метки

Тип

Gauge

Агрегация

Average

С помощью этих параметров SberMobile пытается найти канал статистики или гранулы с точно совпадающими свойствами. При обнаружении нескольких совпадений будет выдана ошибка.

В случае, если точных совпадений не найдено, система пытается найти канал или гранулу статистики с теми же параметрами, но с более тонким уровнем агрегирования, например, по минутам, а не по часам.

Если подходящий канал или гранула статистики не найдена, но указанная переменная (в данном случае temp) существует в контексте (в данном случае users.admin.devices.thermometer), то используется необработанная переменная history.

Ссылка на значение статистики

Ссылка на значение статистики имеет один из следующих форматов: {statistics/channel} или {statistics/channel#key}.

Когда в Выражении серии используется ссылка на значение статистики, отрисовщик берет данные истории из канала с именем channel. Данный канал должен быть основан на исходной переменной.

Если задан key(ключ), массив данных из статистики, совпадающий с данным ключем, будет использован в качестве источника.

На выбор данных статистики влияют следующие параметры:

Выражение серии может включать только одну ссылку на значение статистики. Ссылка на множество каналов невозможна.

Ссылка на другие поля из выражения серии, основанной на статистике

Выражение серии, основанной на статистике, может также ссылаться на другие поля исходной переменной. Однако такие ссылки имеют несколько важных нюансов:

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

  • Если включено ведение истории в реальном времени для серий, основанных на статистике, отрисовщик графика объединяет выражение статистического канала с выражением серии, чтобы сформировать новое выражение для построения точек графика в реальном времени.