Unifikatsiya komponentlari

Maʼlumotlarni unifikatsiya qilishning asosiy tarkibiy qismlari — format standartlashtirish, struktura unifikatsiyasi, semantik unifikatsiya, normallashtirish va unifikatsiyalangan maʼlumotlardan foydalanish.

Format standartlashtirish

Turli manbalardan keladigan barcha maʼlumotlar yagona formatga keltiriladi.

Masalan, IoT qurilmalaridan kelgan maʼlumotlar JSON formatida keladi:

example.json
{
  "device_id": "sensor-123",
  "temp": 27.3,
  "time": 1739960923
}

Maʼlumotlar strukturasini unifikatsiya qilish

Manbasidan qatʼi nazar, barcha maʼlumotlar uchun yagona struktura aniqlanadi.

Barcha maʼlumotlar channel_data jadvalida saqlanadi, bu ularni jihoz, seanslar, kanallar va oʻlchov birliklari bilan bogʻlaydi:

MaydonTurTavsif
idbigintYozuvning yagona identifikatori (birlamchi kalit).
equipment_idbigintJihozga havola (equipment.id).
seance_idbigintSeansga havola (seances.id).
channel_idbigintKanalga havola (channels.id).
unit_idbigintOʻlchov birligiga havola (units.id).
archive_type_idintegerArxiv turiga havola (referenceparameters.id).
event_timeintegerHodisa vaqti (masalan, vaqt belgisi).
valuecharacter varying(100)Kanaldan olingan qiymat.
created_attimestamp(6) without time zoneYozuv yaratilgan vaqt.
updated_attimestamp(6) without time zoneYozuv oxirgi marta yangilangan vaqt.

Bu yerda:

  • equipment_id: Jihozning yagona identifikatori.
  • seance_id: Seansning yagona identifikatori.
  • channel_id: Kanalning yagona identifikatori.
  • unit_id: Oʻlchov birligining yagona identifikatori.

Turli qurilmalardan kelgan maʼlumotlar markaziy omborda saqlanganda:

  • maʼlumotlar yagona format va strukturaga keltiriladi;
  • ular channel_data unifikatsiyalangan maʼlumotlar jadvalida saqlanadi.

Semantik unifikatsiya

Barcha maʼlumotlar barcha tizimlarda bir xil maʼno va talqinga ega.

Masalan:

  • Barcha vaqt belgilari UTC formatida boʻladi. Bu tizimni loyihalash bosqichida amalga oshirilgan.
  • Barcha tizimlar bir xil oʻlchov birliklaridan foydalanadi (masalan, Selsiy gradusi).

Oʻlchov birliklarini unifikatsiya qilish uchun tizimga Units modeli qoʻshildi. Unda kanal maʼlumotlari uchun ishlatiladigan oʻlchov birliklari saqlanadi.

MaydonTurTavsif
idbigintYozuvning yagona identifikatori (birlamchi kalit).
namecharacter varying(30)Oʻlchov birligining nomi.
varnamecharacter varying(30)Oʻlchov birligining qisqa oʻzgaruvchi nomi.
descriptioncharacter varying(100)Oʻlchov birligining tavsifi.
conversion_factordouble precisionOʻlchov birligi uchun aylantirish koeffitsiyenti.
roundingsmallintYaxlitlanadigan oʻnli kasr xonalari soni.
synonymscharacter varying[]Oʻlchov birligi sinonimlari massivi.
created_attimestamp(6) without time zoneYozuv yaratilgan vaqt.
updated_attimestamp(6) without time zoneYozuv oxirgi marta yangilangan vaqt.

Maʼlumotlarni normallashtirish

Tizimning maʼlumotlar modeli atomar (skalyar) qiymatlar nuqtai nazaridan Boyce-Codd (uchinchi) normal formaga keltirilgan. Maʼlumotlar modelidagi baʼzi obyektlar kam uchraydigan, nostandart atributlar bilan ishlashni optimallashtirish uchun kompozit strukturalardan foydalanadi.

Maʼlumotlar mantiqiy jadvallarga (equipment, channels, units, sessions) boʻlinadi, bu ortiqchalik va takrorlanishni bartaraf etadi.

Masalan:

  • channel_data jadvali equipment, channels, units va sessions jadvallariga tashqi kalitlar orqali murojaat qiladi.

Unifikatsiyalangan maʼlumotlardan foydalanish

Unifikatsiyalangan maʼlumotlar tahlil, vizualizatsiya, mashinaviy oʻqitish va boshqa vazifalar uchun ishlatilishi mumkin.

SQL yordamida maʼlumotlarni tahlil qilish

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

REST API orqali maʼlumotlarni soʻrash

Soʻrov namunasi:

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

Javob namunasi:

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

Aloqador mavzular

Oxirgi yangilanish

Ushbu sahifa foydali boʻldimi?