Plug-in diffpatterns
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
Compara dois conjuntos de dados da mesma estrutura e localiza padrões de atributos discretos (dimensões) que caracterizam as diferenças entre os dois conjuntos de dados. O plug-in é invocado com o evaluate
operador.
diffpatterns
foi desenvolvido para ajudar a analisar falhas (por exemplo, comparando falhas com não falhas em um determinado período de tempo), mas pode potencialmente encontrar diferenças entre quaisquer dois conjuntos de dados da mesma estrutura.
Observação
diffpatterns
visa encontrar padrões significativos (que capturam partes da diferença de dados entre os conjuntos) e não se destina a diferenças linha por linha.
Sintaxe
T | evaluate diffpatterns(
SplitColumn,
SplitValueA,
SplitValueB [,
WeightColumn,
Threshold,
MaxDimensions,
CustomWildcard,
...])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
Coluna dividida | string |
✔️ | O nome da coluna que informa ao algoritmo como dividir a consulta em conjuntos de dados. De acordo com os valores especificados para os argumentos SplitValueA e SplitValueB , o algoritmo divide a consulta em dois conjuntos de dados, "A" e "B", e analisa as diferenças entre eles. Como tal, a coluna de divisão deve ter pelo menos dois valores distintos. |
ValorDeDiçãoA | string |
✔️ | Uma representação de cadeia de caracteres de um dos valores no SplitColumn que foi especificado. Todas as linhas que têm esse valor em sua SplitColumn são consideradas como conjunto de dados "A". |
ValorDeDivisão B | string |
✔️ | Uma representação de cadeia de caracteres de um dos valores no SplitColumn que foi especificado. Todas as linhas que têm esse valor em sua SplitColumn são consideradas como conjunto de dados "B". |
Coluna de peso | string |
A coluna usada para considerar cada linha na entrada de acordo com o peso especificado. Deve ser o nome de uma coluna numérica, como int , long , real . Por padrão, cada linha tem o peso igual a "1". Para usar o valor padrão, insira o til: ~ . Um uso comum de uma coluna de peso é para amostragem de conta ou agregação/segmentação de dados já incorporados a cada linha.Exemplo: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count) |
|
Limite | real |
Um real na faixa de 0,015 a 1. Esse valor define a diferença mínima da taxa de padrão entre os dois conjuntos. O padrão é 0,05. Para usar o valor padrão, insira o til: ~ .Exemplo: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04) |
|
Dimensões máximas | int |
Define o número máximo de dimensões não correlacionadas por padrão de resultado. Ao especificar um limite, você diminui o tempo de execução da consulta. O padrão é ilimitado. Para usar o valor padrão, insira o til: ~ .Exemplo: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3) |
|
Curinga personalizado | string |
Define o valor do curinga como um tipo específico na tabela de resultados, que indicará que o padrão atual não tem uma restrição para essa coluna. O padrão é nulo, exceto para colunas de cadeia de caracteres para as quais o padrão é uma cadeia de caracteres vazia. Se o padrão for um valor viável nos dados, um valor curinga diferente deverá ser usado. Por exemplo, * . Para usar o valor padrão, insira o til: ~ .Exemplo: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1)) |
Devoluções
diffpatterns
Retorna um pequeno conjunto de padrões que capturam diferentes partes dos dados nos dois conjuntos (ou seja, um padrão que captura uma grande porcentagem das linhas no primeiro conjunto de dados e uma baixa porcentagem das linhas no segundo conjunto). Cada padrão é representado por uma linha nos resultados.
O resultado de diffpatterns
retorna as seguintes colunas:
SegmentId: a identidade atribuída ao padrão na consulta atual (observação: não há garantia de que as IDs sejam as mesmas em consultas repetidas).
CountA: o número de linhas capturadas pelo padrão no Conjunto A (o Conjunto A é o equivalente a
where tostring(splitColumn) == SplitValueA
).CountB: o número de linhas capturadas pelo padrão no Conjunto B (o Conjunto B é o equivalente a
where tostring(splitColumn) == SplitValueB
).PercentA: a porcentagem de linhas no Conjunto A capturadas pelo padrão (100,0 * CountA / count(SetA)).
PercentB: a porcentagem de linhas no Conjunto B capturadas pelo padrão (100,0 * CountB / count(SetB)).
PercentDiffAB: a diferença absoluta de pontos percentuais entre A e B (|PercentA - PercentB|) é a principal medida de significância dos padrões na descrição da diferença entre os dois conjuntos.
Resto das colunas: são o esquema original da entrada e descrevem o padrão, cada linha (padrão) representa a interseção dos valores não curinga das colunas (equivalente a
where col1==val1 and col2==val2 and ... colN=valN
para cada valor não curinga na linha).
Para cada padrão, as colunas que não são definidas no padrão (ou seja, sem restrição em um valor específico) conterão um valor curinga, que é nulo por padrão. Veja na seção Argumentos abaixo como os curingas podem ser alterados manualmente.
- Nota: os padrões geralmente não são distintos. Eles podem estar sobrepostos e geralmente não cobrem todas as linhas originais. Nem todas as linhas podem ficar em qualquer padrão.
Dica
Exemplo
StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )
Saída
SegmentId | CountA | CountB | PercentA | PercentB | PercentDiffAB | Estado | EventType | Origem | DamageCrops |
---|---|---|---|---|---|---|---|---|---|
0 | 2278 | 93 | 49.8 | 7.1 | 42.7 | Granizo | 0 | ||
1 | 779 | 512 | 17.03 | 39.08 | 22.05 | Thunderstorm Wind | |||
2 | 1098 | 118 | 24.01 | 9.01 | 15 | Spotter Treinado | 0 | ||
3 | 136 | 158 | 2.97 | 12.06 | 9.09 | Jornal | |||
4 | 359 | 214 | 7.85 | 16.34 | 8,49 | Saturação de Flash | |||
5 | 50 | 122 | 1.09 | 9.31 | 8.22 | IOWA | |||
6 | 655 | 279 | 14.32 | 21.3 | 6.98 | Aplicação da lei | |||
7 | 150 | 117 | 3.28 | 8.93 | 5.65 | Saturação | |||
8 | 362 | 176 | 7.91 | 13.44 | 5.52 | Gerenciador de emergência |