Todos os produtos
Search
Central de documentação

Simple Log Service:Funções de identificação de padrões multivariados

Última atualização: Jul 03, 2026

O Simple Log Service usa o recurso de detecção de anomalias para identificar automaticamente estados anormais em sistemas de serviço e suas causas raiz. Esse recurso combina aprendizado de máquina com o padrão atual de uma métrica para detectar desvios do comportamento normal. As funções de identificação de padrões multivariados permitem a detecção de anomalias multidimensionais em métricas correlacionadas.

Lista de funções de reconhecimento de padrões multivariados

Nome da função

Sintaxe

Descrição

Tipo de dados do valor de retorno

função summarize

  • summarize(array(array(double)) data_samples)

  • summarize(array(array(double)) data_samples, array(double) weights)

Identifica e retorna um padrão multivariado com base nas amostras e nos pesos especificados. Os pesos das amostras são opcionais. Os padrões estatísticos abrangem diversas estatísticas e estatísticas conjuntas, como média, desvio padrão e matriz de covariância.

varchar

função merge_summary

  • merge_summary(varchar summary1, varchar summary2)

  • merge_summary(varchar summary1, double weight1, varchar summary2, double weight2)

Mescla padrões multivariados retornados pela função summarize. Esses padrões podem ser obtidos por aprendizado do mesmo conjunto de dados em etapas diferentes ou de dois conjuntos de dados independentes. Para mais informações, consulte função summarize.

varchar

função normalize_vector

normalize_vector(varchar summary, array(double) x_vector)

Normaliza um novo vetor de amostra especificado pelo parâmetro x_vector com base em um padrão definido pelo parâmetro summary. Garanta que cada componente do vetor seja mapeado para o intervalo [0, 1]. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize.

array(double)

função standardize_vector

standardize_vector(varchar summary, array(double) x_vector)

Padroniza um novo vetor de amostra especificado pelo parâmetro x_vector com base em um padrão definido pelo parâmetro summary. Assegure que os componentes do vetor tenham média 0 e desvio padrão 1. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize.

array(double)

função mah_distance

mah_distance(varchar summary, array(double) x_vector)

Calcula a distância de Mahalanobis para um novo vetor de amostra especificado pelo parâmetro x_vector com base em um padrão definido pelo parâmetro summary. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize. A distância de Mahalanobis lida eficazmente com diferenças de escala entre variáveis. Ela mede a distância entre o vetor de amostra especificado pelo parâmetro x_vector (após padronização) e o centroide do vetor. Se a distância de Mahalanobis for 1, a distância entre o vetor de amostra e o centroide é igual à distância média entre todos os vetores e o centroide.

double

função standard_distance

standard_distance(varchar summary, double metric_value, int element_index)

Calcula a distância padronizada para uma métrica especificada pelo parâmetro metric_value com base em um padrão definido pelo parâmetro summary. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize. A distância padronizada assemelha-se à distância de Mahalanobis. Enquanto a distância de Mahalanobis mede a distância padronizada entre um vetor composto por múltiplas métricas e seu centroide, a distância padronizada mede a distância de uma única métrica dentro do vetor em relação ao centroide. O parâmetro element_index especifica o índice da métrica. O parâmetro metric_value especifica o valor da métrica.

double

função anomaly_level

  • anomaly_level(varchar summary, array(double) x_vector)

  • anomaly_level(varchar summary, array(double) x_vector, int element_index)

Calcula a distância de Mahalanobis para um novo vetor de amostra especificado pelo parâmetro x_vector com base em um padrão definido pelo parâmetro summary e arredonda cada valor de distância para baixo, obtendo diferentes níveis de probabilidade de anomalia. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize. Se o valor retornado for 0.1, a probabilidade de o novo vetor de amostra ser anômalo é de 10%, indicando anomalias de primeiro nível. Se for 0.01, a probabilidade é de 1% (segundo nível). Se for 0.001, a probabilidade é de 0.1% (terceiro nível). Se for 0.0001, a probabilidade é de 0.01% (quarto nível). Quanto maior o nível de anomalia, menor a probabilidade de ocorrência e maior a suspeita sobre o vetor. Na maioria dos casos, configure um limiar para filtrar anomalias com base nos resultados da detecção. Por exemplo, defina um limiar para reter apenas anomalias de quarto nível e superiores.

Se element_index for especificado, a função calcula a probabilidade de anomalia apenas para o componente no índice indicado. Caso contrário, o cálculo abrange todos os componentes.

array(double)

Função summarize

A função summarize identifica e retorna um padrão multivariado com base nas amostras e nos pesos especificados. Os pesos das amostras são opcionais. Os padrões estatísticos abrangem diversas estatísticas e estatísticas conjuntas, como média, desvio padrão e matriz de covariância.

