Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
Compara dois conjuntos de dados da mesma estrutura e encontra padrões de atributos discretos (dimensões) que caracterizam as diferenças entre os dois conjuntos de dados. O plugin é invocado com o operador evaluate.
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 a linha.
Sintaxe
T | evaluate diffpatterns(
SplitColumn,SplitValueA,SplitValueB [,Limite WeightColumn,,,MaxDimensions,, CustomWildcard,, ...])
Saiba mais sobre convenções de sintaxe.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| SplitColumn | 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 dividida deve ter pelo menos dois valores distintos. |
| SplitValueA | 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 seu SplitColumn considerado como conjunto de dados "A". |
| SplitValueB | 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 seu SplitColumn considerado como conjunto de dados "B". |
| WeightColumn | string |
A coluna usada para considerar cada linha na entrada de acordo com o peso especificado. Deve ser um nome de uma coluna numérica, como int, long, real. Por defeito, cada linha tem um peso de «1». Para usar o valor padrão, insira o til: ~. Um uso comum de uma coluna de peso é levar em conta a amostragem ou o bucketing/agregação dos dados que já estão incorporados em cada linha.Exemplo: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count) |
|
| Limiar | real |
Um real na faixa de 0,015 a 1. Este valor define a diferença mínima da razão 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) |
|
| MaxDimensions | 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 curinga para um tipo específico na tabela de resultados que indicará que o padrão atual não tem uma restrição nesta coluna. O padrão é null, 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 deve 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 capturando 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 é garantido que os IDs sejam os mesmos em consultas repetidas).
CountA: o número de linhas capturadas pelo padrão no Conjunto A (o Conjunto A é o equivalente
where tostring(splitColumn) == SplitValueAa ).CountB: o número de linhas capturadas pelo padrão no Conjunto B (o Conjunto B é o equivalente
where tostring(splitColumn) == SplitValueBa ).PercentA: a percentagem de linhas no Conjunto A capturadas pelo padrão (100,0 * CountA / count(SetA)).
PercentB: a percentagem 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
where col1==val1 and col2==val2 and ... colN=valNa cada valor não curinga na linha).
Para cada padrão, as colunas que não estão definidas no padrão (ou seja, sem restrição a 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 muitas vezes não são distintos. Eles podem estar sobrepostos e, geralmente, não cobrem todas as linhas originais. Algumas linhas podem não se enquadrar em nenhum padrão.
Sugestão
Exemplos
O exemplo a seguir mostra como usar o diffpatterns plug-in para analisar o conjunto de dados StormEvents. Compara eventos ocorridos em maio, focando nas diferenças entre eventos com e sem danos. A consulta usa o diffpatterns plug-in para identificar padrões que distinguem entre esses dois grupos com base nas colunas State, EventType, Source e DamageCrops.
StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )
Realização
| Id de Segmento | CondeA | Contagem B | PercentagemA | Percentagem B | DiferençaPercentualAB | Estado | Tipo de Evento | Fonte | DanosColheitas |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 2278 | 93 | 49.8 | 7.1 | 42.7 | Granizo | 0 | ||
| 1 | 779 | 512 | 17.03 | 39.08 | 22.05 | Vento de Tempestade com Trovoada | |||
| 2 | 1098 | 118 | 24.01 | 9.01 | 15 | Observador treinado | 0 | ||
| 3 | 136 | 158 | 2.97 | 12.06 | 9.09 | Jornal | |||
| 4 | 359 | 214 | 7.85 | 16.34 | 8.49 | Inundação repentina | |||
| 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 | Inundação | |||
| 8 | 362 | 176 | 7.91 | 13.44 | 5.52 | Gestor de Emergências |