Todos los productos
Search
Centro de documentos

Simple Log Service:Función de minería de patrones (análisis detallado de datos tabulares)

Última actualización: Sep 02, 2026

La función de minería de patrones analiza muestras con varios atributos según condiciones específicas. Identifica patrones distintivos que afectan la partición de datos y le permite determinar rápidamente las causas de las diferencias entre condiciones.

diff_patterns

Esta función compara dos conjuntos de datos con la misma estructura para identificar patrones de atributos discretos (dimensiones) diferentes. Está diseñada para comparar plantillas (conjuntos de elementos frecuentes) en datos tabulares.

Sintaxis

diff_patterns($TABLE, $HEADER, $SPLIT_COLUMN, $TEST_VAL, $CONTROL_VAL, $METRIC_COLUMN, $WEIGHT_COLUMN, $PARAM)

Parámetros

Importante

Al usar la función de estadísticas de diferencia de patrones, asegúrese de que $SPLIT_COLUMN contenga filas tanto para $TEST_VAL como para $CONTROL_VAL. La función no puede comparar si faltan los datos del grupo de prueba o del grupo de control.

Parámetro

Tipo de datos

Obligatorio

Descripción

$TABLE

row<array<T>, array<E>, ..., array<F>>

Sí

Tabla de entrada para la función diff_patterns. Cada columna es una columna de dimensión para el análisis detallado.

$HEADER

array<varchar>

Sí

Nombres de las columnas. Deben corresponder a las columnas en $TABLE. El número de nombres de encabezado debe coincidir con el número de columnas de la tabla.

$SPLIT_COLUMN

varchar

Sí

Nombre de la columna objetivo utilizada para distinguir entre grupos. Actualmente, la categoría de etiqueta solo admite el tipo de cadena.

$TEST_VAL

varchar

Sí

Valor en $SPLIT_COLUMN correspondiente al grupo de prueba.

Asegúrese de que $TEST_VAL exista en $SPLIT_COLUMN; de lo contrario, no se podrán distinguir los dos grupos. Por lo general, $TEST_VAL corresponde a un valor anómalo.

$CONTROL_VAL

varchar

Sí

Valor en $SPLIT_COLUMN correspondiente al grupo de control.

Asegúrese de que $CONTROL_VAL exista en $SPLIT_COLUMN; de lo contrario, no se podrán distinguir los dos grupos. $CONTROL_VAL corresponde a un valor normal.

$METRIC_COLUMN

double/int

No

Columna de métrica. El valor predeterminado es '', lo que indica que no se especifica ninguna columna de métrica.

Si desea analizar el impacto de las combinaciones de dimensiones en una métrica específica además de los grupos de datos, especifique una columna de métrica. Por ejemplo, si una columna 'qps' registra su métrica, el algoritmo puede calcular las diferencias en esta métrica para diversas combinaciones de dimensiones.

$WEIGHT_COLUMN

varchar

No

Columna de peso. El valor predeterminado es '', lo que indica que no se especifica ninguna columna de peso.

Si no se establece este parámetro, se asume que todas las filas tienen el mismo peso. Si se define una columna de peso, todos los cálculos consideran dichos pesos. Por ejemplo, una fila con peso de 2 se trata como si apareciera dos veces en comparación con las filas con peso de 1.

$PARAM

varchar

No

Para obtener más información, consulte param parameter details.

Detalles del parámetro param

Parámetro

Descripción

Tipo

Obligatorio

Predeterminado

Valores válidos

minimum_support_fraction

Soporte mínimo de un patrón de salida en el grupo de prueba. Por ejemplo, si un patrón aparece con una frecuencia de 0.1 en el grupo de prueba, su soporte es 0.1. Este parámetro controla el número de patrones de salida mediante el ajuste de la sensibilidad.

double

No

0.05

(0, 1)

allow_sample

Especifica si se permite el muestreo para los cálculos.

bool

No

true

[true, false]

agg_op

Un patrón filtra varias filas de datos y la función calcula el valor agregado de estas filas en METRIC_COLUMN. Este parámetro especifica la operación de agregación por utilizar. Si no se especifica METRIC_COLUMN, el valor predeterminado es 1 para el grupo de prueba y 0 para el grupo de control.

string

No

"avg"

["sum", "avg", "max", "min", "count", "p95"]

shapley_value_min_fraction

Fracción mínima del valor de Shapley para una condición. Este parámetro controla el número de condiciones en un patrón.

double

No

0.1

(0, 1)

