O TairTS é uma estrutura de dados de séries temporais implementada como módulo Redis. Oferece acesso de leitura e gravação em memória com baixa latência e alta concorrência, suporta filtragem rápida e consultas agregadas, além de gerenciar o armazenamento e a computação de dados de séries temporais.
Conceitos principais
O TairTS organiza os dados em uma hierarquia de três níveis:
Pkey: contêiner nomeado para um conjunto de linhas do tempo relacionadas (skeys). Cada pkey pode armazenar várias skeys.
Skey: linha do tempo única dentro de um pkey. Uma skey consiste em múltiplos chunks de capacidade fixa e pode ter um ou mais rótulos associados para filtragem.
-
Chunk: unidade de armazenamento de dados dentro de uma skey. Cada chunk armazena vários pontos de dados.
A capacidade padrão do chunk é 256. Sem compressão, um chunk armazena até 256 pontos de dados. Com a compressão ativada, armazena mais de 256 pontos, dependendo da taxa de compressão.
Os chunks são a menor unidade de expiração. O sistema exclui um chunk quando todos os seus pontos de dados expiram.
Ponto de dados: medição única de série temporal, composta por um timestamp Unix (milissegundos) e um valor do tipo DOUBLE.
A estrutura multinível (pkey → skey → chunk → ponto de dados) permite agrupar linhas do tempo relacionadas e executar consultas agregadas em várias skeys com um único comando, sem incorporar lógica de agregação no código da aplicação.
Além das consultas agregadas de múltiplas linhas do tempo, o TairTS oferece os seguintes recursos:
Atualização e acumulação de dados históricos de séries temporais.
Definição de TTL no nível da linha do tempo, garantindo rolagem automática conforme a janela de tempo definida.
Algoritmo de compressão Gorilla eficiente, com otimizações específicas de armazenamento para reduzir custos significativamente.
Casos de uso
Armazenamento e computação de dados monitorados
Monitoramento por segundo para gerenciamento de desempenho de aplicações (APM)
Análise e processamento de dados para IoT (Internet das Coisas)
Análise de dados em janelas de tempo
Cache de feeds de notícias populares
Controle de risco em cenários de limitação de taxa
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância baseada em DRAM do Tair
Se a instância for compatível com Redis 5.0: versão secundária 1.7.20 ou posterior
Atualize a instância para a versão secundária mais recente para obter melhor suporte a recursos e estabilidade. Em instâncias cluster e de divisão de leitura/gravação, atualize também os nós proxy para a versão secundária mais recente, garantindo a execução correta de todos os comandos. Para mais informações, consulte Atualizar a versão secundária de uma instância.
Notas de uso
Os dados do TairTS residem na instância Tair.
O TairTS suporta gravações e consultas em tempo real com alta concorrência, mas possui capacidade de armazenamento limitada. Defina um TTL para os dados do TairTS a fim de garantir a exclusão imediata de dados expirados.
Alteração disruptiva na versão 24.7.0.0: em 22 de julho de 2024, as instâncias Tair baseadas em DRAM compatíveis com Redis 6.0 foram atualizadas para a versão 24.7.0.0. Esta versão introduz o parâmetro ts-auto-del-empty-skey-enable, cujo valor padrão é yes. Quando definido como yes, o sistema exclui automaticamente uma skey quando todos os seus pontos de dados expiram. Nas versões anteriores à 24.7.0.0, skeys expiradas não são excluídas por padrão. Antes de usar o TairTS em uma instância compatível com Redis 6.0, atualize para a versão 24.7.0.0 ou posterior e confirme e ajuste manualmente as configurações do parâmetro ts-auto-del-empty-skey-enable para evitar comportamentos inesperados na aplicação.
Melhores práticas
Defina CHUNK_SIZE com base no volume de dados
Para otimizar o uso de memória e o desempenho de leitura/gravação, ajuste CHUNK_SIZE de acordo com o número médio de pontos de dados por skey:
|
Média de pontos de dados por skey |
CHUNK_SIZE recomendado |
Motivo |
|
Mais de 5.000 |
256 (padrão) |
Chunks maiores reduzem a quantidade de chunks e a sobrecarga de metadados |
|
Menos de 5.000 |
Média / 20 (ex.: 50 para 1.000 pontos) |
Chunks menores reduzem o custo de descompressão para consultas de pequeno intervalo |
Definir um CHUNK_SIZE pequeno com altos volumes de gravação causa a criação de muitos chunks, o que pode degradar o desempenho.
Sempre defina um TTL para skeys
O TairTS tem capacidade de armazenamento limitada. Especifique DATA_ET ao criar skeys ou adicionar pontos de dados para limpar dados expirados automaticamente.
Lista de comandos
| Tipo | Comando | Sintaxe | Descrição |
|---|---|---|---|
| Operações básicas de gravação | EXTS.P.CREATE | EXTS.P.CREATE Pkey |
Crie um pkey do TairTS. Falha se já existir um pkey com o mesmo nome. |
| EXTS.S.CREATE | EXTS.S.CREATE Pkey Skey [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 label2 val2 ...] |
Crie uma skey em um pkey. Crie o pkey automaticamente se ele não existir. Falha se já existir uma skey com o mesmo nome. | |
| EXTS.S.ALTER | EXTS.S.ALTER Pkey Skey [DATA_ET time] |
Modifica os metadados de uma skey. Apenas DATA_ET pode ser modificado. |
|
| EXTS.S.ADD | EXTS.S.ADD Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Insere um ponto de dados em uma skey. Crie o pkey ou a skey automaticamente se não existirem. Os parâmetros da skey só têm efeito quando ela é criada automaticamente. | |
| EXTS.S.MADD | EXTS.S.MADD Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Insere um ponto de dados em múltiplas skeys de um pkey em uma única chamada. Crie o pkey ou as skeys automaticamente se não existirem. | |
| EXTS.S.INCRBY | EXTS.S.INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Insere um ponto de dados somando (ou subtraindo) ao valor do último ponto de dados na skey. O valor inicial padrão é 0. Crie o pkey ou a skey automaticamente se não existirem. | |
| EXTS.S.MINCRBY | EXTS.S.MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Insere pontos de dados em múltiplas skeys incrementando ou decrementando seus últimos valores. Crie o pkey ou as skeys automaticamente se não existirem. | |
| EXTS.S.DEL | EXTS.S.DEL Pkey Skey |
Exclui uma skey e todos os seus pontos de dados de um pkey. | |
| Operações básicas de leitura | EXTS.S.GET | EXTS.S.GET Pkey Skey |
Retorna o ponto de dados mais recente em uma skey. |
| EXTS.S.INFO | EXTS.S.INFO Pkey Skey |
Retorna os metadados de uma skey: contagem de pontos de dados, timestamp e valor mais recentes e informações de rótulo. | |
| EXTS.S.QUERYINDEX | EXTS.S.QUERYINDEX Pkey filter1 [filter2 ...] |
Retorna skeys em um pkey que correspondem aos filtros de rótulo especificados. | |
| Operações de agregação | EXTS.S.RANGE | EXTS.S.RANGE Pkey Skey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] |
Retorna pontos de dados em uma skey dentro de um intervalo de tempo fechado, com agregação opcional. |
| EXTS.S.MRANGE | EXTS.S.MRANGE Pkey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...] |
Retorna pontos de dados de múltiplas skeys que correspondem aos filtros de rótulo, dentro de um intervalo de tempo fechado. | |
| EXTS.P.RANGE | EXTS.P.RANGE Pkey fromTs toTs pkeyAggregationType pkeyTimeBucket [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] FILTER filter1 [filter2 ...] |
Agraga pontos de dados entre skeys em um pkey. As skeys são primeiro agregadas (como em EXTS.S.MRANGE) e, em seguida, os resultados são agregados no nível do pkey. | |
| Operações de gravação concorrente | EXTS.S.RAW_MODIFY | EXTS.S.RAW_MODIFY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Defina o valor de um ponto de dados em um timestamp específico. Crie o pkey ou a skey automaticamente se não existirem. |
| EXTS.S.RAW_MMODIFY | EXTS.S.RAW_MMODIFY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Defina os valores de múltiplos pontos de dados em timestamps específicos em uma única chamada. Crie o pkey ou as skeys automaticamente se não existirem. | |
| EXTS.S.RAW_INCRBY | EXTS.S.RAW_INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Modifica um ponto de dados em um timestamp específico somando ou subtraindo um valor. Crie o pkey ou a skey automaticamente se não existirem. O valor inicial padrão é 0. | |
| EXTS.S.RAW_MINCRBY | EXTS.S.RAW_MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...] |
Modifica múltiplos pontos de dados em timestamps específicos em uma única chamada. Crie o pkey ou as skeys automaticamente se não existirem. | |
| Operações de uso geral | DEL | DEL key [key ...] |
Exclui uma ou mais chaves do TairTS. |
Convenções de sintaxe de comandos:
UPPERCASE KEYWORD : palavra-chave do comando
_Italic text_ : variável
[options] : parâmetro opcional
A|B : opções mutuamente exclusivas
... : o parâmetro anterior pode ser repetido
EXTS.P.CREATE
Time complexity|
Item |
Descrição |
|
Syntax |
|
|
O(1) |
|
|
Descrição |
Crie um pkey do TairTS. Falha se já existir um pkey com o mesmo nome. |
|
Parameters |
|
|
Returns |
|
Exemplo:
EXTS.P.CREATE foo
Saída:
OK
EXTS.S.CREATE
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Crie uma skey no pkey especificado. Crie o pkey automaticamente se ele não existir. Falha se já existir uma skey com o mesmo nome. |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Nome da skey |
|
|
Tempo de expiração relativo dos pontos de dados, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho de um único chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256 (4 KB por chunk). Quando um chunk atinge a capacidade, o sistema cria um novo chunk. Consulte Melhores práticas para orientações de ajuste. |
|
|
Desativa a compressão para a skey. Por padrão, a compressão está ativada. |
|
|
Um ou mais pares rótulo-valor associados à skey. Exemplo: |
Exemplo:
EXTS.S.CREATE foo temperature DATA_ET 10000000 LABELS sensor_id 1
Saída:
OK
EXTS.S.ALTER
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Modifica os metadados de uma skey. Apenas |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Nome da skey |
|
|
Novo tempo de expiração relativo dos pontos de dados, em milissegundos. Padrão: sem expiração. |
Exemplo:
EXTS.S.ALTER foo temperature DATA_ET 100000
Saída:
OK
EXTS.S.ADD
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Insere um ponto de dados em uma skey. Crie o pkey ou a skey automaticamente se não existirem. Os parâmetros da skey ( |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Nome da skey |
|
|
Timestamp Unix do ponto de dados, em milissegundos. Use |
|
|
Valor do ponto de dados. Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo dos pontos de dados, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. Consulte EXTS.S.CREATE. |
|
|
Desativa a compressão para a skey. Por padrão, a compressão está ativada. |
|
|
Um ou mais pares rótulo-valor. Exemplo: |
Exemplo:
EXTS.S.ADD foo temperature * 30.5 DATA_ET 1000000 LABELS sensor_id 1
Saída:
OK
EXTS.S.MADD
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número de skeys |
|
Descrição |
Insere um ponto de dados em múltiplas skeys de um pkey em uma única chamada. Crie o pkey ou as skeys automaticamente se não existirem. Os parâmetros da skey só têm efeito quando ela é criada automaticamente. |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Número de registros skey-ts-value a inserir |
|
|
Nome da skey |
|
|
Timestamp Unix, em milissegundos. Use |
|
|
Valor do ponto de dados. Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. |
|
|
Desativa a compressão. Ativada por padrão. |
|
|
Um ou mais pares rótulo-valor. |
Exemplo:
EXTS.S.MADD foo 3 temperature * 30.2 pressure * 2.05 distance * 0.5
Saída:
1) OK
2) OK
3) OK
EXTS.S.INCRBY
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Insere um ponto de dados cujo valor corresponde ao valor do último ponto de dados mais |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Nome da skey |
|
|
Timestamp Unix, em milissegundos. Use |
|
|
Incremento (ou decremento, se negativo) a aplicar ao valor do último ponto de dados. Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. |
|
|
Desativa a compressão. Ativada por padrão. |
|
|
Um ou mais pares rótulo-valor. |
Exemplo:
Primeiro, adicione um ponto de dados inicial:
EXTS.S.ADD foo temperature 1644310456023 30.0
Em seguida, incremente-o:
EXTS.S.INCRBY foo temperature 1644372093031 2
Saída:
OK
Verifique o resultado:
EXTS.S.GET foo temperature
Saída:
1) (integer) 1644372093031
2) "32"
EXTS.S.MINCRBY
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número de skeys |
|
Descrição |
Insere pontos de dados em múltiplas skeys incrementando (ou decrementando) o último valor de cada skey. Crie o pkey ou as skeys automaticamente se não existirem. O valor inicial padrão é 0. |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Número de skeys |
|
|
Nome da skey |
|
|
Timestamp Unix, em milissegundos. Use |
|
|
Incremento (ou decremento, se negativo). Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. |
|
|
Desativa a compressão. Ativada por padrão. |
|
|
Um ou mais pares rótulo-valor. |
Exemplo:
EXTS.S.MINCRBY foo 3 temperature * 0.2 pressure * -0.1 distance * 0.0
Saída:
1) OK
2) OK
3) OK
EXTS.S.DEL
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Exclui uma skey e todos os seus pontos de dados de um pkey. |
|
Parameters |
|
|
Returns |
|
Exemplo:
EXTS.S.DEL foo temperature
Saída:
OK
EXTS.S.GET
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Retorna o ponto de dados mais recente em uma skey. |
|
Parameters |
|
|
Returns |
Ponto de dados mais recente (timestamp e valor) em caso de sucesso; |
Exemplo:
EXTS.S.GET foo temperature
Saída:
1) (integer) 1644372730150
2) "32.2"
EXTS.S.INFO
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Retorna os metadados de uma skey, incluindo contagem de pontos de dados, timestamp e valor mais recentes e informações de rótulo. |
|
Parameters |
|
|
Returns |
Metadados da skey em caso de sucesso; |
Exemplo:
EXTS.S.INFO foo temperature
Saída:
1) totalDataPoints // Number of data points
2) (integer) 1
3) maxDataPoints // Maximum data points the skey can hold (0 = no limit)
4) (integer) 0
5) maxDataPointsPerChunk // Data points per chunk
6) (integer) 32
7) dataPointsExpireTime // Relative expiration time in milliseconds (0 = no expiration)
8) (integer) 0
9) lastTimestamp // Timestamp of the latest data point
10) (integer) 1644389400996
11) chunkCount // Number of chunks in the skey
12) (integer) 1
13) lastValue // Value of the latest data point
14) (integer) 28
15) labels // Label information
16) 1) 1) "sensor_id"
2) "1"
EXTS.S.QUERYINDEX
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número máximo de conjuntos envolvidos nas condições de filtro |
|
Descrição |
Retorna skeys em um pkey que correspondem aos filtros de rótulo especificados. |
|
Parameters |
Veja abaixo |
|
Returns |
Nomes das skeys correspondentes em caso de sucesso; |
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Condições de filtro de rótulo. É necessária pelo menos uma condição EQ, CONTAINS ou LIST_MATCH. Consulte Sintaxe de filtragem de índice. |
Exemplo:
EXTS.S.QUERYINDEX foo sensor_id=1
Saída:
1) "temperature"
EXTS.S.RANGE
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número de chunks contendo os pontos de dados consultados |
|
Descrição |
Retorna pontos de dados em uma skey dentro de um intervalo de tempo fechado |
|
Parameters |
Veja abaixo |
|
Returns |
Pontos de dados (ou resultados de agregação) mais um token de continuação; |
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Nome da skey |
|
|
Início do intervalo de tempo, como timestamp Unix em milissegundos |
|
|
Fim do intervalo de tempo, como timestamp Unix em milissegundos. Use |
|
|
Número máximo de pontos de dados a retornar. Sem limite padrão. Limite superior: 1.000.000. |
|
|
Tipo de agregação (ex.: |
A resposta inclui um token de continuação como último elemento:
0: todos os pontos de dados correspondentes foram retornados1: alguns pontos de dados não foram incluídos. Use o timestamp do último ponto de dados retornado como o próximofromTspara recuperar os dados restantes.
Exemplo:
EXTS.S.RANGE foo test 1644459031662 * AGGREGATION AVG 10000 MAXCOUNT 2
Isso retorna o valor médio por bucket de 10 segundos, limitado a 2 resultados.
Saída:
1) 1) 1) (integer) 1644459730000
2) "20.6"
2) 1) (integer) 1644459790000
2) "21.2"
2) (integer) 1
O token 1 indica que existem mais pontos de dados além desses 2 resultados.
EXTS.S.MRANGE
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número de chunks contendo os pontos de dados consultados |
|
Descrição |
Retorna pontos de dados de múltiplas skeys que correspondem aos filtros de rótulo, dentro de um intervalo de tempo fechado |
|
Parameters |
Veja abaixo |
|
Returns |
Skeys correspondentes com seus pontos de dados em caso de sucesso; |
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Início do intervalo de tempo, como timestamp Unix em milissegundos |
|
|
Fim do intervalo de tempo, como timestamp Unix em milissegundos. Use |
|
|
Número máximo de pontos de dados a retornar por skey. Limite superior: 1.000.000. |
|
|
Tipo de agregação e tamanho do bucket de tempo em milissegundos (mínimo: 1.000). Os resultados são retornados no início de cada bucket. |
|
|
Inclui informações de rótulo na saída. Omitido por padrão. |
|
|
Condições de filtro de rótulo. É necessária pelo menos uma condição EQ, CONTAINS ou LIST_MATCH. Consulte Sintaxe de filtragem de índice. |
Exemplo:
EXTS.S.MRANGE foo 1644451031662 * AGGREGATION MAX 10000 WITHLABELS FILTER sensor_id=1
Saída:
1) 1) "temperature"
2) 1) 1) "sensor_id"
2) "1"
3) 1) 1) (integer) 1644481000000
2) "30"
4) (integer) 0
2) 1) "test"
2) 1) 1) "sensor_id"
2) "1"
3) 1) 1) (integer) 1644459730000
2) "20"
2) 1) (integer) 1644459790000
2) "20"
3) 1) (integer) 1644460620000
2) "29"
4) (integer) 0
EXTS.P.RANGE
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número de chunks contendo os pontos de dados consultados |
|
Descrição |
Agraga dados entre skeys em um pkey. As skeys correspondentes ao filtro são primeiro agregadas (como em EXTS.S.MRANGE) e, em seguida, os resultados das skeys são agregados no nível do pkey. |
|
Parameters |
Veja abaixo |
|
Returns |
Resultados de agregação no nível do pkey em caso de sucesso; |
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Início do intervalo de tempo, como timestamp Unix em milissegundos |
|
|
Fim do intervalo de tempo, como timestamp Unix em milissegundos. Use |
|
|
Tipo de agregação para agregação no nível do pkey. Consulte Sintaxe de agregação. |
|
|
Tamanho do bucket de tempo para agregação no nível do pkey, em milissegundos. Mínimo: 1.000. |
|
|
Número máximo de pontos de dados a retornar por skey. Limite superior: 1.000.000. |
|
|
Tipo de agregação e bucket de tempo para agregação no nível da skey, em milissegundos. Mínimo: 1.000. |
|
|
Condições de filtro de rótulo. É necessária pelo menos uma condição EQ, CONTAINS ou LIST_MATCH. Consulte Sintaxe de filtragem de índice. |
Exemplo:
EXTS.P.RANGE foo 1644451031662 * SUM 500000 AGGREGATION SUM 10000 FILTER sensor_id=1
Saída:
1) 1) 1) (integer) 1644459500000
2) "40"
2) 1) (integer) 1644460500000
2) "29"
3) 1) (integer) 1644481000000
2) "30"
2) (integer) 0
EXTS.S.RAW_MODIFY
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Defina o valor de um ponto de dados em um timestamp específico em uma skey. Crie o pkey ou a skey automaticamente se não existirem. Os parâmetros da skey só têm efeito quando ela é criada automaticamente. |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Nome da skey |
|
|
Timestamp Unix do ponto de dados a atualizar, em milissegundos |
|
|
Novo valor do ponto de dados. Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. |
|
|
Desativa a compressão. Ativada por padrão. |
|
|
Um ou mais pares rótulo-valor. |
Exemplo:
EXTS.S.RAW_MODIFY foo temperature 1644310456023 31.5
Saída:
OK
EXTS.S.RAW_MMODIFY
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número de skeys |
|
Descrição |
Defina os valores de múltiplos pontos de dados em timestamps específicos em uma única chamada. Crie o pkey ou as skeys automaticamente se não existirem. |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Número de registros skey-ts-value a atualizar |
|
|
Nome da skey |
|
|
Timestamp Unix do ponto de dados a atualizar, em milissegundos |
|
|
Novo valor do ponto de dados. Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. |
|
|
Desativa a compressão. Ativada por padrão. |
|
|
Um ou mais pares rótulo-valor. |
Exemplo:
EXTS.S.RAW_MMODIFY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5
Saída:
1) OK
2) OK
3) OK
EXTS.S.RAW_INCRBY
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(1) |
|
Descrição |
Modifica um ponto de dados em um timestamp específico somando ou subtraindo um valor. Crie o pkey ou a skey automaticamente se não existirem. O valor inicial padrão é 0. |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Nome da skey |
|
|
Timestamp Unix do ponto de dados a atualizar, em milissegundos |
|
|
Incremento (ou decremento, se negativo). Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. |
|
|
Desativa a compressão. Ativada por padrão. |
|
|
Um ou mais pares rótulo-valor. |
Exemplo:
Primeiro, adicione um ponto de dados inicial:
EXTS.S.ADD foo temperature 1644310456 30.0
Em seguida, aplique um incremento ao mesmo timestamp:
EXTS.S.RAW_INCRBY foo temperature 1644310456 3.3
Saída:
OK
Verifique o resultado:
EXTS.S.GET foo temperature
Saída:
1) (integer) 1644310456
2) "33.3"
EXTS.S.RAW_MINCRBY
|
Item |
Descrição |
|
Syntax |
|
|
Time complexity |
O(n), onde n é o número de pontos de dados |
|
Descrição |
Modifica múltiplos pontos de dados em timestamps específicos em uma única chamada. Crie o pkey ou as skeys automaticamente se não existirem. |
|
Parameters |
Veja abaixo |
|
Returns |
|
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do pkey |
|
|
Número de registros skey-ts-value a atualizar |
|
|
Nome da skey |
|
|
Timestamp Unix do ponto de dados a atualizar, em milissegundos |
|
|
Incremento (ou decremento, se negativo). Deve ser um número de ponto flutuante de precisão dupla. |
|
|
Tempo de expiração relativo, em milissegundos. Padrão: sem expiração. |
|
|
Tamanho do chunk, em unidades de 16 bytes. Valores válidos: 1–256. Padrão: 256. |
|
|
Desativa a compressão. Ativada por padrão. |
|
|
Um ou mais pares rótulo-valor. |
Exemplo:
EXTS.S.RAW_MINCRBY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5
Saída:
1) OK
2) OK
3) OK
Sintaxe de filtragem de índice
Use filtros de rótulo para selecionar skeys em EXTS.S.QUERYINDEX, EXTS.S.MRANGE e EXTS.P.RANGE. É necessária pelo menos uma condição EQ, CONTAINS ou LIST_MATCH.
|
Expressão de filtro |
Lógica |
Descrição |
|
|
EQ |
O rótulo |
|
|
CONTAINS |
O rótulo |
|
|
LIST_MATCH |
O rótulo |
|
|
NOEQ |
O rótulo |
|
|
NOCONTAINS |
O rótulo |
|
|
LIST_NOTMATCH |
O rótulo |
Sintaxe de agregação
A agregação agrupa pontos de dados dentro de cada bucket de tempo definido por timeBucket e calcula um único valor por bucket. Há suporte aos seguintes tipos de agregação:
|
Tipo |
Retorno |
|
|
Valor máximo |
|
|
Valor mínimo |
|
|
Valor médio |
|
|
Soma de todos os valores |
|
|
Primeiro valor no bucket |
|
|
Último valor no bucket |
|
|
Diferença entre os valores máximo e mínimo |
|
|
Número de valores |
|
|
Variância populacional |
|
|
Variância amostral |
|
|
Desvio padrão populacional |
|
|
Desvio padrão amostral |
FAQ
Por que o CHUNK_SIZE padrão é pequeno em algumas instâncias Tair baseadas em DRAM compatíveis com Redis 5.0?
A partir da versão 25.2.0.0, CHUNK_SIZE tem como padrão 256. Nas versões anteriores, o padrão é 32.