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См. также
Связанные темы
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/ts.createrule/