Огляд базових модулів

В 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;
  • керування довідковою інформацією про типи архівів;
  • аналіз даних за типом архіву.

Пов'язані теми

Останнє оновлення

Чи була ця сторінка корисною?