استعلامات StableNet
ينطبق هذا القسم على الأنظمة المدمجة مع StableNet® فقط
يمكن الاستعلام عن بيانات StableNet® من مجموعة بيانات مجمعة على قاعدة بيانات SKOOR المحلية وكذلك في الوقت الفعلي من واجهة برمجة تطبيقات StableNet®. تساعد الإرشادات التالية على الجمع بين هاتين الطريقتين وتحسينهما.
إعداد استعلام بيانات مجمعة للأجهزة والقياسات
يقدم مثال الاستعلام التالي بيانات أساسية للاستخدام مع أداة FilterMatrix (على سبيل المثال تصفية للأجهزة أو القياسات) وكذلك لضم بيانات القياس من واجهة برمجة تطبيقات StableNet® API أو جدول البيانات المجمعة. يجب تعيين مصدر البيانات إلى مصدر من نوع StableNet.
-- Data query example "device_measurement" SELECT std.id AS device_id, std.display_name AS device_name, sm.id as measurement_id, sm.name as measurement_name FROM stablenet_taggable_device std JOIN stablenet_measurement sm ON std.id = sm.dest_device_id
نظرًا لأن بيانات الجهاز وبيانات القياس لن تتغير كثيرًا، يجب أن يتجسد هذا الاستعلام. سيتم زيادة الأداء بشكل كبير.
اضبط الفاصل الزمني للتحديث على يومي وأنشئ مؤشرات لجميع السمات:
الانضمام إلى جدول خارجي لبيانات الوقت الحقيقي
بالإضافة إلى الاستعلام عن البيانات المادية المُعدّة، يمكن ربط البيانات من واجهة برمجة تطبيقات StableNet® API باستخدام جدول خارجي.
تشير الكلمة الأساسية "من" في المثال التالي إلى الاستعلام المادي المُعد أعلاه.
SELECT dm.device_id, dm.device_name, dm.measurement_name, dm.measurement_id, sma.metric_key, sma.metric_name, sma.interval, sma.min, sma.max, sma.avg, sma.timestamp FROM device_measurement dm JOIN stablenet_measurement_data sma ON dm.measurement_id = sma.measurement_id WHERE sma.start = ${begin}::timestamptz AND sma."end" = ${end}::timestamptz AND sma.bucket_size = EXTRACT( EPOCH FROM ('1 ' || ${bucket_size})::interval )::integer AND sma.metric_name = ${metric_name}
في لوحة المعلومات أو معاينة البيانات، يجب تعيين السمات التالية لهذا المثال الاستعلام:
البداية/النهاية: الطابع الزمني ISO 8601، على سبيل المثال 2024-05-01T00:00:00:00Z
حجم_الدلو: دلو الوقت بكلمات مثل الساعة، اليوم، الشهر، إلخ.
اسم_المتري: اسم متري صالح ل StableNet® متري مثل وقت الرحلة ذهابًا وإيابًا
بدلاً من اسم_المقياس، جرب السمة metric_key في بند WHERE لتحديد مقياس معين إذا كان هناك أكثر من مقياس متاح
الانضمام إلى جدول البيانات المجمعة
إذا كان الأداء أكثر أهمية من بيانات الوقت الحقيقي، فيجب تفضيل جدول البيانات المجمعة على الجداول الخارجية.
تشير الكلمة الأساسية "من" في المثال التالي إلى الاستعلام المجمّع الذي تم إعداده أعلاه.
SELECT dm.device_id, dm.device_name, dm.measurement_name, dm.measurement_id, sma.metric_key, sma.metric_name, sma.interval, sma.min, sma.max, sma.avg, sma.timestamp FROM device_measurement dm JOIN stablenet_measurement_data_aggregated sma ON dm.measurement_id = sma.measurement_id WHERE sma.timestamp BETWEEN ${begin}::timestamptz AND ${end}::timestamptz AND sma.metric_name = ${metric_name}
في لوحة المعلومات أو معاينة البيانات، يجب تعيين السمات التالية لهذا الاستعلام المثال:
البداية/النهاية: الطابع الزمني ISO 8601، على سبيل المثال 2024-05-01T00:00:00:00Z
اسم_المتري: اسم متري صالح ل StableNet® متري مثل وقت الرحلة ذهابًا وإيابًا
بدلاً من اسم_المقياس، جرب السمة metric_key في بند WHERE لتحديد مقياس معين إذا كان هناك أكثر من مقياس متاح
الجداول الخارجية
الاسم | الحقول | المؤهلات |
---|---|---|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
على الرغم من أن measurement_id
و metric_key
اختياريان، إلا أنه لا يوصى بتنفيذ الاستعلامات بدونهما. يؤدي القيام بذلك إلى قراءة بيانات القياس لجميع القياسات وجميع المقاييس التي قد تستغرق وقتًا طويلاً لقراءتها وتضع بعض الأحمال الثقيلة على خادم StableNet. يُنصح به فقط للنطاقات الزمنية القصيرة جدًا < 1 ساعة. إذا كانت هناك حاجة إلى قياسات ومقاييس متعددة، فيجب استخدام الجدول stablenet_measurement_data_aggregated
.
بيانات القياس المجمعة
مجمعة حسب الساعة، ويتم تحديثها تلقائيًا كل ساعة. يمكن استخدامه لإجراء استعلامات تحليلية على نطاق واسع من القياسات وعلى نطاقات زمنية كبيرة.
هو في الأساس مقياس زمني مفرط(https://docs.timescale.com/ ). حجم القطع هو 7 أيام، ويتم ضغط القطع بعد 7 أيام.
الاسم | الحقول |
---|---|
|
|
stablenet_measurement_data_aggregated
يحتوي فقط على بيانات مفاتيح القياس المكوّنة.