مكوّنات التوحيد

اللبنات الأساسية لتوحيد البيانات — توحيد الصيغة، وتوحيد البنية، والتوحيد الدلالي، والتطبيع، واستخدام البيانات الموحّدة.

توحيد الصيغة

تُحوَّل جميع البيانات الواردة من مصادر مختلفة إلى صيغة واحدة.

على سبيل المثال، تصل البيانات من أجهزة IoT بصيغة JSON:

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

توحيد بنية البيانات

تُحدَّد بنية واحدة لجميع البيانات بصرف النظر عن مصدرها.

تُخزَّن جميع البيانات في جدول channel_data، الذي يربطها بالمعدّات والجلسات والقنوات ووحدات القياس:

الحقلالنوعالوصف
idbigintمعرّف فريد للسجل (المفتاح الأساسي).
equipment_idbigintإشارة إلى المعدّات (equipment.id).
seance_idbigintإشارة إلى الجلسة (seances.id).
channel_idbigintإشارة إلى القناة (channels.id).
unit_idbigintإشارة إلى وحدة القياس (units.id).
archive_type_idintegerإشارة إلى نوع الأرشيف (referenceparameters.id).
event_timeintegerوقت وقوع الحدث (مثلاً الطابع الزمني).
valuecharacter varying(100)القيمة الواردة من القناة.
created_attimestamp(6) without time zoneوقت إنشاء السجل.
updated_attimestamp(6) without time zoneوقت آخر تحديث للسجل.

حيث:

  • equipment_id: معرّف فريد للمعدّات.
  • seance_id: معرّف فريد للجلسة.
  • channel_id: معرّف فريد للقناة.
  • unit_id: معرّف فريد لوحدة القياس.

عند تخزين البيانات الواردة من أجهزة مختلفة في مستودع مركزي:

  • تُحوَّل البيانات إلى صيغة وبنية موحّدتين؛
  • وتُخزَّن في جدول البيانات الموحّد channel_data.

التوحيد الدلالي

تحمل جميع البيانات المعنى والتفسير ذاتهما عبر كل الأنظمة.

على سبيل المثال:

  • جميع الطوابع الزمنية بصيغة UTC. وقد طُبِّق ذلك في مرحلة تصميم النظام.
  • تستخدم جميع الأنظمة وحدات القياس نفسها (مثل الدرجات المئوية).

لتوحيد وحدات القياس، أُضيف نموذج Units إلى النظام. وهو يخزّن وحدات القياس المستخدمة لبيانات القنوات.

الحقلالنوعالوصف
idbigintمعرّف فريد للسجل (المفتاح الأساسي).
namecharacter varying(30)اسم وحدة القياس.
varnamecharacter varying(30)اسم متغيّر مختصر لوحدة القياس.
descriptioncharacter varying(100)وصف وحدة القياس.
conversion_factordouble precisionمعامل التحويل لوحدة القياس.
roundingsmallintعدد المنازل العشرية المراد التقريب إليها.
synonymscharacter varying[]مصفوفة المرادفات لوحدة القياس.
created_attimestamp(6) without time zoneوقت إنشاء السجل.
updated_attimestamp(6) without time zoneوقت آخر تحديث للسجل.

تطبيع البيانات

يُختزَل نموذج بيانات النظام إلى صيغة بويس-كود الطبيعية (الثالثة) من حيث القيم الذرّية (العددية القياسية). وتستخدم بعض الكيانات في نموذج البيانات بُنى مركّبة لتحسين التعامل مع السمات النادرة وغير القياسية.

تُقسَّم البيانات إلى جداول منطقية (equipment وchannels وunits وsessions)، ما يزيل التكرار والازدواجية.

على سبيل المثال:

  • يشير جدول channel_data إلى جداول equipment وchannels وunits وsessions عبر المفاتيح الخارجية.

استخدام البيانات الموحّدة

يمكن استخدام البيانات الموحّدة للتحليل والتمثيل المرئي والتعلّم الآلي ومهام أخرى.

تحليل البيانات باستخدام 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

طلب البيانات عبر REST API

مثال على الطلب:

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

مثال على الاستجابة:

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

مواضيع ذات صلة

آخر تحديث في

هل كانت هذه الصفحة مفيدة؟