Share via


Complemento diffpatterns

Compara dos conjuntos de datos de la misma estructura y busca patrones de atributos discretos (dimensiones) que caracterizan las diferencias entre los dos conjuntos de datos. El complemento se invoca con el evaluate operador .

diffpatterns se desarrolló para ayudar a analizar los errores (por ejemplo, comparando los errores con errores en un período de tiempo determinado), pero puede encontrar diferencias entre dos conjuntos de datos de la misma estructura.

Nota

diffpatterns tiene como objetivo encontrar patrones significativos (que capturan partes de la diferencia de datos entre los conjuntos) y no están pensadas para las diferencias de fila por fila.

Syntax

T | evaluate diffpatterns(SplitColumn,SplitValueA,SplitValueB [,WeightColumn,Threshold,MaxDimensions,CustomWildcard, ...])

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
SplitColumn string ✔️ Nombre de columna que indica al algoritmo cómo dividir la consulta en conjuntos de datos. Según los valores especificados para los argumentos SplitValueA y SplitValueB , el algoritmo divide la consulta en dos conjuntos de datos, "A" y "B", y analiza las diferencias entre ellos. Por tanto, la columna dividida debe tener al menos dos valores distintos.
SplitValueA string ✔️ Representación de cadena de uno de los valores de SplitColumn que se especificó. Todas las filas que tienen este valor en su SplitColumn considerado como conjunto de datos "A".
SplitValueB string ✔️ Representación de cadena de uno de los valores de SplitColumn que se especificó. Todas las filas que tienen este valor en splitColumn se consideran el conjunto de datos "B".
WeightColumn string Columna usada para tener en cuenta cada fila de la entrada según el peso especificado. Debe ser un nombre de una columna numérica, como int, long, real. De forma predeterminada, cada una de ellas tiene un peso de 1. Para usar el valor predeterminado, escriba la tilde: ~. Un uso común de una columna de peso es tener en cuenta el muestreo o la creación de depósitos y la agregación de los datos que ya se han insertado en cada fila.

Ejemplo: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count)
Umbral long Un largo en el intervalo de 0,015 a 1. Este valor establece la diferencia de relación de patrones mínima entre los dos conjuntos. El valor predeterminado es 0,05. Para usar el valor predeterminado, escriba la tilde: ~.

Ejemplo: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04)
MaxDimensions int Establece el número máximo de dimensiones no relacionadas por patrón de resultado. Al especificar un límite, se reduce el tiempo de ejecución de la consulta. El valor predeterminado es ilimitado. Para usar el valor predeterminado, escriba la tilde: ~.

Ejemplo: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3)
CustomWildcard string Establece el valor de carácter comodín para un tipo específico en la tabla de resultados que indicará que el patrón actual no tiene una restricción en esta columna. El valor predeterminado es null, excepto para las columnas de cadena para las que el valor predeterminado es una cadena vacía. Si el valor predeterminado es un valor viable en los datos, se debe usar otro valor comodín. Por ejemplo, *. Para usar el valor predeterminado, escriba la tilde: ~.

Ejemplo: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1))

Devoluciones

diffpatterns devuelve un pequeño conjunto de patrones que capturan diferentes partes de los datos de los dos conjuntos (es decir, un patrón que captura un gran porcentaje de las filas del primer conjunto de datos y un porcentaje bajo de las filas del segundo conjunto). Cada patrón se representa mediante una fila en los resultados.

El resultado de diffpatterns devuelve las columnas siguientes:

  • SegmentId: la identidad asignada al patrón en la consulta actual (nota: no se garantiza que los identificadores sean los mismos en las consultas repetidas).

  • CountA: el número de filas capturadas por el patrón en Set A (Set A es el equivalente de where tostring(splitColumn) == SplitValueA).

  • CountB: el número de filas capturadas por el patrón de Set B (El conjunto B es el equivalente de where tostring(splitColumn) == SplitValueB).

  • PercentA: el porcentaje de filas de Set A capturado por el patrón (100.0 * CountA/count(SetA)).

  • PercentB: el porcentaje de filas del conjunto B capturado por el patrón (100,0 * CountB/count(SetB)).

  • PercentDiffAB: la diferencia de punto porcentual absoluto entre A y B (|PercentA - PercentB|) es la medida principal de importancia de los patrones en la descripción de la diferencia entre los dos conjuntos.

  • Resto de las columnas: son el esquema original de la entrada y describen el patrón, cada fila (patrón) representa la intersección de los valores no comodín de las columnas (equivalente de where col1==val1 and col2==val2 and ... colN=valN para cada valor no comodín de la fila).

Para cada patrón, las columnas que no se establecen en el patrón (es decir, sin restricciones en un valor específico) contendrán un valor comodín, que es null de forma predeterminada. Consulte la sección Argumentos que se muestra a continuación sobre cómo se pueden cambiar manualmente los caracteres comodín.

  • Nota: Los patrones a menudo no son distintos. Es posible que se superpongan y, por lo general, no cubran todas las filas originales. Algunas filas no pueden estar en cualquier patrón.

Sugerencia

  • Use dónde y project en la canalización de entrada para reducir los datos a lo que le interesa.
  • Al buscar una fila interesante, puede profundizar aún más mediante la adición de sus valores específicos a su filtro where .

Ejemplo

StormEvents 
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )

Salida

SegmentId CountA CountB PercentA PercentB PercentDiffAB State EventType Source DamageCrops
0 2278 93 49,8 7.1 42,7 Granizo 0
1 779 512 17,03 39,08 22,05 Viento de tormenta
2 1098 118 24,01 9,01 15 Observador entrenado 0
3 136 158 2,97 12.06 9,09 Periódico
4 359 214 7,85 16,34 8,49 Riada
5 50 122 1,09 9,31 8,22 IOWA
6 655 279 14,32 21,3 6,98 Cuerpos de seguridad
7 150 117 3,28 8,93 5,65 Inundación
8 362 176 7,91 13,44 5,52 Administrador de emergencia