varchar summarize(array(array(double)) data_samples)

Ou

varchar summarize(array(array(double)) data_samples, array(double) weights)

Parâmetro

Descrição

data_samples

Array bidimensional utilizável como tabela de duas dimensões. Cada coluna representa uma variável e cada linha representa os valores das variáveis de uma amostra.

weights

Opcional. Array unidimensional com o mesmo comprimento da primeira dimensão de data_samples. Especifica o peso de cada amostra. Se não for especificado, todas as amostras terão pesos iguais.

Exemplo

  • Instrução de consulta

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    )
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
  • Valor de retorno

    entity_group

    statistical_summary

    A

    {
      "sampleCount": 8,
      "vectorSize": 4,
      "means": [
        11.5,
        12.5,
        9.25,
        0.0
      ],
      "stdDevs": [
        6.87386354243376,
        6.87386354243376,
        7.361215932167728,
        0.0
      ],
      "variances": [
        47.25,
        47.25,
        54.1875,
        0.0
      ],
      "mins": [
        1.0,
        2.0,
        1.0,
        0.0
      ],
      "maxs": [
        22.0,
        23.0,
        21.0,
        0.0
      ],
      "covariance": [
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          19.125,
          19.125,
          54.1875,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "correlations": [
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          0.37796447300922725,
          0.37796447300922725,
          1.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ],
      "sums": [
        92.0,
        100.0,
        74.0,
        0.0
      ],
      "weightSum": 8.0,
      "sumProducts": [
        [
          1436.0,
          1528.0,
          1004.0,
          0.0
        ],
        [
          1528.0,
          1628.0,
          1078.0,
          0.0
        ],
        [
          1004.0,
          1078.0,
          1118.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "isSummarized": true
    }
    

    Parâmetros de resposta

    Parâmetro

    Descrição

    sampleCount

    Número de amostras.

    vectorSize

    Comprimento do vetor.

    means

    Valor médio de cada componente em todos os vetores.

    stdDevs

    Desvio padrão de cada componente em todos os vetores.

    variances

    Variância de cada componente em todos os vetores.

    mins

    Valor mínimo de cada componente em todos os vetores.

    maxs

    Valor máximo de cada componente em todos os vetores.

    covariance

    Matriz de covariância entre os componentes de todos os vetores.

    correlations

    Matriz de coeficientes de correlação entre os componentes de todos os vetores.

    sums

    Soma de cada componente em todos os vetores.

    weightSum

    Soma de todos os pesos das amostras.

    sumProducts

    Resultado intermediário usado na mesclagem de padrões estatísticos.

    isSummarized

    Indica se o cálculo do padrão estatístico foi concluído normalmente.

    • true: A solicitação foi bem-sucedida.

    • false: A solicitação falhou.

Função merge_summary

Use a função summarize para mesclar padrões aprendidos em diferentes etapas, como padrões obtidos do mesmo conjunto de dados em momentos distintos ou padrões provenientes de dois conjuntos de dados independentes.

varchar merge_summary(varchar summary1, varchar summary2)

Ou

varchar merge_summary(varchar summary1, double weight1, varchar summary2, double weight2)

Parâmetro

Descrição

summary1

Padrão multivariado retornado pela função summarize. Para mais informações, consulte função summarize.

weight1

Peso global para o padrão summary1.

summary2

Padrão derivado da função summarize.

weight2

Define o peso global para o padrão summary2.

Exemplo

  • Instrução de consulta

    * | with data_table_01 as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features
    ),
    
    summaries_01 as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table_01
        group by entity_group
    ),
    
    data_table_02 as
    (
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries_02 as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table_02
        group by entity_group
    )
    select s1.entity_group,
        merge_summary(s1.statistical_summary, s2.statistical_summary) as statistical_summary
    from summaries_01 as s1
        join summaries_02 as s2
        on s1.entity_group = s2.entity_group
  • Resultados da consulta e análise

    statistical_summary representa o padrão agregado.

    entity_group

    statistical_summary

    2

    {
      "sampleCount": 8,
      "vectorSize": 4,
      "means": [
        11.5,
        12.5,
        9.25,
        0.0
      ],
      "stdDevs": [
        6.87386354243376,
        6.87386354243376,
        7.361215932167728,
        0.0
      ],
      "variances": [
        47.25,
        47.25,
        54.1875,
        0.0
      ],
      "mins": [
        1.0,
        2.0,
        1.0,
        0.0
      ],
      "maxs": [
        22.0,
        23.0,
        21.0,
        0.0
      ],
      "covariance": [
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          19.125,
          19.125,
          54.1875,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "correlations": [
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          0.37796447300922725,
          0.37796447300922725,
          1.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ],
      "sums": [
        92.0,
        100.0,
        74.0,
        0.0
      ],
      "weightSum": 8.0,
      "sumProducts": [
        [
          1436.0,
          1528.0,
          1004.0,
          0.0
        ],
        [
          1528.0,
          1628.0,
          1078.0,
          0.0
        ],
        [
          1004.0,
          1078.0,
          1118.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "isSummarized": true
    }

    Parâmetros de retorno:

    Parâmetro

    Descrição

    sampleCount

    Número de amostras.

    vectorSize

    Comprimento do vetor.

    means

    Valor médio de cada componente em todos os vetores.

    stdDevs

    Desvio padrão de cada componente em todos os vetores.

    variances

    Variância de cada componente em todos os vetores.

    mins

    Valor mínimo de cada componente em todos os vetores.

    maxs

    Valor máximo de cada componente em todos os vetores.

    covariance

    Matriz de covariância entre os componentes de todos os vetores.

    correlations

    Matriz de coeficientes de correlação entre os componentes de todos os vetores.

    sums

    Soma de cada componente em todos os vetores.

    weightSum

    Soma de todos os pesos das amostras.

    sumProducts

    Resultado intermediário usado na mesclagem de padrões estatísticos.

    isSummarized

    Indica se o cálculo do padrão estatístico foi concluído normalmente.

    • true: A solicitação foi bem-sucedida.

    • false: A solicitação falhou.

Função normalize_vector

Use o resumo de padrão multivariado obtido pela função summarize para normalizar o novo vetor de amostra x_vector, mapeando cada um de seus componentes para o intervalo [0, 1].

array(double) normalize_vector(varchar summary, array(double) x_vector)

Parâmetro

Descrição

summary

Padrão derivado do processo de aprendizado da função summarize.

x_vector

Novos dados de amostra.

Exemplo

  • Instrução de consulta

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        normalize_vector(t2.statistical_summary, t1.features) as normalized_features
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
  • Resultados da consulta e análise

    O parâmetro normalized_features indica os resultados da normalização do vetor de amostra especificado pelo parâmetro x_vector.

    entity_id

    entity_group

    normalized_features

    2

    A

    [0.14285714285714286,0.14285714285714286,0.25,0.5]

    4

    A

    [0.42857142857142857,0.42857142857142857,0.0,0.5]

    3

    A

    [0.2857142857142857,0.2857142857142857,0.4,0.5]

    ...

    ...

    ...

Função standardize_vector

Use o resumo de padrão multivariado da função summarize para padronizar o novo vetor de amostra x_vector, de modo que seus componentes tenham média 0 e desvio padrão 1.

array(double) standardize_vector(varchar summary, array(double) x_vector)

Parâmetro

Descrição

summary

Padrão derivado do processo de aprendizado da função summarize.

x_vector

Novos dados de amostra.

Exemplo

  • Instrução de consulta

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        standardize_vector(t2.statistical_summary, t1.features) as standardized_features
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
  • Resultados da consulta e análise

    O parâmetro standardized_features indica os resultados da padronização do vetor de amostra especificado pelo parâmetro x_vector.

    entity_id

    entity_group

    standardized_features

    2

    A

    [-1.0910894511799619,-1.0910894511799619,-0.4415031470273609,0.0]

    4

    A

    [-0.21821789023599237,-0.21821789023599237,-1.1207387578386854,0.0]

    3

    A

    [-0.6546536707079771,-0.6546536707079771,-0.03396178054056622,0.0]

    ...

    ...

    ...

Função mah_distance

A função mah_distance calcula a distância de Mahalanobis para um novo vetor de amostra especificado pelo parâmetro x_vector com base em um padrão definido pelo parâmetro summary. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize. A distância de Mahalanobis considera as diferenças de escala entre variáveis e mede a distância entre o vetor de amostra padronizado e o centroide. Uma distância de Mahalanobis igual a 1 significa que o vetor de amostra está à distância média do centroide em relação a todos os vetores.

double mah_distance(varchar summary, array(double) x_vector)

Parâmetro

Descrição

summary

Padrão derivado do processo de aprendizado da função summarize.

x_vector

Novos dados de amostra.

Exemplo

  • Instrução de consulta

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        mah_distance(t2.statistical_summary, t1.features) as std_distance
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
  • Valor de retorno

    O parâmetro std_distance indica a distância de Mahalanobis do vetor de amostra especificado pelo parâmetro x_vector.

    entity_id

    entity_group

    std_distance

    8

    A

    2.386927730244857

    7

    A

    1.6809080087793125

    1

    A

    1.5554594371997328

    ...

    ...

    ...

Função standard_distance

A função standard_distance calcula a distância padronizada para uma métrica especificada pelo parâmetro metric_value com base em um padrão definido pelo parâmetro summary. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize. Diferentemente da distância de Mahalanobis, que mede a distância padronizada entre um vetor multimétrico e seu centroide, a distância padronizada mede a distância para uma única métrica dentro do vetor. O parâmetro element_index especifica o índice da métrica (começando em 0). O parâmetro metric_value especifica o valor da métrica.

double standard_distance(varchar summary, double metric_value, int element_index)

Parâmetro

Descrição

summary

Padrão aprendido pela função summarize.

metric_value

Novos dados de amostra

element_index

Índice de um elemento específico no array summary. O primeiro elemento tem índice 0.

Exemplo

  • Instrução de consulta

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        standard_distance(t2.statistical_summary, 30, 1) as std_distance
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
    
  • Resultados da consulta e análise

    std_distance representa a distância padronizada da amostra de entrada metric_value no índice especificado.

    entity_id

    entity_group

    std_distance

    8

    A

    2.386927730244857

    7

    A

    1.6809080087793125

    1

    A

    1.5554594371997328

    ...

    ...

    ...

Função anomaly_level

A função anomaly_level calcula a distância de Mahalanobis para um novo vetor de amostra especificado pelo parâmetro x_vector com base em um padrão definido pelo parâmetro summary e arredonda cada valor de distância para baixo, obtendo diferentes níveis de probabilidade de anomalia. Defina o parâmetro summary como um padrão retornado pela função summarize. Para mais informações, consulte função summarize. Um valor de retorno de 0.1 indica 10% de probabilidade de anomalia (primeiro nível). Um valor de 0.01 indica 1% (segundo nível). Um valor de 0.001 indica 0.1% (terceiro nível). Um valor de 0.0001 indica 0.01% (quarto nível). Níveis de anomalia mais altos correspondem a probabilidades menores e maior suspeita de anomalias. Configure um limiar para filtrar resultados, por exemplo, retendo apenas anomalias de quarto nível e superiores.

Se você especificar o parâmetro element_index, a função calcula a probabilidade de anomalia apenas para o componente nesse índice. Caso contrário, ela calcula a probabilidade de anomalia para todo o vetor.

double anomaly_level(varchar summary, array(double) x_vector)

Ou

double anomaly_level(varchar summary, array(double) x_vector, int element_index)

Parâmetro

Descrição

summary

A função summarize usa um processo de aprendizado para gerar um padrão.

x_vector

Novos dados de amostra.

element_index

Opcional. Elemento no índice especificado do array x_vector.

Exemplo

  • Instrução de consulta

    * |
    with dummy as
    (
        select sequence(1, 1000) as seq_data,
            count(*) as record_count from log
    ),
    
    sample_data as
    (
        select 'G1' as group_id,
            s.seq_num,
             -- Generate 1,000 two-dimensional random vectors that are distributed around the (100, 5000) range. The standard deviation values of two components are 20 and 500.
            inverse_normal_cdf(100, 20, random()) as x1,
            inverse_normal_cdf(5000, 500, rand()) as x2
        from dummy,
            unnest(seq_data) as s(seq_num)
    ),
    
    data_summary as
    (
        select group_id,
            summarize(array_agg(array[x1, x2])) as metric_summary
        from sample_data
        group by group_id
    ),
    
    new_data as
    (
        select 'G1' as group_id, 1001 as object_id, 100.0 as x1, 5000.0 as x2
        union all select 'G1' as group_id, 1002 as object_id, 118.0 as x1, 5450.0 as x2
        union all select 'G1' as group_id, 1003 as object_id, 138.0 as x1, 5950.0 as x2
        union all select 'G1' as group_id, 1004 as object_id, 158.0 as x1, 6450.0 as x2
        union all select 'G1' as group_id, 1005 as object_id, 178.0 as x1, 6950.0 as x2
        union all select 'G1' as group_id, 1006 as object_id, 198.0 as x1, 7450.0 as x2
        union all select 'G1' as group_id, 1007 as object_id, 318.0 as x1, 10000.0 as x2
    )
    
    select n.group_id,
        json_extract(s.metric_summary, '$.means') as metric_vector_mean,
        json_extract(s.metric_summary, '$.covariance') as metric_covariance,
        n.object_id,
        n.x1,
        n.x2,
        anomaly_level(s.metric_summary, array[x1, x2]) as anomaly_level
    from data_summary as s
        join new_data as n
            on s.group_id = n.group_id
    order by n.group_id, n.object_id
    limit 100000
    
  • Resultados da consulta e análise

    O parâmetro anomaly_level indica a probabilidade de anomalia do vetor de amostra especificado pelo parâmetro x_vector.

    group_id

    object_id

    anomaly_level

    G1

    1007

    13.0

    G1

    1006

    5.0

    G1

    1005

    4.0

    ...

    ...

    ...