Skip to main content

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 — معرّف السلسلة الزمنية. UInt64
  • values — قيم السلسلة الزمنية بعد محاذاتها مع الشبكة الزمنية، بواقع عنصر واحد لكل خطوة زمنية. 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
آخر تعديل في ١٤ أكتوبر ٢٠٢٦