Обзор базовых модулей

В IIoT Платформе данные организованы в виде таблиц, которые можно классифицировать по основным модулям представления данных.

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

Архивы данных

Архивы данных хранят историческую информацию, такую как метрики IoT-устройств, данные оборудования и другие измерения. Основная таблица для хранения архивных данных — channel_data.

ПолеТипОписание
idbigintУникальный идентификатор записи (первичный ключ).
equipment_idbigintСсылка на оборудование (equipment.id).
seance_idbigintСсылка на сеанс (seances.id).
channel_idbigintСсылка на канал (channels.id).
unit_idbigintСсылка на единицу измерения (units.id).
archive_type_idintegerСсылка на тип архива (referenceparameters.id).
event_timeintegerВремя события (например, временная метка).
valuecharacter varying(100)Значение, полученное из канала.
created_attimestamp(6) without time zoneВремя создания записи.
updated_attimestamp(6) without time zoneВремя последнего обновления записи.

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

  • equipment_id ссылается на таблицу equipment.
  • seance_id ссылается на таблицу seances.
  • channel_id ссылается на таблицу channels.
  • unit_id ссылается на таблицу units.
  • archive_type_id ссылается на таблицу referenceparameters.

Узлы учёта

Таблица equipment хранит информацию об оборудовании, используемом в системе. Этот модуль является ключевым для управления данными, связанными с физическими устройствами, такими как счётчики, датчики, контроллеры и другие типы оборудования.

ПолеТипОписание
idbigintУникальный идентификатор записи (первичный ключ).
equipment_type_idbigintСсылка на тип оборудования.
serial_numbercharacter varying(25)Серийный номер оборудования.
manufacture_datetimestamp(6) without time zoneДата изготовления оборудования.
installation_datetimestamp(6) without time zoneДата установки оборудования.
program_versioncharacter varying(100)Версия программного обеспечения оборудования.
created_attimestamp(6) without time zoneВремя создания записи.
updated_attimestamp(6) without time zoneВремя последнего обновления записи.

Таблица equipment:

  • хранит основные данные об оборудовании, такие как серийный номер и даты изготовления и установки;
  • использует поле program_version для отслеживания версии программного обеспечения, установленного на оборудовании;
  • использует поля created_at и updated_at для отслеживания изменений в данных оборудования;
  • связана с другими таблицами, такими как equipment_types, channel_data и channels, через внешние ключи;
  • позволяет добавлять, обновлять и получать информацию об оборудовании в системе.

Модуль представления данных на основе таблицы equipment обеспечивает эффективное управление информацией об оборудовании в системе.

Он предоставляет:

  • хранение основных данных об оборудовании;
  • управление версиями программного обеспечения;
  • связь с другими сущностями системы.

Сеансы связи

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

Рассмотрим этот модуль подробнее.

ПолеТипОписание
idbigintУникальный идентификатор записи (первичный ключ).
telemetry_idbigintСсылка на телеметрию (telemetry.id).
event_timeintegerВремя события.
evtidsmallintИдентификатор события.
trycntsmallintКоличество попыток.
tryflcharacter varying(12)Флаг попытки.
statesmallintСтатус сеанса.
btmintegerЗаряд батареи.
rssiintegerУровень сигнала (если используется).
created_attimestamp(6) without time zoneВремя создания записи.
updated_attimestamp(6) without time zoneВремя последнего обновления записи.

Модуль seances используется для:

  • хранения информации о сеансах связи и работе оборудования;
  • управления данными, связанными с сеансом (например, время события, статус сеанса, уровень сигнала и заряд батареи);
  • анализа сеансов для выявления проблем или оптимизации производительности системы;
  • управления статусом сеанса: поле state позволяет отслеживать статус сеанса (например, успешный, ошибка и так далее);
  • анализа сеансов: поля duration_session и session_traffic позволяют анализировать продолжительность и объём трафика сеанса;
  • отслеживания изменений: поля created_at и updated_at позволяют отслеживать изменения в данных сеанса.

Типы архивов

Атрибут archive_type_id категоризирует данные в таблице channel_data по типу архива. Это позволяет организовывать данные по различным категориям, таким как часовые, суточные, месячные, нештатные ситуации и другие типы архивов. Таблица referenceparameters хранит справочную информацию о типах архивов.

Этот модуль построен на связи между таблицами channel_data и referenceparameters.

ПолеТипОписание
idbigintУникальный идентификатор записи (первичный ключ).
namecharacter varying(30)Название типа архива.
varnamecharacter varying(30)Короткое имя переменной для типа архива.
descriptioncharacter varying(100)Описание типа архива.
parent_idintegerСсылка на родительский параметр (иерархия).
referencemodel_idintegerСсылка на модель справочника.
created_attimestamp(6) without time zoneВремя создания записи.
updated_attimestamp(6) without time zoneВремя последнего обновления записи.
deleted_attimestamp(6) without time zoneВремя удаления записи (мягкое удаление).

Поле archive_type_id в таблице channel_data позволяет категоризировать данные по типу архива.

Например:

ruby
[ 'Archive types', 'archive_types', 'Archive types (hourly, daily, monthly)',
  [
    ['Hourly readings archive', 'hourly'],
    ['Daily readings archive', 'daily'],
    ['Monthly readings archive', 'monthly'],
    ['Emergency situations archive', 'nesht'],
    ['Events archive', 'event'],
    ['Valve status', 'valve'],
    ['Current state', 'current_state'],
    ['Updated firmware', 'update_app'],
    ['Send SMS', 'send_sms'],
    ['Send JSON', 'send_json'],
    ...
  ]
]

При необходимости эти архивы можно объединять в группы:

  • текущие данные (current_state) — показания на момент сеанса связи;
  • агрегированные данные (hourly, daily, monthly) — сводные показания за определённый период времени;
  • события и нештатные ситуации (nesht, event) — записи о значимых изменениях или происшествиях в системе. Они могут быть связаны с оборудованием, пользователями или внешними факторами;
  • статус клапана (valve) — состояние и управление клапаном счётчика, если он есть;
  • управляющие воздействия (update_app, send_sms, send_json) — записи о командах или действиях, выполненных для управления системой или оборудованием;
  • и так далее.

Модуль представления данных archive_type_id позволяет эффективно категоризировать данные по типам архивов и управлять справочной информацией. Он предоставляет:

  • классификацию данных в таблице channel_data;
  • управление справочной информацией о типах архивов;
  • анализ данных по типам архивов.

Связанные темы

Последнее обновление

Эта страница была полезной?