Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones de identificación de patrones multivariados

Última actualización: Sep 05, 2026

Simple Log Service utiliza la función de detección de anomalías para identificar automáticamente estados anómalos en los sistemas de servicio y sus causas raíz. Esta función combina el aprendizaje automático con el patrón actual de una métrica para detectar desviaciones del comportamiento normal. Las funciones de identificación de patrones multivariados admiten la detección de anomalías multidimensionales en métricas correlacionadas.

Lista de funciones de reconocimiento de patrones multivariados

Nombre de la función

Sintaxis

Descripción

Tipo de dato del valor de retorno

summarize function

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

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

Identifica y devuelve un patrón multivariado basado en las muestras y los pesos de muestra especificados. Los pesos de muestra son opcionales. Los patrones estadísticos abarcan diversas estadísticas y estadísticas conjuntas, como la media, la desviación estándar y la matriz de covarianza.

varchar

merge_summary function

  • merge_summary(varchar summary1, varchar summary2)

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

Combina patrones multivariados devueltos por la función summarize. Estos patrones pueden provenir del aprendizaje sobre el mismo conjunto de datos en diferentes etapas o del aprendizaje sobre dos conjuntos de datos independientes. Para obtener más información, consulte summarize function.

varchar

normalize_vector function

normalize_vector(varchar summary, array(double) x_vector)

Normaliza un nuevo vector de muestra especificado por el parámetro x_vector con base en un patrón definido por el parámetro summary. Asegúrese de que cada componente del vector se asigne al intervalo [0, 1]. Puede establecer el parámetro summary en un patrón devuelto por la función summarize. Para obtener más información, consulte summarize function.

array(double)

standardize_vector function

standardize_vector(varchar summary, array(double) x_vector)

Estandariza un nuevo vector de muestra especificado por el parámetro x_vector con base en un patrón definido por el parámetro summary. Asegúrese de que los componentes del vector tengan una media de 0 y una desviación estándar de 1. Puede establecer el parámetro summary en un patrón devuelto por la función summarize. Para obtener más información, consulte summarize function.

array(double)

mah_distance function

mah_distance(varchar summary, array(double) x_vector)

Calcula la distancia de Mahalanobis para un nuevo vector de muestra especificado por el parámetro x_vector con base en un patrón definido por el parámetro summary. Puede establecer el parámetro summary en un patrón devuelto por la función summarize. Para obtener más información, consulte summarize function. La distancia de Mahalanobis permite manejar eficazmente las diferencias de escala entre distintas variables. Esta métrica mide la distancia entre el vector de muestra especificado por el parámetro x_vector (una vez estandarizado) y el centroide del vector. Si la distancia de Mahalanobis es 1, la distancia entre el vector de muestra y el centroide equivale a la distancia promedio entre todos los vectores y dicho centroide.

double

standard_distance function

standard_distance(varchar summary, double metric_value, int element_index)

Calcula la distancia estandarizada para una métrica especificada por el parámetro metric_value con base en un patrón definido por el parámetro summary. Puede establecer el parámetro summary en un patrón devuelto por la función summarize. Para obtener más información, consulte summarize function. La distancia estandarizada es similar a la distancia de Mahalanobis. Mientras que la distancia de Mahalanobis mide la distancia estandarizada entre un vector compuesto por varias métricas y su centroide, la distancia estandarizada mide la distancia de una sola métrica dentro del vector respecto al centroide. El parámetro element_index especifica el índice de la métrica. El parámetro metric_value especifica el valor de la métrica.

double

anomaly_level function

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

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

Calcula la distancia de Mahalanobis para un nuevo vector de muestra especificado por el parámetro x_vector con base en un patrón definido por el parámetro summary, y redondea hacia abajo cada valor de distancia para obtener distintos niveles de probabilidad de anomalía. Puede establecer el parámetro summary en un patrón devuelto por la función summarize. Para obtener más información, consulte summarize function. Si el valor de retorno es 0.1, la probabilidad de que el nuevo vector de muestra sea anómalo es del 10 %, lo cual indica anomalías de primer nivel. Si el valor de retorno es 0.01, la probabilidad de anomalía es del 1 %, correspondiente a anomalías de segundo nivel. Si el valor de retorno es 0.001, la probabilidad es del 0.1 %, lo que señala anomalías de tercer nivel. Si el valor de retorno es 0.0001, la probabilidad es del 0.01 %, indicando anomalías de cuarto nivel. Un aumento en el nivel de anomalía implica una menor probabilidad de que el nuevo vector sea anómalo y un mayor grado de sospecha sobre dicho vector. En la mayoría de los casos, puede configurar un umbral para filtrar anomalías según los resultados de la detección. Por ejemplo, puede configurar un umbral para conservar únicamente las anomalías de cuarto nivel y superiores.

