استعلامات StableNet
ينطبق هذا القسم على الأنظمة المدمجة مع StableNet® فقط
يمكن الاستعلام عن بيانات StableNet® من مجموعة بيانات مجمعة في قاعدة بيانات SKOOR المحلية، وكذلك في الوقت الفعلي من واجهة برمجة تطبيقات StableNet®. تساعد الإرشادات التالية على الجمع بين هاتين الطريقتين وتحسينهما.
إعداد استعلام بيانات ملموس للأجهزة والقياسات
يقدم استعلام المثال التالي بيانات أساسية للاستخدام مع أداة FilterMatrix (مثل تصفية الأجهزة أو القياسات)، وكذلك لدمج بيانات القياس من واجهة برمجة تطبيقات StableNet® أو جدول البيانات المجمعة. يجب تعيين مصدر البيانات إلى أحد أنواع 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® باستخدام جدول خارجي.
تشير الكلمة الرئيسية FROM في المثال التالي إلى الاستعلام المادي الذي تم إعداده أعلاه.
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}
في لوحة المعلومات أو معاينة البيانات، يجب تعيين السمات التالية لهذا الاستعلام النموذجي:
begin/end: طابع زمني وفقًا لمعيار ISO 8601، على سبيل المثال 2024-05-01T00:00:00Z
bucket_size: وحدة الوقت بالكلمات مثل الساعة، اليوم، الشهر، إلخ.
metric_name: اسم مقياس StableNet® صالح مثل Round Trip Time
بدلاً من metric_name، جرب السمة metric_key في جملة WHERE لتحديد مقياس معين في حالة توفر أكثر من مقياس واحد
انضم إلى جدول البيانات المجمعة
إذا كان الأداء أكثر أهمية من البيانات في الوقت الفعلي، فيجب تفضيل جدول البيانات المجمعة على الجداول الخارجية.
تشير الكلمة الرئيسية FROM في المثال التالي إلى الاستعلام المُجسَّد الذي تم إعداده أعلاه.
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}
في لوحة المعلومات أو معاينة البيانات، يجب تعيين السمات التالية لهذا الاستعلام النموذجي:
begin/end: طابع زمني وفقًا لمعيار ISO 8601، على سبيل المثال 2024-05-01T00:00:00Z
metric_name: اسم مقياس StableNet® صالح مثل Round Trip Time
بدلاً من metric_name، جرب السمة metric_key في جملة WHERE لاختيار مقياس معين في حالة توفر أكثر من مقياس واحد
الجداول الخارجية
الاسم | الحقول | المؤهلات |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
على الرغم من أن measurement_id و metric_key اختياريان، إلا أنه لا يُنصح بتنفيذ الاستعلامات بدونهما. يؤدي القيام بذلك إلى قراءة بيانات القياس لجميع القياسات وجميع المقاييس، مما قد يستغرق وقتًا طويلاً ويضع عبئًا ثقيلًا على خادم StableNet. يُنصح بذلك فقط للنطاقات الزمنية القصيرة جدًا < 1 ساعة. إذا كانت هناك حاجة إلى قياسات ومقاييس متعددة، فيجب استخدام الجدول stablenet_measurement_data_aggregated.
بيانات القياس المجمعة
يتم تجميعها حسب الساعة، ويتم تحديثها تلقائيًا كل ساعة. يمكن استخدامها لإجراء استعلامات تحليلية على نطاق واسع من القياسات وعلى فترات زمنية طويلة.
وهي في الأساس جدول Timescale hypertable (https://docs.timescale.com/). حجم المقطع هو 7 أيام، ويتم ضغط المقاطع بعد 7 أيام.
الاسم | الحقول |
|---|---|
|
|
stablenet_measurement_data_aggregated تحتوي فقط على بيانات لمفاتيح المقاييس التي تم تكوينها.


