Огляд базових модулів
В IIoT Платформі дані впорядковано у вигляді таблиць, які можна класифікувати за основними модулями подання даних.
Ці модулі описують, як між собою пов’язані необроблені вимірювання, пристрої, що їх формують, сеанси зв’язку, під час яких ці вимірювання збираються, та довідкові дані, що їх класифікують. У наведених нижче таблицях детально розглянуто ключові поля кожного модуля та зовнішні ключі, що їх пов’язують.
Архіви даних
Архіви даних зберігають історичну інформацію, таку як метрики IoT-пристроїв, дані обладнання та інші вимірювання. Основною таблицею для зберігання архівних даних є channel_data.
| Поле | Тип | Опис |
|---|---|---|
id | bigint | Унікальний ідентифікатор запису (первинний ключ). |
equipment_id | bigint | Посилання на обладнання (equipment.id). |
seance_id | bigint | Посилання на сеанс (seances.id). |
channel_id | bigint | Посилання на канал (channels.id). |
unit_id | bigint | Посилання на одиницю вимірювання (units.id). |
archive_type_id | integer | Посилання на тип архіву (referenceparameters.id). |
event_time | integer | Час події (наприклад, мітка часу). |
value | character varying(100) | Значення, отримане з каналу. |
created_at | timestamp(6) without time zone | Час створення запису. |
updated_at | timestamp(6) without time zone | Час останнього оновлення запису. |
Ця таблиця зберігає дані, отримані з каналів обладнання, і пов’язує кожен запис з обладнанням, сеансами, каналами та одиницями вимірювання за допомогою зовнішніх ключів. Це дає змогу класифікувати дані за вказаними атрибутами для подальшого аналізу й обробки.
equipment_idпосилається на таблицюequipment.seance_idпосилається на таблицюseances.channel_idпосилається на таблицюchannels.unit_idпосилається на таблицюunits.archive_type_idпосилається на таблицюreferenceparameters.
Вузли обліку
Таблиця equipment зберігає інформацію про обладнання, яке використовується в системі. Цей модуль є ключовим для керування даними, пов’язаними з фізичними пристроями, такими як лічильники, датчики, контролери та інші типи обладнання.
| Поле | Тип | Опис |
|---|---|---|
id | bigint | Унікальний ідентифікатор запису (первинний ключ). |
equipment_type_id | bigint | Посилання на тип обладнання. |
serial_number | character varying(25) | Серійний номер обладнання. |
manufacture_date | timestamp(6) without time zone | Дата виготовлення обладнання. |
installation_date | timestamp(6) without time zone | Дата встановлення обладнання. |
program_version | character varying(100) | Версія програмного забезпечення обладнання. |
created_at | timestamp(6) without time zone | Час створення запису. |
updated_at | timestamp(6) without time zone | Час останнього оновлення запису. |
Таблиця equipment:
- зберігає основні дані про обладнання, такі як серійний номер та дати виготовлення й встановлення;
- використовує поле
program_versionдля відстеження версії програмного забезпечення, встановленого на обладнанні; - використовує поля
created_atіupdated_atдля відстеження змін у даних обладнання; - пов’язана з іншими таблицями, такими як
equipment_types,channel_dataіchannels, за допомогою зовнішніх ключів; - дає змогу додавати, оновлювати та отримувати інформацію про обладнання в системі.
Модуль подання даних на основі таблиці equipment забезпечує ефективне керування інформацією про обладнання в системі.
Він надає:
- зберігання основних даних обладнання;
- керування версіями програмного забезпечення;
- зв’язок з іншими сутностями системи.
Сеанси зв’язку
Таблиця seances зберігає інформацію про сеанси зв’язку та активність обладнання. Сеанси являють собою періоди активності, протягом яких відбувається обмін даними між обладнанням і системою. Цей модуль є ключовим для керування й аналізу даних, пов’язаних із сеансами зв’язку.
Розгляньмо цей модуль докладніше.
| Поле | Тип | Опис |
|---|---|---|
id | bigint | Унікальний ідентифікатор запису (первинний ключ). |
telemetry_id | bigint | Посилання на телеметрію (telemetry.id). |
event_time | integer | Час події. |
evtid | smallint | Ідентифікатор події. |
trycnt | smallint | Кількість спроб. |
tryfl | character varying(12) | Прапорець спроби. |
state | smallint | Статус сеансу. |
btm | integer | Заряд акумулятора. |
rssi | integer | Рівень сигналу (якщо використовується). |
created_at | timestamp(6) without time zone | Час створення запису. |
updated_at | timestamp(6) without time zone | Час останнього оновлення запису. |
Модуль seances використовується для:
- зберігання інформації про сеанси зв’язку та роботу обладнання;
- керування даними, пов’язаними із сеансом (наприклад, час події, статус сеансу, рівень сигналу та заряд акумулятора);
- аналізу сеансів для виявлення проблем чи оптимізації продуктивності системи;
- керування статусом сеансу: поле
stateдає змогу відстежувати статус сеансу (наприклад, успішний, помилка тощо); - аналізу сеансів: поля
duration_sessionіsession_trafficдають змогу аналізувати тривалість та обсяг трафіку сеансу; - відстеження змін: поля
created_atіupdated_atдають змогу відстежувати зміни в даних сеансу.
Типи архівів
Атрибут archive_type_id класифікує дані в таблиці channel_data за типом архіву. Це дає змогу впорядковувати дані за різними категоріями, такими як погодинні, добові, місячні, нештатні ситуації та інші типи архівів. Таблиця referenceparameters зберігає довідкову інформацію про типи архівів.
Цей модуль побудовано на зв’язку між таблицями channel_data і referenceparameters.
| Поле | Тип | Опис |
|---|---|---|
id | bigint | Унікальний ідентифікатор запису (первинний ключ). |
name | character varying(30) | Назва типу архіву. |
varname | character varying(30) | Коротке ім’я змінної для типу архіву. |
description | character varying(100) | Опис типу архіву. |
parent_id | integer | Посилання на батьківський параметр (ієрархія). |
referencemodel_id | integer | Посилання на модель довідника. |
created_at | timestamp(6) without time zone | Час створення запису. |
updated_at | timestamp(6) without time zone | Час останнього оновлення запису. |
deleted_at | timestamp(6) without time zone | Час видалення запису (м’яке видалення). |
Поле archive_type_id у таблиці channel_data дає змогу класифікувати дані за типом архіву.
Наприклад:
[ '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; - керування довідковою інформацією про типи архівів;
- аналіз даних за типом архіву.
Пов'язані теми
Чи була ця сторінка корисною?
Дякуємо за відгук!