اجزای یکپارچه‌سازی

بلوک‌های سازندهٔ یکپارچه‌سازی داده — استانداردسازی قالب، یکسان‌سازی ساختار، یکسان‌سازی معنایی، نرمال‌سازی و استفاده از دادهٔ یکپارچه.

استانداردسازی قالب

تمام داده‌هایی که از منابع گوناگون می‌رسند به یک قالب واحد تبدیل می‌شوند.

برای نمونه، دادهٔ دستگاه‌های 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
  }
]

موضوعات مرتبط

آخرین به‌روزرسانی در

آیا این صفحه مفید بود؟