Todos os produtos
Search
Central de documentação

:Funções de previsão e detecção de anomalias

Última atualização: Jul 03, 2026

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

ts_predicate_simple

Usa parâmetros padrão para modelar dados de séries temporais e executa previsão simples e detecção de anomalias.

ts_predicate_ar

Emprega um modelo autorregressivo (AR) para modelar dados de séries temporais, realizando previsão simples e detecção de anomalias.

ts_predicate_arma

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.

ts_predicate_arima

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.

ts_regression_predict

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.

ts_anomaly_filter

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 The following figure shows the output result.

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)
Nota

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) 
Nota

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)
Nota

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:

  • origin: usa o algoritmo Gradient Boosted Regression Tree (GBRT) para previsão.

  • forest: usa o algoritmo GBRT para previsão com base nos componentes de tendência decompostos por Seasonal and Trend decomposition using Loess (STL) e aplica o modelo aditivo para somar os componentes decompostos e obter os dados previstos.

  • linear: emprega o algoritmo de Regressão Linear para previsão com base nos componentes de tendência decompostos por STL e utiliza o modelo aditivo para somar os componentes decompostos e obter os dados previstos.

processType

Especifica se os dados devem ser pré-processados.

Valores válidos:

  • 0: Nenhum pré-processamento adicional de dados é executado.

  • 1: Dados anômalos são removidos antes da previsão.

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 The following figure shows the output result.

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:

  • 0: todas as anomalias

  • 1: anomalias positivas

  • -1: anomalias negativas

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] |