timeSeriesTopKMasks
أُضيف في: v26.8.0 يختار السلاسل الزمنية ذات القيم الـ k الأكبر عند كل خطوة زمنية من شبكة زمنية. يمثّل كل صف إدخال سلسلة زمنية واحدة: يحدّدkey السلسلة، بينما يحتوي values على قيمها مُحاذاةً لشبكة
زمنية مشتركة، ولذلك يجب أن تكون مصفوفات values في جميع الصفوف بالحجم نفسه. عند كل خطوة زمنية، تُختار السلاسل التي تملك أكبر k
من القيم غير الفارغة (غير NULL) عند تلك الخطوة (تُعدّ NaN أصغر من أي قيمة أخرى). وعند تساوي القيم، تُفضَّل
السلسلة ذات key الأصغر.
تنفّذ هذه الدالة مشغّل التجميع topk() في PromQL، ولا تحتفظ إلا بكومة محدودة واحدة بحجم k لكل
خطوة زمنية، ولذلك لا يتوقف حجم حالتها على عدد السلاسل المجمّعة.
هذه الدالة في مرحلة المعاينة الخاصة، ويمكن تفعيلها بضبط
enable_time_series_aggregate_functions = 1.k— عدد السلاسل المراد اختيارها عند كل خطوة زمنية، إما قيمة واحدة لجميع الخطوات الزمنية أو مصفوفة تحتوي على قيمة لكل خطوة زمنية. يجب أن تكون هذه القيمة نفسها لجميع الصفوف.UInt*أوArray(UInt*)key— معرّف السلسلة الزمنية.UInt64values— قيم السلسلة الزمنية بعد محاذاتها مع الشبكة الزمنية، بواقع عنصر واحد لكل خطوة زمنية.Array(Nullable(Float32))أوArray(Nullable(Float64))أوArray(Float32)أوArray(Float64)
key، وتُرفق بكلٍّ منها قناعها الخاص بالخطوات: steps_mask[t] = 1 إذا اختيرت السلسلة عند الخطوة الزمنية t. ولا تُعاد السلاسل التي لم تُختر عند أي خطوة زمنية. Array(Tuple(key UInt64, steps_mask Array(UInt8)))
أمثلة
اختيار أكبر سلسلتين عند كل خطوة زمنية
Query
Response