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:

example.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:

PoljeTipOpis
idbigintJedinstveni identifikator zapisa (primarni ključ).
equipment_idbigintReferenca na opremu (equipment.id).
seance_idbigintReferenca na sesiju (seances.id).
channel_idbigintReferenca na kanal (channels.id).
unit_idbigintReferenca na jedinicu mere (units.id).
archive_type_idintegerReferenca na tip arhive (referenceparameters.id).
event_timeintegerVreme događaja (npr. vremenska oznaka).
valuecharacter varying(100)Vrednost primljena sa kanala.
created_attimestamp(6) without time zoneVreme kreiranja zapisa.
updated_attimestamp(6) without time zoneVreme 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.

PoljeTipOpis
idbigintJedinstveni identifikator zapisa (primarni ključ).
namecharacter varying(30)Naziv jedinice mere.
varnamecharacter varying(30)Kratko ime promenljive za jedinicu mere.
descriptioncharacter varying(100)Opis jedinice mere.
conversion_factordouble precisionFaktor konverzije za jedinicu mere.
roundingsmallintBroj decimalnih mesta za zaokruživanje.
synonymscharacter varying[]Niz sinonima za jedinicu mere.
created_attimestamp(6) without time zoneVreme kreiranja zapisa.
updated_attimestamp(6) without time zoneVreme 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_data preko stranih ključeva upućuje na tabele equipment, channels, units i sessions.

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

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_id

Preuzimanje podataka preko interfejsa REST API

Primer zahteva:

bash
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3

Primer odgovora:

json
[
  {
    "id": 123,
    "equipment_id": 1,
    "seance_id": 2,
    "channel_id": 3,
    "archive_type_id": 4,
    "value": 42.5,
    "event_time": 1739950861
  }
]

Povezane teme

Poslednje ažuriranje

Da li vam je ova stranica bila korisna?