Si se especifica element_index, la función calcula la probabilidad de anomalía solo para el componente en el índice indicado. Si no se especifica, la función calcula la probabilidad de anomalía para todos los componentes.

array(double)

Función summarize

La función summarize identifica y devuelve un patrón multivariado basado en las muestras y los pesos de muestra especificados. Los pesos de muestra son opcionales. Los patrones estadísticos abarcan diversas estadísticas y estadísticas conjuntas, como la media, la desviación estándar y la matriz de covarianza.

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

O bien

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

Parámetro

Descripción

data_samples

Arreglo bidimensional que puede utilizarse como una tabla de dos dimensiones. Cada columna especifica una variable y cada fila especifica los valores de dicha variable para una muestra.

weights

Opcional. Arreglo unidimensional con la misma longitud que la primera dimensión de data_samples. Especifica el peso de cada muestra. Si no se indica, todas las muestras tienen el mismo peso.

Ejemplo

  • Instrucción 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 respuesta

    Parámetro

    Descripción

    sampleCount

    Número de muestras.

    vectorSize

    Longitud del vector.

    means

    Valor promedio de cada componente en todos los vectores.

    stdDevs

    Desviación estándar de cada componente en todos los vectores.

    variances

    Varianza de cada componente en todos los vectores.

    mins

    Valor mínimo de cada componente en todos los vectores.

    maxs

    Valor máximo de cada componente en todos los vectores.

    covariance

    Matriz de covarianza entre los componentes de todos los vectores.

    correlations

    Matriz de coeficientes de correlación entre los componentes de todos los vectores.

    sums

    Suma de cada componente en todos los vectores.

    weightSum

    Suma de todos los pesos de las muestras.

    sumProducts

    Resultado intermedio utilizado al combinar patrones estadísticos.

    isSummarized

    Indica si el cálculo del patrón estadístico se completó correctamente.

    • true: La solicitud fue exitosa.

    • false: La solicitud falló.

Función merge_summary

Puede utilizar summarize function para combinar patrones aprendidos en diferentes etapas, como patrones obtenidos del mismo conjunto de datos en distintos momentos o patrones provenientes de dos conjuntos de datos independientes.

varchar merge_summary(varchar summary1, varchar summary2)

O bien

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

Parámetro

Descripción

summary1

Patrón multivariado devuelto por la función summarize. Para obtener más información, consulte summarize function.

weight1

Peso global del patrón summary1.

summary2

Patrón derivado de summarize function.

weight2

Especifica el peso global del patrón summary2.

Ejemplo

  • Instrucción 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 de la consulta y el análisis

    statistical_summary representa el patrón 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

    Descripción

    sampleCount

    Número de muestras.

    vectorSize

    Longitud del vector.

    means

    Valor promedio de cada componente en todos los vectores.

    stdDevs

    Desviación estándar de cada componente en todos los vectores.

    variances

    Varianza de cada componente en todos los vectores.

    mins

    Valor mínimo de cada componente en todos los vectores.

    maxs

    Valor máximo de cada componente en todos los vectores.

    covariance

    Matriz de covarianza entre los componentes de todos los vectores.

    correlations

    Matriz de coeficientes de correlación entre los componentes de todos los vectores.

    sums

    Suma de cada componente en todos los vectores.

    weightSum

    Suma de todos los pesos de las muestras.

    sumProducts

    Resultado intermedio utilizado al combinar patrones estadísticos.

    isSummarized

    Indica si el cálculo del patrón estadístico se completó correctamente.

    • true: La solicitud fue exitosa.

    • false: La solicitud falló.

Función normalize_vector

Puede utilizar el resumen de patrón multivariado obtenido mediante summarize function para normalizar el nuevo vector de muestra x_vector, lo cual asigna cada uno de sus componentes al intervalo [0, 1].

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

Parámetro

Descripción

summary

Patrón derivado del proceso de aprendizaje de summarize function.

x_vector

Nuevos datos de muestra.

Ejemplo

  • Instrucción 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 de la consulta y el análisis

    El parámetro normalized_features indica los resultados de la normalización del vector de muestra especificado por el 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]

    ...

    ...

    ...

Función standardize_vector