Ejemplos

  • Análisis de consulta:

    La marca set session enable_remote_functions=true es obligatoria porque esta función se encuentra en versión preliminar pública. Debe agregar esta marca manualmente. Este requisito se eliminará en versiones futuras.
    * | set session enable_remote_functions=true ;
    with t0 as (select  JSON_EXTRACT_SCALAR(entity, '$.platform') AS platform,  JSON_EXTRACT_SCALAR(entity, '$.region') AS region, cast(value as double) as value, if((value > 100), 'true', 'false') as anomaly_label from log), 
    t1 as ( select array_agg(platform) as platform, array_agg(region) as region, array_agg(anomaly_label) as anomaly_label, array_agg(value) as value from t0),
    t2 as (select row(platform, region, anomaly_label, value) as table_row from t1),
    t3 as (select diff_patterns(table_row, ARRAY['platform', 'region', 'anomaly_label', 'value'],'anomaly_label', 'true', 'false', 'value') as ret from t2)
    select * from t3
  • Salida:

    [["\"platform\"='Amazon Prime'","\"platform\"='Console'","\"platform\"='VR'","\"platform\"='Mobile'","\"platform\"='PC'","\"platform\"='Hulu'","\"platform\"='Netflix' AND \"region\"='Asia'","\"platform\"='YouTube'","\"platform\"='Disney+' AND \"region\"='South America'"],[18720,56921,44516,47520,44640,8640,4320,15840,4320],[0,4999,7324,5760,4320,0,0,1440,0],[0.05248902272841978,0.15960083668399478,0.12481844742405635,0.13324136538752713,0.1251661311216164,0.024225702797732206,0.012112851398866103,0.04441378846250904,0.012112851398866103],[0.0,0.0032988991351195829,0.004833194091941553,0.003801092022062172,0.0028508190165466289,0.0,0.0,0.000950273005515543,0.0],[0.05248902272841978,0.1563019375488752,0.1199852533321148,0.12944027336546497,0.12231531210506977,0.024225702797732206,0.012112851398866103,0.0434635154569935,0.012112851398866103],[608.6946996258738,552.6152340898742,501.3011076154948,525.0147121416072,580.8151715760738,409.282718625793,631.6115865793741,603.7699053925991,526.960199868643],[0.0,58.46518308219622,55.396758003518488,49.12926473747681,44.68946999270535,0.0,0.0,20.76262974302821,0.0],null]

Detalles del valor de retorno

Parámetro

Tipo

Descripción

Ejemplo

$RET.patterns

array<varchar>

Plantillas de tabla, que son conjuntos de elementos frecuentes.

["\"platform\"='Amazon Prime'","\"platform\"='Console'","\"platform\"='VR'","\"platform\"='Mobile'","\"platform\"='PC'","\"platform\"='Hulu'","\"platform\"='Netflix' AND \"region\"='Asia'","\"platform\"='YouTube'","\"platform\"='Disney+' AND \"region\"='South America'"]

$RET.test_supports

array<bigint>

Frecuencia de la plantilla correspondiente en el grupo de prueba.

[18720,56921,44516,47520,44640,8640,4320,15840,4320],[0,4999,7324,5760,4320,0,0,1440,0]

$RET.control_supports

array<bigint>

Frecuencia de la plantilla correspondiente en el grupo de control.

En comparación, los resultados que aparecen primero en la salida de diff_patterns tienen una frecuencia mucho mayor en el grupo de prueba (grupo anómalo) que en el grupo de control (grupo normal).

0,4999,7324,5760,4320,0,0,1440,0]

$RET.test_ratio

array<double>

Proporción de la plantilla correspondiente en el grupo de prueba (label=1) respecto al conjunto total de datos de prueba.

[0.05248902272841978,0.15960083668399478,0.12481844742405635,0.13324136538752713,0.1251661311216164,0.024225702797732206,0.012112851398866103,0.04441378846250904,0.012112851398866103]

$RET.control_ratio

array<double>

Proporción de la plantilla correspondiente en el grupo de control (label=0) respecto al conjunto de validación total.

[0.0,0.0032988991351195829,0.004833194091941553,0.003801092022062172,0.0028508190165466289,0.0,0.0,0.000950273005515543,0.0]

$RET.difference

array<double>

Diferencia entre los datos del grupo de prueba y los del grupo de control.

[0.05248902272841978,0.1563019375488752,0.1199852533321148,0.12944027336546497,0.12231531210506977,0.024225702797732206,0.012112851398866103,0.0434635154569935,0.012112851398866103]

$RET.test_average_metric

array<double>

Valor promedio de METRIC_COLUMN para los datos que coinciden con el patrón. Si METRIC_COLUMN es '', este valor de retorno no es significativo.

[608.6946996258738,552.6152340898742,501.3011076154948,525.0147121416072,580.8151715760738,409.282718625793,631.6115865793741,603.7699053925991,526.960199868643]

$RET.control_average_metric

array<double>

Valor promedio de METRIC_COLUMN para los datos que no coinciden con el patrón. Si METRIC_COLUMN es '', este valor de retorno no es significativo.

[0.0,58.46518308219622,55.396758003518488,49.12926473747681,44.68946999270535,0.0,0.0,20.76262974302821,0.0]

$RET.error_msg

varchar/null

Mensaje de error. Si no ocurre ningún error, el valor de retorno es null.

null