Spec-Zone.ru › Redis

TS.CREATERULE

TS.CREATERULE
Синтаксис
TS.CREATERULE sourceKey destKey 
  AGGREGATION aggregator bucketDuration 
  [alignTimestamp]
Доступно в:
Redis Stack / TimeSeries 1.0.0
Сложность по времени:
O(1)

Создать правило компактизации

Примеры

Обязательные аргументы

sourceKey

имя ключа для исходного временного ряда.

destKey

имя ключа для целевого (скомпактированного) временного ряда. Он должен быть создан до вызова TS.CREATERULE.

AGGREGATION aggregator bucketDuration

агрегирует результаты в временные корзины.

  • aggregator принимает один из следующих типов агрегации:

    aggregator Описание
    avg Среднее арифметическое всех значений
    sum Сумма всех значений
    min Минимальное значение
    max Максимальное значение
    range Разница между наибольшим и наименьшим значением
    count Количество значений
    first Значение с наименьшим временным меткой в корзине
    last Значение с наибольшим временным меткой в корзине
    std.p Среднее квадратическое отклонение значений
    std.s Выборочное среднее квадратическое отклонение значений
    var.p Дисперсия генеральной совокупности значений
    var.s Выборочная дисперсия значений
    twa Взвешенное среднее по временной шкале корзины (с RedisTimeSeries v1.8)
  • bucketDuration — это продолжительность каждой корзины в миллисекундах.

Примечания

  • Будут агрегированы только новые образцы, добавленные в исходный ряд после создания правила.
  • Вызов TS.CREATERULE с непустым destKey может привести к несоответствиям между исходными и скомпактированными данными.
  • Явное добавление образцов в скомпактированный временной ряд (с помощью TS.ADD, TS.MADD, TS.INCRBY или TS.DECRBY) может привести к несоответствиям между исходными и скомпактированными данными. Процесс компактизации может переопределить такие образцы.
  • Если в течение периода корзины в исходный временной ряд не добавлены образцы, в целевой временной ряд не добавляется скомпактированный образец.
  • Временная метка скомпактированного образца, добавленного в целевой временной ряд, устанавливается на начальную временную метку соответствующей корзины компактизации. Например, для корзины компактизации продолжительностью 10 минут без выравнивания временные метки скомпактированных образцов — x:00, x:10, x:20, и так далее.
  • Удаление destKey приведет к удалению правила компактизации.
  • В кластерной среде необходимо использовать хештеги для принудительного размещения sourceKey и destKey в одном слоте хеширования.

Дополнительные аргументы

alignTimestamp (с RedisTimeSeries v1.8)

обеспечивает, что есть корзина, начинающаяся ровно в alignTimestamp, и выравнивает все остальные корзины соответственно. Выражается в миллисекундах. Значение по умолчанию — 0, выровненное с эпохой. Например, если bucketDuration составляет 24 часа (24 * 3600 * 1000), установка alignTimestamp на 6 часов после эпохи (6 * 3600 * 1000) гарантирует, что временная шкала каждой корзины [06:00 .. 06:00).

Возвращаемое значение

Простой строковый ответ — OK в случае успешного выполнения, или Ответ об ошибке в противном случае.

Примеры

Создать правило компактизации

Создайте временной ряд для хранения температур, измеренных в Тель-Авиве.

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

© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/ts.createrule/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API