Skip to main content

timeSeriesTopKMasks

引入版本:v26.8.0 在时间网格的每个时间步上,选出取值最大的 k 个时间序列。 每个输入行代表一个时间序列:key 用于标识该序列,values 包含该序列按公共时间网格对齐的取值,因此所有行的 values 数组长度必须相同。在每个时间步上,选出该时间步中非 NULL 值最大的 k 个序列 (非数字 (NaN) 被视为小于任何其他值) 。若取值相同,则优先选择 key 较小的序列。 该函数实现了 PromQL 的 topk() 聚合运算符,每个时间步仅维护一个大小为 k 的有界堆,因此其状态大小与参与聚合的序列数量无关。
该函数目前处于私有预览阶段,可通过设置 enable_time_series_aggregate_functions = 1 启用。
语法
参数 返回值 按 key 升序返回被选中的序列,每个序列附带其按时间步划分的掩码:若该序列在时间步 t 被选中,则 steps_mask[t] = 1。在所有时间步均未被选中的序列不会返回。Array(Tuple(key UInt64, steps_mask Array(UInt8))) 示例 在每个时间步选取最大的 2 个序列
Query
Response
最后修改于 2026年10月14日