Para detectar anomalias, use uma função de previsão e detecção de anomalias. Essa função prevê a curva de séries temporais e identifica o Ksigma e os quantis dos erros entre a curva prevista e a real.
Lista de funções
|
Função |
Descrição |
|
Usa parâmetros padrão para modelar dados de séries temporais e executa previsão simples e detecção de anomalias. |
|
|
Emprega um modelo autorregressivo (AR) para modelar dados de séries temporais, realizando previsão simples e detecção de anomalias. |
|
|
Aplica um modelo de média móvel autorregressiva (ARMA) na modelagem de dados de séries temporais para previsão simples e detecção de anomalias. |
|
|
Utiliza um modelo de média móvel integrada autorregressiva (ARIMA) para modelar dados de séries temporais e executar previsão simples e detecção de anomalias. |
|
|
Prevê com precisão a tendência de uma curva periódica de séries temporais. Cenário: Adequada para prever dados de medição, tráfego de rede, dados financeiros e outros dados comerciais que seguem regras específicas. |
|
|
Filtra as anomalias detectadas em múltiplas curvas de séries temporais com base no modo de anomalia personalizado. Esta função auxilia na identificação rápida de curvas anormais. |
ts_predicate_simple
Formato da função:
select ts_predicate_simple(x, y, nPred, isSmooth)
A tabela a seguir lista os parâmetros da função.
|
Parâmetro |
Descrição |
Valor |
|
x |
A sequência temporal. Os pontos no tempo são ordenados em ordem crescente ao longo do eixo horizontal. |
Cada ponto no tempo é um timestamp Unix. Unidade: segundos. |
|
y |
A sequência de dados numéricos correspondente a cada ponto no tempo especificado. |
N/A. |
|
nPred |
O número de pontos para previsão. |
O valor é do tipo de dados long e deve ser igual ou superior a 1. |
|
isSmooth |
Especifica se os dados brutos devem ser filtrados. |
O valor é do tipo de dados Boolean. O valor padrão é true, o que indica que os dados brutos são filtrados. |
Exemplo:
-
Instrução de consulta:
* | select ts_predicate_simple(stamp, value, 6) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp) Resultado da saída

