Skip to main content

timeSeriesTimestampOfLastToGrid

引入版本: v26.10.0 聚合函数,接收以时间戳和值对形式表示的时间序列数据,并在由起始时间戳、结束时间戳和步长定义的等间隔时间网格上,基于这些数据计算类似 PromQL 的 ts_of_last_over_time。对于网格上的每个点,结果为指定时间窗口内最新样本的时间戳。 样本可以采用以下三种形式之一传入:
  • 以 timestamp 和 value 两个参数的形式传入,此时每一行包含单个样本;
  • 以时间戳数组和值数组两个数组的形式传入,此时每一行包含一个完整的时间序列;
  • 以由 (timestamp, value) Tuple 组成的单个数组的形式传入,此时每一行包含一个完整的时间序列。
如果多个样本的时间戳相同,则只使用其中值最大的那个样本。NaN 值的优先级低于任何其他值,因此只有当该时间戳上的所有样本均为 NaN 时,才会使用 NaN 值。
该函数目前处于私有预览阶段,可通过设置 enable_time_series_aggregate_functions=true 启用。
语法
参数
  • start_timestamp — 指定网格的起始时间。也可以是小数,或包含数字或日期时间文本的字符串。UInt32 或 DateTime 或 DateTime64 或 Float* 或 Decimal* 或 String
  • end_timestamp — 指定网格的结束时间。也可以是小数,或包含数字或日期时间文本的字符串。UInt32 或 DateTime 或 DateTime64 或 Float* 或 Decimal* 或 String
  • grid_step — 指定网格的步长,单位为秒。也可以是小数,或包含数字或时长 (如 ’15s’ 或 ‘1m’) 的字符串。UInt32 或 Float* 或 Decimal* 或 String
  • staleness_window — 指定最新样本允许的最大过期时长,单位为秒。也可以是小数,或包含数字或时长 (如 ’15s’ 或 ‘1m’) 的字符串。UInt32 或 Float* 或 Decimal* 或 String
参数
  • timestamp — 样本的时间戳。可以是单个值,也可以是数组。UInt32 或 DateTime 或 DateTime64 或 Array(UInt32) 或 Array(DateTime) 或 Array(DateTime64)
  • value — 时间戳对应的时间序列值。可以是单个值,也可以是数组。Float* 或 Array(Float*)
  • samples — 时间序列样本,以 (timestamp, value) 元组数组的形式传入,其中元组元素的类型分别与上文所列的时间戳和值的类型相同。可用于替代将时间戳和值作为两个独立参数传入的方式。Array(Tuple(T1, T2))
返回值 返回指定网格上最近样本的时间戳,类型与 timestamp 相同。返回的 array 中,每个时间网格点对应一个值。如果某个网格点的窗口内没有样本,则该值为 NULL。 Array(Nullable(UInt32)) 或 Array(Nullable(DateTime)) 或 Array(Nullable(DateTime64)) 示例 在时间网格 [90, 105, 120, 135, 150, 165, 180, 195, 210] 上计算 ts_of_last_over_time 的值
Query
Response
使用 array 参数的同一查询
Query
Response
最后修改于 2026年10月14日