Komponente unifikacije
Sastavni dijelovi unifikacije podataka – standardizacija formata, unifikacija strukture, semantička unifikacija, normalizacija i korištenje unificiranih podataka.
Standardizacija formata
Svi podaci koji stižu iz različitih izvora pretvaraju se u jedinstveni format.
Na primjer, podaci s IoT uređaja stižu u formatu JSON:
{
"device_id": "sensor-123",
"temp": 27.3,
"time": 1739960923
}Unifikacija strukture podataka
Za sve podatke definirana je jedinstvena struktura, bez obzira na njihov izvor.
Svi se podaci pohranjuju u tablicu channel_data, koja ih povezuje s opremom, sesijama, kanalima i jedinicama mjere:
| Polje | Tip | Opis |
|---|---|---|
id | bigint | Jedinstveni identifikator zapisa (primarni ključ). |
equipment_id | bigint | Referenca na opremu (equipment.id). |
seance_id | bigint | Referenca na sesiju (seances.id). |
channel_id | bigint | Referenca na kanal (channels.id). |
unit_id | bigint | Referenca na jedinicu mjere (units.id). |
archive_type_id | integer | Referenca na tip arhive (referenceparameters.id). |
event_time | integer | Vrijeme događaja (npr. vremenska oznaka). |
value | character varying(100) | Vrijednost primljena s kanala. |
created_at | timestamp(6) without time zone | Vrijeme stvaranja zapisa. |
updated_at | timestamp(6) without time zone | Vrijeme posljednjeg ažuriranja zapisa. |
Značenje polja:
equipment_id: jedinstveni identifikator opreme.seance_id: jedinstveni identifikator sesije.channel_id: jedinstveni identifikator kanala.unit_id: jedinstveni identifikator jedinice mjere.
Kada se podaci s različitih uređaja smještaju u središnje skladište:
- podaci se pretvaraju u jedinstveni format i strukturu;
- pohranjuju se u unificiranu tablicu podataka
channel_data.
Semantička unifikacija
Svi podaci imaju isto značenje i tumačenje u svim sustavima.
Na primjer:
- Sve su vremenske oznake u formatu
UTC. To je implementirano u fazi projektiranja sustava. - Svi sustavi koriste iste jedinice mjere (npr. Celzijeve stupnjeve).
Radi unifikacije jedinica mjere, u sustav je dodan model Units. U njemu se pohranjuju jedinice mjere koje se koriste za podatke kanala.
| Polje | Tip | Opis |
|---|---|---|
id | bigint | Jedinstveni identifikator zapisa (primarni ključ). |
name | character varying(30) | Naziv jedinice mjere. |
varname | character varying(30) | Kratko ime varijable za jedinicu mjere. |
description | character varying(100) | Opis jedinice mjere. |
conversion_factor | double precision | Faktor pretvorbe za jedinicu mjere. |
rounding | smallint | Broj decimalnih mjesta za zaokruživanje. |
synonyms | character varying[] | Niz sinonima za jedinicu mjere. |
created_at | timestamp(6) without time zone | Vrijeme stvaranja zapisa. |
updated_at | timestamp(6) without time zone | Vrijeme posljednjeg ažuriranja zapisa. |
Normalizacija podataka
Podatkovni model sustava doveden je u Boyce-Coddovu (treću) normalnu formu u pogledu atomičnih (skalarnih) vrijednosti. Pojedini entiteti podatkovnog modela koriste složene strukture kako bi se optimizirao rad s rijetkim, nestandardnim atributima.
Podaci su podijeljeni na logičke tablice (equipment, channels, units, sessions), čime se uklanjaju redundancija i dupliciranje.
Na primjer:
- Tablica
channel_dataputem stranih ključeva upućuje na tabliceequipment,channels,unitsisessions.
Korištenje unificiranih podataka
Unificirani se podaci mogu koristiti za analizu, vizualizaciju, strojno učenje i druge zadatke.
Analiza podataka pomoću jezika 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_idPreuzimanje podataka putem REST API-ja
Primjer zahtjeva:
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3Primjer odgovora:
[
{
"id": 123,
"equipment_id": 1,
"seance_id": 2,
"channel_id": 3,
"archive_type_id": 4,
"value": 42.5,
"event_time": 1739950861
}
]Povezane teme
Je li vam ova stranica bila korisna?
Hvala vam na povratnoj informaciji!