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:

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

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 mjere (units.id).
archive_type_idintegerReferenca na tip arhive (referenceparameters.id).
event_timeintegerVrijeme događaja (npr. vremenska oznaka).
valuecharacter varying(100)Vrijednost primljena s kanala.
created_attimestamp(6) without time zoneVrijeme stvaranja zapisa.
updated_attimestamp(6) without time zoneVrijeme 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.

PoljeTipOpis
idbigintJedinstveni identifikator zapisa (primarni ključ).
namecharacter varying(30)Naziv jedinice mjere.
varnamecharacter varying(30)Kratko ime varijable za jedinicu mjere.
descriptioncharacter varying(100)Opis jedinice mjere.
conversion_factordouble precisionFaktor pretvorbe za jedinicu mjere.
roundingsmallintBroj decimalnih mjesta za zaokruživanje.
synonymscharacter varying[]Niz sinonima za jedinicu mjere.
created_attimestamp(6) without time zoneVrijeme stvaranja zapisa.
updated_attimestamp(6) without time zoneVrijeme 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_data putem stranih ključeva upućuje na tablice equipment, channels, units i sessions.

Korištenje unificiranih podataka

Unificirani se podaci mogu koristiti za analizu, vizualizaciju, strojno 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 putem REST API-ja

Primjer zahtjeva:

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

Primjer 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

Posljednji put ažurirano

Je li vam ova stranica bila korisna?