مكوّنات التوحيد
اللبنات الأساسية لتوحيد البيانات — توحيد الصيغة، وتوحيد البنية، والتوحيد الدلالي، والتطبيع، واستخدام البيانات الموحّدة.
توحيد الصيغة
تُحوَّل جميع البيانات الواردة من مصادر مختلفة إلى صيغة واحدة.
على سبيل المثال، تصل البيانات من أجهزة IoT بصيغة JSON:
{
"device_id": "sensor-123",
"temp": 27.3,
"time": 1739960923
}توحيد بنية البيانات
تُحدَّد بنية واحدة لجميع البيانات بصرف النظر عن مصدرها.
تُخزَّن جميع البيانات في جدول channel_data، الذي يربطها بالمعدّات والجلسات والقنوات ووحدات القياس:
| الحقل | النوع | الوصف |
|---|---|---|
id | bigint | معرّف فريد للسجل (المفتاح الأساسي). |
equipment_id | bigint | إشارة إلى المعدّات (equipment.id). |
seance_id | bigint | إشارة إلى الجلسة (seances.id). |
channel_id | bigint | إشارة إلى القناة (channels.id). |
unit_id | bigint | إشارة إلى وحدة القياس (units.id). |
archive_type_id | integer | إشارة إلى نوع الأرشيف (referenceparameters.id). |
event_time | integer | وقت وقوع الحدث (مثلاً الطابع الزمني). |
value | character varying(100) | القيمة الواردة من القناة. |
created_at | timestamp(6) without time zone | وقت إنشاء السجل. |
updated_at | timestamp(6) without time zone | وقت آخر تحديث للسجل. |
حيث:
equipment_id: معرّف فريد للمعدّات.seance_id: معرّف فريد للجلسة.channel_id: معرّف فريد للقناة.unit_id: معرّف فريد لوحدة القياس.
عند تخزين البيانات الواردة من أجهزة مختلفة في مستودع مركزي:
- تُحوَّل البيانات إلى صيغة وبنية موحّدتين؛
- وتُخزَّن في جدول البيانات الموحّد
channel_data.
التوحيد الدلالي
تحمل جميع البيانات المعنى والتفسير ذاتهما عبر كل الأنظمة.
على سبيل المثال:
- جميع الطوابع الزمنية بصيغة
UTC. وقد طُبِّق ذلك في مرحلة تصميم النظام. - تستخدم جميع الأنظمة وحدات القياس نفسها (مثل الدرجات المئوية).
لتوحيد وحدات القياس، أُضيف نموذج Units إلى النظام. وهو يخزّن وحدات القياس المستخدمة لبيانات القنوات.
| الحقل | النوع | الوصف |
|---|---|---|
id | bigint | معرّف فريد للسجل (المفتاح الأساسي). |
name | character varying(30) | اسم وحدة القياس. |
varname | character varying(30) | اسم متغيّر مختصر لوحدة القياس. |
description | character varying(100) | وصف وحدة القياس. |
conversion_factor | double precision | معامل التحويل لوحدة القياس. |
rounding | smallint | عدد المنازل العشرية المراد التقريب إليها. |
synonyms | character varying[] | مصفوفة المرادفات لوحدة القياس. |
created_at | timestamp(6) without time zone | وقت إنشاء السجل. |
updated_at | timestamp(6) without time zone | وقت آخر تحديث للسجل. |
تطبيع البيانات
يُختزَل نموذج بيانات النظام إلى صيغة بويس-كود الطبيعية (الثالثة) من حيث القيم الذرّية (العددية القياسية). وتستخدم بعض الكيانات في نموذج البيانات بُنى مركّبة لتحسين التعامل مع السمات النادرة وغير القياسية.
تُقسَّم البيانات إلى جداول منطقية (equipment وchannels وunits وsessions)، ما يزيل التكرار والازدواجية.
على سبيل المثال:
- يشير جدول
channel_dataإلى جداولequipmentوchannelsوunitsوsessionsعبر المفاتيح الخارجية.
استخدام البيانات الموحّدة
يمكن استخدام البيانات الموحّدة للتحليل والتمثيل المرئي والتعلّم الآلي ومهام أخرى.
تحليل البيانات باستخدام 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
مثال على الطلب:
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3مثال على الاستجابة:
[
{
"id": 123,
"equipment_id": 1,
"seance_id": 2,
"channel_id": 3,
"archive_type_id": 4,
"value": 42.5,
"event_time": 1739950861
}
]مواضيع ذات صلة
هل كانت هذه الصفحة مفيدة؟
شكرًا على ملاحظاتك!