Komponenty unifikácie
Stavebné prvky unifikácie údajov — štandardizácia formátu, unifikácia štruktúry, sémantická unifikácia, normalizácia a využitie unifikovaných údajov.
Štandardizácia formátu
Všetky údaje prichádzajúce z rôznych zdrojov sa prevádzajú do jednotného formátu.
Napríklad údaje zo zariadení IoT prichádzajú vo formáte JSON:
{
"device_id": "sensor-123",
"temp": 27.3,
"time": 1739960923
}Unifikácia štruktúry údajov
Pre všetky údaje je definovaná jednotná štruktúra bez ohľadu na ich zdroj.
Všetky údaje sa ukladajú do tabuľky channel_data, ktorá ich prepája so zariadením, reláciami, kanálmi a meracími jednotkami:
| Pole | Typ | Popis |
|---|---|---|
id | bigint | Jedinečný identifikátor záznamu (primárny kľúč). |
equipment_id | bigint | Odkaz na zariadenie (equipment.id). |
seance_id | bigint | Odkaz na reláciu (seances.id). |
channel_id | bigint | Odkaz na kanál (channels.id). |
unit_id | bigint | Odkaz na meraciu jednotku (units.id). |
archive_type_id | integer | Odkaz na typ archívu (referenceparameters.id). |
event_time | integer | Čas udalosti (napr. časová pečiatka). |
value | character varying(100) | Hodnota prijatá z kanála. |
created_at | timestamp(6) without time zone | Čas vytvorenia záznamu. |
updated_at | timestamp(6) without time zone | Čas poslednej aktualizácie záznamu. |
Kde:
equipment_id: Jedinečný identifikátor zariadenia.seance_id: Jedinečný identifikátor relácie.channel_id: Jedinečný identifikátor kanála.unit_id: Jedinečný identifikátor meracej jednotky.
Pri ukladaní údajov z rôznych zariadení do centrálneho úložiska:
- údaje sa prevedú do jednotného formátu a štruktúry;
- ukladajú sa do unifikovanej tabuľky údajov
channel_data.
Sémantická unifikácia
Všetky údaje majú vo všetkých systémoch rovnaký význam a interpretáciu.
Napríklad:
- Všetky časové pečiatky sú vo formáte
UTC. Toto bolo zavedené už vo fáze návrhu systému. - Všetky systémy používajú rovnaké meracie jednotky (napr. stupne Celzia).
Na zjednotenie meracích jednotiek bol do systému pridaný model Units. Uchováva meracie jednotky používané pre údaje kanálov.
| Pole | Typ | Popis |
|---|---|---|
id | bigint | Jedinečný identifikátor záznamu (primárny kľúč). |
name | character varying(30) | Názov meracej jednotky. |
varname | character varying(30) | Krátky názov premennej pre meraciu jednotku. |
description | character varying(100) | Popis meracej jednotky. |
conversion_factor | double precision | Prepočítavací koeficient meracej jednotky. |
rounding | smallint | Počet desatinných miest na zaokrúhlenie. |
synonyms | character varying[] | Pole synoným pre meraciu jednotku. |
created_at | timestamp(6) without time zone | Čas vytvorenia záznamu. |
updated_at | timestamp(6) without time zone | Čas poslednej aktualizácie záznamu. |
Normalizácia údajov
Dátový model systému je z hľadiska atomických (skalárnych) hodnôt prevedený do Boyceovej-Coddovej (tretej) normálnej formy. Niektoré entity dátového modelu používajú zložené štruktúry na optimalizáciu práce so zriedkavými, neštandardnými atribútmi.
Údaje sú rozdelené do logických tabuliek (equipment, channels, units, sessions), čím sa odstraňuje nadbytočnosť a duplicita.
Napríklad:
- Tabuľka
channel_dataodkazuje na tabuľkyequipment,channels,unitsasessionsprostredníctvom cudzích kľúčov.
Využitie unifikovaných údajov
Unifikované údaje možno použiť na analýzu, vizualizáciu, strojové učenie a ďalšie úlohy.
Analýza údajov pomocou SQL
SELECT equipment_id, AVG(value) as avg_value
FROM channel_data
WHERE archive_type_id = 4 AND channel_id = 3
GROUP BY equipment_id
ORDER BY equipment_idVyžiadanie údajov cez REST API
Príklad požiadavky:
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3Príklad odpovede:
[
{
"id": 123,
"equipment_id": 1,
"seance_id": 2,
"channel_id": 3,
"archive_type_id": 4,
"value": 42.5,
"event_time": 1739950861
}
]Súvisiace témy
Bola táto stránka užitočná?
Ďakujeme za vašu spätnú väzbu!