TS.ADD
TS.ADD
TS.ADD key timestamp value
[RETENTION retentionPeriod]
[ENCODING [COMPRESSED|UNCOMPRESSED]]
[CHUNK_SIZE size]
[ON_DUPLICATE policy]
[LABELS {label value}...]
- Доступно в:
- Redis Stack / TimeSeries 1.0.0
- Временная сложность:
- O(M), где M — количество правил компактизации, или O(1) без компактизации
Добавление выборки в временной ряд
Обязательные аргументы
key
имя ключа временного ряда.
timestamp
маркер времени выборки (целое число) в формате метки времени Unix в миллисекундах или * для установки метки времени по серверному времени.
value
численное значение выборки (число с плавающей точкой). Число с плавающей точкой должно соответствовать RFC 7159 (стандарт JSON). В частности, парсер отклоняет слишком большие значения, которые не помещаются в тип binary64. Он также не принимает значения NaN или бесконечность.
-
Если указанный ключ не существует, создается новый временной ряд.
Если параметр конфигурации COMPACTION_POLICY определен, также создается компактизированный временной ряд.
-
Если
timestampстарше периода хранения по сравнению с максимальной существующей меткой времени, выборка отбрасывается, и возвращается ошибка. -
При добавлении выборки во временной ряд, для которого определены правила компактизации:
- Если все исходные выборки для соответствующего агрегированного временного интервала доступны, компактированное значение пересчитывается на основе предоставленной выборки и исходных выборок.
- Если только часть исходных выборок для соответствующего агрегированного временного интервала доступна из-за обрезки в соответствии с политикой хранения временного ряда, компактированное значение пересчитывается на основе предоставленной выборки и доступных исходных выборок.
- Если исходные выборки для соответствующего агрегированного временного интервала недоступны из-за обрезки в соответствии с политикой хранения временного ряда, компактированный интервал значения не обновляется.
-
Явное добавление выборок в компактированный временной ряд (используя
TS.ADD,TS.MADD,TS.INCRBYилиTS.DECRBY) может привести к несоответствиям между сырыми и компактированными данными. Процесс компактизации может переопределить такие выборки.
Дополнительные аргументы
Следующие аргументы являются необязательными, так как их можно установить с помощью TS.CREATE.
RETENTION retentionPeriod
максимальный период хранения, по сравнению с максимальной существующей меткой времени, в миллисекундах.
Используйте его только при создании нового временного ряда. Он игнорируется при добавлении выборок в существующий временной ряд. См. RETENTION в TS.CREATE.
ENCODING enc
указывается формат кодирования выборки временного ряда.
Используйте его только при создании нового временного ряда. Он игнорируется при добавлении выборок в существующий временной ряд. См. ENCODING в TS.CREATE.
CHUNK_SIZE size
размер памяти в байтах, выделенный для каждого блока данных. Используйте его только при создании нового временного ряда. Он игнорируется при добавлении выборок в существующий временной ряд. См. CHUNK_SIZE в TS.CREATE.
ON_DUPLICATE policy
переопределяет ключ и конфигурацию базы данных для DUPLICATE_POLICY, политики обработки выборок с одинаковыми метками времени. Используется с одним из следующих значений:
-
BLOCK: игнорировать любое новое значение и ответить ошибкой -
FIRST: игнорировать любое новое значение -
LAST: перезаписывать новым значением -
MIN: перезаписывать только если значение меньше существующего -
MAX: перезаписывать только если значение больше существующего -
SUM: Если предыдущая выборка существует, добавить новую выборку к ней, так что обновлённое значение равно (предыдущее + новое). Если предыдущей выборки нет, установить обновлённое значение равным новому значению.
LABELS {label value}...
набор пар "метка-значение", представляющих метаданные метки временного ряда.
Используйте его только при создании нового временного ряда. Он игнорируется при добавлении выборок в существующий временной ряд. См. LABELS в TS.CREATE.
- Вы можете использовать эту команду для добавления данных в несуществующий временной ряд за один вызов. Поэтому
RETENTION,ENCODING,CHUNK_SIZE,ON_DUPLICATE, иLABELSявляются необязательными аргументами. - Установка
RETENTIONиLABELSдобавляет дополнительную временную сложность.
Возвращаемое значение
Целое число в ответе — метка времени добавленной выборки или Ошибка в ответе.
Сложность
Если для временного ряда установлено правило компактизации, производительность TS.ADD может снизиться. Сложность TS.ADD всегда равна O(M), где M — количество правил компактизации, или O(1) без компактизации.
Примеры
Добавление выборки в временной ряд температуры
Создайте временной ряд температуры, установите период хранения в 1 год и добавьте выборку.
127.0.0.1:6379> TS.ADD temperature:3:11 1548149183000 27 RETENTION 31536000000
(integer) 1548149183000Добавьте выборку во временной ряд, установив метку времени выборки по серверному времени.
127.0.0.1:6379> TS.ADD temperature:3:11 * 30
(integer) 1662042954573См. также
Связанные темы
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/ts.add/