Complemento diffpatterns
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
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 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
pretende 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.
Sintaxis
T | evaluate diffpatterns(
SplitColumn SplitValueA,
SplitValueB [,
WeightColumn,
Threshold,
MaxDimensions,
CustomWildcard,
...],
)
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | 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 splitColumn se consideran el 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 | real |
Real en el intervalo de 0,015 a 1. Este valor establece la diferencia mínima de proporción de patrones 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 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 en Set B (Set 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 están establecidas en el patrón (es decir, sin restricción en un valor específico) contendrán un valor comodín, que es null de forma predeterminada. Consulte la sección Argumentos 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
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 |