Komponente unifikacije
Sastavni delovi unifikacije podataka – standardizacija formata, unifikacija strukture, semantička unifikacija, normalizacija i korišćenje unifikovanih podataka.
Standardizacija formata
Svi podaci koji stižu iz različitih izvora konvertuju se u jedinstveni format.
Na primer, podaci sa IoT uređaja stižu u formatu JSON:
{
"device_id": "sensor-123",
"temp": 27.3,
"time": 1739960923
}Unifikacija strukture podataka
Za sve podatke definisana je jedinstvena struktura, bez obzira na njihov izvor.
Svi podaci čuvaju se u tabeli channel_data, koja ih povezuje sa opremom, sesijama, kanalima i jedinicama mere:
| 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 mere (units.id). |
archive_type_id | integer | Referenca na tip arhive (referenceparameters.id). |
event_time | integer | Vreme događaja (npr. vremenska oznaka). |
value | character varying(100) | Vrednost primljena sa kanala. |
created_at | timestamp(6) without time zone | Vreme kreiranja zapisa. |
updated_at | timestamp(6) without time zone | Vreme poslednjeg 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 mere.
Kada se podaci sa različitih uređaja smeštaju u centralno skladište:
- podaci se konvertuju u jedinstveni format i strukturu;
- čuvaju se u unifikovanoj tabeli podataka
channel_data.
Semantička unifikacija
Svi podaci imaju isto značenje i tumačenje u svim sistemima.
Na primer:
- Sve vremenske oznake su u formatu
UTC. To je implementirano u fazi projektovanja sistema. - Svi sistemi koriste iste jedinice mere (npr. stepene Celzijusa).
Radi unifikacije jedinica mere, u sistem je dodat model Units. U njemu se čuvaju jedinice mere koje se koriste za podatke kanala.
| Polje | Tip | Opis |
|---|---|---|
id | bigint | Jedinstveni identifikator zapisa (primarni ključ). |
name | character varying(30) | Naziv jedinice mere. |
varname | character varying(30) | Kratko ime promenljive za jedinicu mere. |
description | character varying(100) | Opis jedinice mere. |
conversion_factor | double precision | Faktor konverzije za jedinicu mere. |
rounding | smallint | Broj decimalnih mesta za zaokruživanje. |
synonyms | character varying[] | Niz sinonima za jedinicu mere. |
created_at | timestamp(6) without time zone | Vreme kreiranja zapisa. |
updated_at | timestamp(6) without time zone | Vreme poslednjeg ažuriranja zapisa. |
Normalizacija podataka
Model podataka sistema doveden je u Bojs-Kodovu (treću) normalnu formu u pogledu atomičnih (skalarnih) vrednosti. Pojedini entiteti modela podataka koriste složene strukture kako bi se optimizovao rad sa retkim, nestandardnim atributima.
Podaci su podeljeni na logičke tabele (equipment, channels, units, sessions), čime se uklanjaju redundantnost i dupliranje.
Na primer:
- Tabela
channel_datapreko stranih ključeva upućuje na tabeleequipment,channels,unitsisessions.
Korišćenje unifikovanih podataka
Unifikovani podaci mogu da se koriste za analizu, vizuelizaciju, mašinsko 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 preko interfejsa REST API
Primer zahteva:
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3Primer odgovora:
[
{
"id": 123,
"equipment_id": 1,
"seance_id": 2,
"channel_id": 3,
"archive_type_id": 4,
"value": 42.5,
"event_time": 1739950861
}
]Povezane teme
Da li vam je ova stranica bila korisna?
Hvala vam na povratnoj informaciji!