Skip to main content

timeSeriesLimitKMasks

導入バージョン: v26.8.0 時間グリッドの各タイムステップにおいて、決定論的な疑似ランダム方式で最大 k 個の時系列を選択します。 各入力行が 1 つの時系列に対応します。key は系列を識別する値、sampling_key は選択順序として使用される系列ごとのハッシュ、values は共通の時間グリッドに揃えられた系列の値です (そのため、すべての行の values 配列は 同じサイズでなければなりません) 。各タイムステップでは、そのステップで非 NULL の値を持つ系列のうち、サンプリングキーが小さい順に k 個の系列が選択されます。サンプリングキーが同じ場合は、key が小さい系列が優先されます。 この関数は PromQL の limitk() 集約オペレーターを実装したもので、タイムステップごとにサイズ k の有界ヒープを 1 つだけ保持します。そのため、 ステートのサイズは集計対象の系列数に依存しません。
この関数はプライベートプレビュー段階です。enable_time_series_aggregate_functions = 1 を設定して有効にしてください。
構文
引数
  • k — 各時間ステップで選択する系列の数。全時間ステップ共通の単一の値か、時間ステップごとに 1 つずつ値を持つ配列のいずれかを指定します。すべての行で同じ値である必要があります。UInt* または Array(UInt*)
  • key — 時系列の識別子。UInt64
  • sampling_key — 選択順序を決定する系列ごとのハッシュ値。例: timeSeriesGroupToSamplingKey(key)。UInt64
  • values — 時間グリッドに揃えた時系列の値。時間ステップごとに 1 つの要素を持ちます。Array(Nullable(Float32)) または Array(Nullable(Float64)) または Array(Float32) または Array(Float64)
戻り値 選択された系列を、それぞれのステップごとのマスクと組にして key の昇順で返します。系列が時間ステップ t で選択されている場合は steps_mask[t] = 1 となります。どの時間ステップでも選択されなかった系列は返されません。Array(Tuple(key UInt64, steps_mask Array(UInt8))) 例 サンプリングキーが小さい順に、時間ステップごとに 2 つの系列を選択する
Query
Response
最終更新日 2026年10月14日