Komponenty sjednocení
Stavební kameny sjednocení dat — standardizace formátu, sjednocení struktury, sémantické sjednocení, normalizace a využití sjednocených dat.
Standardizace formátu
Veškerá data přicházející z různých zdrojů se převádějí do jednotného formátu.
Data z IoT zařízení například přicházejí ve formátu JSON:
{
"device_id": "sensor-123",
"temp": 27.3,
"time": 1739960923
}Sjednocení struktury dat
Pro všechna data je definována jednotná struktura bez ohledu na jejich zdroj.
Veškerá data se ukládají do tabulky channel_data, která je propojuje se zařízeními, relacemi, kanály a měrnými jednotkami:
| Pole | Typ | Popis |
|---|---|---|
id | bigint | Jedinečný identifikátor záznamu (primární klíč). |
equipment_id | bigint | Odkaz na zařízení (equipment.id). |
seance_id | bigint | Odkaz na relaci (seances.id). |
channel_id | bigint | Odkaz na kanál (channels.id). |
unit_id | bigint | Odkaz na měrnou jednotku (units.id). |
archive_type_id | integer | Odkaz na typ archivu (referenceparameters.id). |
event_time | integer | Čas události (např. časové razítko). |
value | character varying(100) | Hodnota přijatá z kanálu. |
created_at | timestamp(6) without time zone | Čas vytvoření záznamu. |
updated_at | timestamp(6) without time zone | Čas poslední aktualizace záznamu. |
Kde:
equipment_id: Jedinečný identifikátor zařízení.seance_id: Jedinečný identifikátor relace.channel_id: Jedinečný identifikátor kanálu.unit_id: Jedinečný identifikátor měrné jednotky.
Při ukládání dat z různých zařízení do centrálního úložiště platí:
- data se převedou do jednotného formátu a struktury;
- ukládají se do sjednocené datové tabulky
channel_data.
Sémantické sjednocení
Veškerá data mají napříč všemi systémy stejný význam a interpretaci.
Například:
- Všechna časová razítka jsou ve formátu
UTC. To bylo zavedeno již ve fázi návrhu systému. - Všechny systémy používají stejné měrné jednotky (např. stupně Celsia).
Za účelem sjednocení měrných jednotek byl do systému přidán model Units. Ukládá měrné jednotky používané pro data kanálů.
| Pole | Typ | Popis |
|---|---|---|
id | bigint | Jedinečný identifikátor záznamu (primární klíč). |
name | character varying(30) | Název měrné jednotky. |
varname | character varying(30) | Zkrácený symbolický název měrné jednotky. |
description | character varying(100) | Popis měrné jednotky. |
conversion_factor | double precision | Převodní koeficient měrné jednotky. |
rounding | smallint | Počet desetinných míst pro zaokrouhlení. |
synonyms | character varying[] | Pole synonym měrné jednotky. |
created_at | timestamp(6) without time zone | Čas vytvoření záznamu. |
updated_at | timestamp(6) without time zone | Čas poslední aktualizace záznamu. |
Normalizace dat
Datový model systému je z hlediska atomických (skalárních) hodnot převeden do Boyceovy–Coddovy (třetí) normální formy. Některé entity datového modelu využívají složené struktury za účelem optimalizace práce se vzácnými, nestandardními atributy.
Data jsou rozdělena do logických tabulek (equipment, channels, units, sessions), což odstraňuje redundanci a duplicitu.
Například:
- Tabulka
channel_dataodkazuje na tabulkyequipment,channels,unitsasessionsprostřednictvím cizích klíčů.
Využití sjednocených dat
Sjednocená data lze využít k analýze, vizualizaci, strojovému učení a dalším úlohám.
Analýza dat pomocí 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žádání dat prostřednictvím REST API
Příklad požadavku:
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3Příklad odpovědi:
[
{
"id": 123,
"equipment_id": 1,
"seance_id": 2,
"channel_id": 3,
"archive_type_id": 4,
"value": 42.5,
"event_time": 1739950861
}
]Související témata
Byla tato stránka užitečná?
Děkujeme za vaši zpětnou vazbu!