Plug-in diffpatterns

Aplica-se a: ✅Microsoft FabricAzure 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

  • Use where e project no pipe de entrada para reduzir os dados apenas ao que você está interessado.
  • Quando você encontrar uma linha interessante, talvez queira se aprofundar ainda mais adicionando seus valores específicos ao filtro where .

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