Skip to main content

timeSeriesLimitKMasks

أُضيف في: v26.8.0 تختار ما يصل إلى k من السلاسل الزمنية عند كل خطوة زمنية من الشبكة الزمنية، بطريقة شبه عشوائية حتمية. يمثّل كل صف إدخال سلسلة زمنية واحدة: يحدّد key السلسلة، وsampling_key قيمة تجزئة خاصة بكل سلسلة يُعتمد عليها في ترتيب الاختيار، ويحتوي values على قيم السلسلة مُحاذاةً إلى شبكة زمنية مشتركة (لذا يجب أن تكون مصفوفات values في جميع الصفوف بالحجم نفسه). عند كل خطوة زمنية، تُختار السلاسل التي تملك أصغر k من مفاتيح أخذ العينات من بين السلاسل التي تحتوي على قيم غير NULL عند تلك الخطوة. وعند تساوي مفاتيح أخذ العينات، تُفضَّل السلسلة ذات قيمة key الأصغر. تنفّذ هذه الدالة مشغّل التجميع limitk() في PromQL، ولا تحتفظ إلا بكومة محدودة واحدة بحجم k لكل خطوة زمنية، ولذلك لا يتوقف حجم حالتها على عدد السلاسل المجمّعة.
هذه الدالة في مرحلة المعاينة الخاصة، ويمكنك تفعيلها بضبط enable_time_series_aggregate_functions = 1.
الصيغة
الوسيطات
  • k — عدد السلاسل المطلوب اختيارها عند كل خطوة زمنية، إما قيمة واحدة لجميع الخطوات الزمنية أو مصفوفة تحتوي على قيمة لكل خطوة زمنية. يجب أن تكون القيمة نفسها لجميع الصفوف. UInt* أو Array(UInt*)
  • key — معرّف السلسلة الزمنية. UInt64
  • sampling_key — قيمة تجزئة لكل سلسلة تحدد ترتيب الاختيار، مثل timeSeriesGroupToSamplingKey(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
آخر تعديل في ١٤ أكتوبر ٢٠٢٦