TS.CREATERULE

语法
TS.CREATERULE sourceKey destKey 
  AGGREGATION aggregator bucketDuration 
  [alignTimestamp]
可用版本
Redis Open Source / TimeSeries 1.0.0
时间复杂度
O(1)
ACL 类别
@timeseries, @write, @fast,

创建压缩规则

示例

必选参数

sourceKey

是源时间序列的键名。

destKey

是目标(压缩后)时间序列的键名。在调用 TS.CREATERULE 之前必须创建该键。

AGGREGATION aggregator bucketDuration

将结果聚合到时间桶中。

  • aggregator 参数接受以下聚合类型之一

    聚合器 描述
    avg 所有值的算术平均值
    sum 所有值的总和
    min 最小值
    max 最大值
    range 最高值与最低值之间的差
    count 值的数量
    first 桶中时间戳最低的值
    last 桶中时间戳最高的值
    std.p 值的总体标准差
    std.s 值的样本标准差
    var.p 值的总体方差
    var.s 值的样本方差
    twa 桶时间范围内的时加权平均值(自 RedisTimeSeries v1.8 起)
  • bucketDuration 是每个桶的持续时间,以毫秒为单位。

注意

  • 只有在创建规则后添加到源时间序列中的新样本才会被聚合。
  • 使用非空 destKey 调用 TS.CREATERULE 可能会导致原始数据和压缩数据之间不一致。
  • 显式地向压缩时间序列添加样本(使用 TS.ADDTS.MADDTS.INCRBYTS.DECRBY)可能会导致原始数据和压缩数据之间不一致。压缩过程可能会覆盖此类样本。
  • 如果在桶期间没有向源时间序列添加样本,则不会向目标时间序列添加压缩样本。
  • 添加到目标时间序列的压缩样本的时间戳设置为相应压缩桶的起始时间戳。例如,对于一个没有对齐的 10 分钟压缩桶,压缩样本的时间戳是 x:00x:10x:20 等。
  • 删除 destKey 也会导致压缩规则被删除。
警告
在集群环境中,您必须使用哈希标签来强制 sourceKeydestKey 存储在同一个哈希槽中。否则,Redis 可能无法压缩数据,并且不会显示任何错误消息。

可选参数

alignTimestamp(自 RedisTimeSeries v1.8 起)

确保有一个桶正好从 alignTimestamp 开始,并相应地对齐所有其他桶。以毫秒表示。默认值为 0:与 Unix 纪元对齐。

例如,如果 bucketDuration 是 24 小时 (24 * 3600 * 1000),将 alignTimestamp 设置为 Unix 纪元后 6 小时 (6 * 3600 * 1000) 可确保每个桶的时间范围是 [06:00 .. 06:00)

返回值

返回以下回复之一

  • 简单字符串回复 - 如果执行成功则返回 OK
  • [] 错误时返回(无效参数、错误的键类型等),当 sourceKey 不存在时,当 destKey 不存在时,当 sourceKey 已经是压缩规则的目标时,当 destKey 已经是压缩规则的源或目标时,或当 sourceKeydestKey 相同时

示例

创建压缩规则

创建一个时间序列以存储在特拉维夫测量的温度。

127.0.0.1:6379> TS.CREATE temp:TLV LABELS type temp location TLV
OK

接下来,创建一个名为 dailyAvgTemp 的压缩时间序列,其中包含每 24 小时一个压缩样本:从午夜到次日午夜所有测量值的时加权平均值。

127.0.0.1:6379> TS.CREATE dailyAvgTemp:TLV LABELS type temp location TLV
127.0.0.1:6379> TS.CREATERULE temp:TLV dailyAvgTemp:TLV AGGREGATION twa 86400000 

现在,再创建一个名为 dailyDiffTemp 的压缩时间序列。该时间序列将包含每 24 小时一个压缩样本:在次日 06:00 到 06:00 之间测量的最低温度和最高温度之间的差值。此处,86400000 是 24 小时内的毫秒数,21600000 是 6 小时内的毫秒数。

127.0.0.1:6379> TS.CREATE dailyDiffTemp:TLV LABELS type temp location TLV
127.0.0.1:6379> TS.CREATERULE temp:TLV dailyDiffTemp:TLV AGGREGATION range 86400000 21600000

另请参阅

TS.DELETERULE

RedisTimeSeries


评价此页面
返回顶部 ↑