Utilice el resumen de patrón multivariado de summarize function para estandarizar el nuevo vector de muestra x_vector de modo que sus componentes tengan una media de 0 y una desviación estándar de 1.

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

Parámetro

Descripción

summary

Patrón derivado del proceso de aprendizaje de summarize function.

x_vector

Nuevos datos de muestra.

Ejemplo

  • Instrucción 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 de la consulta y el análisis

    El parámetro standardized_features indica los resultados de la estandarización del vector de muestra especificado por el 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]

    ...

    ...

    ...

Función mah_distance

La función mah_distance calcula la distancia de Mahalanobis para un nuevo vector de muestra especificado por el parámetro x_vector con base en un patrón definido por el parámetro summary. Puede establecer el parámetro summary en un patrón devuelto por la función summarize. Para obtener más información, consulte summarize function. La distancia de Mahalanobis considera las diferencias de escala entre variables y mide la distancia entre el vector de muestra estandarizado y el centroide. Una distancia de Mahalanobis igual a 1 significa que el vector de muestra se encuentra a la distancia promedio del centroide respecto a todos los vectores.

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

Parámetro

Descripción

summary

Patrón derivado del proceso de aprendizaje de summarize function.

x_vector

Nuevos datos de muestra.

Ejemplo

  • Instrucción 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

    El parámetro std_distance indica la distancia de Mahalanobis del vector de muestra especificado por el parámetro x_vector.

    entity_id

    entity_group

    std_distance

    8

    A

    2.386927730244857

    7

    A

    1.6809080087793125

    1

    A

    1.5554594371997328

    ...

    ...

    ...

Función standard_distance

La función standard_distance calcula la distancia estandarizada para una métrica especificada por el parámetro metric_value con base en un patrón definido por el parámetro summary. Puede establecer el parámetro summary en un patrón devuelto por la función summarize. Para obtener más información, consulte summarize function. A diferencia de la distancia de Mahalanobis, que mide la distancia estandarizada entre un vector multimétrico y su centroide, la distancia estandarizada mide la distancia correspondiente a una sola métrica dentro del vector. El parámetro element_index especifica el índice de la métrica (comenzando desde 0). El parámetro metric_value especifica el valor de la métrica.

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

Parámetro

Descripción

summary

Patrón aprendido mediante summarize function.

metric_value

Nuevos datos de muestra

element_index

Índice de un elemento específico en el arreglo summary. El primer elemento tiene un índice de 0.

Ejemplo

  • Instrucción 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 de la consulta y el análisis

    std_distance es la distancia estandarizada de la muestra de entrada metric_value en el índice especificado.

    entity_id

    entity_group

    std_distance

    8

    A

    2.386927730244857

    7

    A

    1.6809080087793125

    1

    A

    1.5554594371997328

    ...

    ...

    ...

Función anomaly_level

La función anomaly_level calcula la distancia de Mahalanobis para un nuevo vector de muestra especificado por el parámetro x_vector, con base en un patrón definido por el parámetro summary, y redondea hacia abajo cada valor de distancia para obtener distintos niveles de probabilidad de anomalía. El parámetro summary se puede establecer con un patrón devuelto por la función summarize. Para más información, consulte summarize function. Un valor de retorno de 0.1 indica una probabilidad de anomalía del 10 % (anomalía de primer nivel). Un valor de 0.01 indica una probabilidad del 1 % (segundo nivel). Un valor de 0.001 indica un 0.1 % (tercer nivel). Un valor de 0.0001 indica un 0.01 % (cuarto nivel). Los niveles de anomalía más altos corresponden a probabilidades menores y a una mayor sospecha de anomalías. Configure un umbral para filtrar los resultados; por ejemplo, conserve solo las anomalías de cuarto nivel en adelante.

Si especifica el parámetro element_index, la función calcula la probabilidad de anomalía únicamente para el componente en ese índice. De lo contrario, calcula la probabilidad de anomalía para todo el vector.

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

O bien

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

Parámetro

Descripción

summary

The summarize function utiliza un proceso de aprendizaje para generar un patrón.

x_vector

Los nuevos datos de muestra.

element_index

Opcional. El elemento en el índice especificado dentro del arreglo x_vector.

Ejemplo

  • Instrucción 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 de la consulta y el análisis

    El parámetro anomaly_level indica la probabilidad de anomalía del vector de muestra especificado por el parámetro x_vector.

    group_id

    object_id

    anomaly_level

    G1

    1007

    13.0

    G1

    1006

    5.0

    G1

    1005

    4.0

    ...

    ...

    ...