استعلامات 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® API باستخدام جدول خارجي.
تشير الكلمة الرئيسية 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 (https://docs.timescale.com/ ). حجم القطعة هو 7 أيام، ويتم ضغط القطع بعد 7 أيام.
الاسم | الحقول |
|---|---|
|
|
stablenet_measurement_data_aggregated تحتوي فقط على بيانات لمفاتيح المقاييس المكونة.