A tabela a seguir lista os itens de exibição.
Item de exibição | Descrição | |
Eixo horizontal | unixtime | O timestamp Unix dos dados. Unidade: segundos. |
Eixo vertical | src | Os dados brutos. |
predict | Dados gerados após a filtragem. | |
upper | Limite superior do intervalo de confiança. O nível de confiança é 0,85 e não pode ser modificado. | |
lower | Limite inferior do intervalo de confiança. O nível de confiança é 0,85 e não pode ser modificado. | |
anomaly_prob | Probabilidade de o ponto ser uma anomalia. Valores válidos: [0, 1]. | |
ts_predicate_ar
Formato da função:
select ts_predicate_ar(x, y, p, nPred, isSmooth)
A tabela a seguir lista os parâmetros da função.
|
Parâmetro |
Descrição |
Valor |
|
x |
A sequência temporal. Os pontos no tempo são ordenados em ordem crescente ao longo do eixo horizontal. |
Cada ponto no tempo é um timestamp Unix. Unidade: segundos. |
|
y |
A sequência de dados numéricos correspondente a cada ponto no tempo especificado. |
N/A. |
|
p |
A ordem do modelo AR. |
O valor é do tipo de dados long. Valores válidos: 2, 3, 4, 5, 6, 7 e 8. |
|
nPred |
O número de pontos para previsão. |
O valor é do tipo de dados long. Valores válidos: [1, 5 × p]. |
|
isSmooth |
Especifica se os dados brutos devem ser filtrados. |
O valor é do tipo de dados Boolean. O valor padrão é true, o que indica que os dados brutos são filtrados. |
Exemplo de instrução de consulta:
* | select ts_predicate_ar(stamp, value, 3, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
O resultado da saída é semelhante ao da função ts_predicate_simple. Para mais detalhes, consulte o resultado da saída da função ts_predicate_simple.
ts_predicate_arma
Formato da função:
select ts_predicate_arma(x, y, p, q, nPred, isSmooth)
A tabela a seguir lista os parâmetros da função.
|
Parâmetro |
Descrição |
Valor |
|
x |
A sequência temporal. Os pontos no tempo são ordenados em ordem crescente ao longo do eixo horizontal. |
Cada ponto no tempo é um timestamp Unix. Unidade: segundos. |
|
y |
A sequência de dados numéricos correspondente a cada ponto no tempo especificado. |
N/A. |
|
p |
A ordem do modelo AR. |
O valor é do tipo de dados long. Valores válidos: [2, 100]. |
|
q |
A ordem do modelo ARMA. |
O valor é do tipo de dados long. Valores válidos: 2, 3, 4, 5, 6, 7 e 8. |
|
nPred |
O número de pontos para previsão. |
O valor é do tipo de dados long. Valores válidos: [1, 5 × p]. |
|
isSmooth |
Especifica se os dados brutos devem ser filtrados. |
O valor é do tipo de dados Boolean. O valor padrão é true, o que indica que os dados brutos são filtrados. |
Exemplo de instrução de consulta:
* | select ts_predicate_arma(stamp, value, 3, 2, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
O resultado da saída é semelhante ao da função ts_predicate_simple. Para mais detalhes, consulte o resultado da saída da função ts_predicate_simple.
ts_predicate_arima
Formato da função:
select ts_predicate_arima(x, y, p, d, q, nPred, isSmooth)
A tabela a seguir lista os parâmetros da função.
|
Parâmetro |
Descrição |
Valor |
|
x |
A sequência temporal. Os pontos no tempo são ordenados em ordem crescente ao longo do eixo horizontal. |
Cada ponto no tempo é um timestamp Unix. Unidade: segundos. |
|
y |
A sequência de dados numéricos correspondente a cada ponto no tempo especificado. |
N/A. |
|
p |
A ordem do modelo AR. |
O valor é do tipo de dados long. Valores válidos: 2, 3, 4, 5, 6, 7 e 8. |
|
d |
A ordem do modelo ARIMA. |
O valor é do tipo de dados long. Valores válidos: [1, 3]. |
|
q |
A ordem do modelo ARMA. |
O valor é do tipo de dados long. Valores válidos: 2, 3, 4, 5, 6, 7 e 8. |
|
nPred |
O número de pontos para previsão. |
O valor é do tipo de dados long. Valores válidos: [1, 5 × p]. |
|
isSmooth |
Especifica se os dados brutos devem ser filtrados. |
O valor é do tipo de dados Boolean. O valor padrão é true, o que indica que os dados brutos são filtrados. |
Exemplo de instrução de consulta:
* | select ts_predicate_arima(stamp, value, 3, 1, 2, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
O resultado da saída é semelhante ao da função ts_predicate_simple. Para mais detalhes, consulte o resultado da saída da função ts_predicate_simple.
ts_regression_predict
Formato da função:
select ts_regression_predict(x, y, nPred, algotype,processType)
A tabela a seguir lista os parâmetros da função.
Parâmetro | Descrição | Valor |
x | A sequência temporal. Os pontos no tempo são ordenados em ordem crescente ao longo do eixo horizontal. | Cada ponto no tempo é um timestamp Unix. Unidade: segundos. |
y | A sequência de dados numéricos correspondente a cada ponto no tempo especificado. | N/A. |
nPred | O número de pontos para previsão. | O valor é do tipo de dados long. Valores válidos: [1, 500]. |
algotype | O tipo de algoritmo para previsão. | Valores válidos:
|
processType | Especifica se os dados devem ser pré-processados. | Valores válidos:
|
Exemplo:
-
Instrução de consulta:
* and h : nu2h05202.nu8 and m: NET | select ts_regression_predict(stamp, value, 200, 'origin') from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log group by stamp order by stamp) Resultado da saída

A tabela a seguir lista os itens de exibição.
Item de exibição | Descrição | |
Eixo horizontal | unixtime | O timestamp Unix dos dados. Unidade: segundos. |
Eixo vertical | src | Os dados brutos. |
predict | Dados gerados após a filtragem. | |
ts_anomaly_filter
Formato da função:
select ts_anomaly_filter(lineName, ts, ds, preds, probs, nWatch, anomalyType)
A tabela a seguir lista os parâmetros da função.
Parâmetro | Descrição | Valor |
lineName | Nome de cada curva. O valor é do tipo varchar. | N/A |
ts | Sequência temporal da curva, indicando o tempo na curva atual. O valor do parâmetro é um array de pontos no tempo do tipo de dados double, ordenados em ordem crescente. | N/A |
ds | Sequência de valores reais da curva. O valor do parâmetro é um array de pontos de dados do tipo de dados double. Este valor tem o mesmo comprimento que o valor do parâmetro ts. | N/A |
preds | Sequência de valores previstos da curva. O valor do parâmetro é um array de pontos de dados do tipo de dados double. Este valor tem o mesmo comprimento que o valor do parâmetro ts. | N/A |
probs | Sequência de resultados da detecção de anomalias da curva. O valor do parâmetro é um array de pontos de dados do tipo de dados double. Este valor tem o mesmo comprimento que o valor do parâmetro ts. | N/A |
nWatch | Número de valores reais observados recentemente na curva. O valor é do tipo de dados long e deve ser menor que o número de pontos no tempo na curva. | N/A |
anomalyType | Tipo de anomalia a ser filtrado. O valor é do tipo de dados long. | Valores válidos:
|
Exemplo:
-
Instrução de consulta:
* | select res.name, res.ts, res.ds, res.preds, res.probs from ( select ts_anomaly_filter(name, ts, ds, preds, probs, cast(5 as bigint), cast(1 as bigint)) as res from ( select name, res[1] as ts, res[2] as ds, res[3] as preds, res[4] as uppers, res[5] as lowers, res[6] as probs from ( select name, array_transpose(ts_predicate_ar(stamp, value, 10)) as res from ( select name, stamp, value from log where name like '%asg-%') group by name)) ); -
Resultado da saída
| name | ts | ds | preds | probs | | ------------------------ | ---------------------------------------------------- | ----------- | --------- | ----------- | | asg-bp1hylzdi2wx7civ0ivk | [1.5513696E9, 1.5513732E9, 1.5513768E9, 1.5513804E9] | [1,2,3,NaN] | [1,2,3,4] | [0,0,1,NaN] |