Delen via


Invoegtoepassing voor diffpatterns

Vergelijkt twee gegevenssets met dezelfde structuur en vindt patronen van discrete kenmerken (dimensies) die de verschillen tussen de twee gegevenssets kenmerken. De invoegtoepassing wordt aangeroepen met de evaluate operator.

diffpatterns is ontwikkeld om fouten te analyseren (bijvoorbeeld door fouten te vergelijken met niet-fouten in een bepaald tijdsbestek), maar kan mogelijk verschillen vinden tussen twee gegevenssets met dezelfde structuur.

Notitie

diffpatterns is gericht op het vinden van belangrijke patronen (die delen van het gegevensverschil tussen de sets vastleggen) en is niet bedoeld voor verschillen tussen rijen.

Syntax

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

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
SplitColumn string ✔️ De kolomnaam die het algoritme vertelt hoe de query moet worden gesplitst in gegevenssets. Op basis van de opgegeven waarden voor de argumenten SplitValueA en SplitValueB splitst het algoritme de query op in twee gegevenssets, 'A' en 'B', en analyseert het de verschillen ertussen. Als zodanig moet de gesplitste kolom ten minste twee verschillende waarden hebben.
SplitValueA string ✔️ Een tekenreeksweergave van een van de waarden in de SplitColumn die is opgegeven. Alle rijen met deze waarde in hun SplitColumn worden beschouwd als gegevensset 'A'.
SplitValueB string ✔️ Een tekenreeksweergave van een van de waarden in de SplitColumn die is opgegeven. Alle rijen met deze waarde in hun SplitColumn worden beschouwd als gegevensset 'B'.
WeightColumn string De kolom die wordt gebruikt om rekening te houden met elke rij in de invoer op basis van het opgegeven gewicht. Moet een naam zijn van een numerieke kolom, zoals int, long, real. Standaard heeft elke rij een gewicht van '1'. Als u de standaardwaarde wilt gebruiken, voert u de tilde in: ~. Een kolom gewicht wordt vaak gebruikt om rekening te houden met steekproeven of bucketing/aggregatie van de gegevens die al in elke rij zijn ingesloten.

Voorbeeld: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count)
Drempel long Een lange in het bereik van 0,015 tot 1. Met deze waarde wordt het minimale patroonverhoudingsverschil tussen de twee sets ingesteld. De standaardwaarde is 0,05. Als u de standaardwaarde wilt gebruiken, voert u de tilde in: ~.

Voorbeeld: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04)
MaxDimensions int Hiermee stelt u het maximum aantal niet-gerelateerde dimensies per resultaatpatroon in. Door een limiet op te geven, vermindert u de queryruntime. De standaardwaarde is onbeperkt. Als u de standaardwaarde wilt gebruiken, voert u de tilde in: ~.

Voorbeeld: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3)
CustomWildcard string Hiermee stelt u de jokertekenwaarde in voor een specifiek type in de resultatentabel die aangeeft dat het huidige patroon geen beperking heeft voor deze kolom. De standaardwaarde is null, met uitzondering van tekenreekskolommen waarvoor de standaardwaarde een lege tekenreeks is. Als de standaardwaarde een levensvatbare waarde in de gegevens is, moet een andere jokertekenwaarde worden gebruikt. Bijvoorbeeld *. Als u de standaardwaarde wilt gebruiken, voert u de tilde in: ~.

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

Retouren

diffpatterns retourneert een kleine set patronen die verschillende delen van de gegevens in de twee sets vastleggen (dat wil gezegd, een patroon dat een groot percentage van de rijen in de eerste gegevensset en een laag percentage van de rijen in de tweede set vastlegt). Elk patroon wordt vertegenwoordigd door een rij in de resultaten.

Het resultaat van diffpatterns retourneert de volgende kolommen:

  • SegmentId: de identiteit die is toegewezen aan het patroon in de huidige query (opmerking: id's zijn niet gegarandeerd hetzelfde in herhalende query's).

  • CountA: het aantal rijen dat is vastgelegd met het patroon in set A (set A is het equivalent van where tostring(splitColumn) == SplitValueA).

  • AantalB: het aantal rijen dat is vastgelegd met het patroon in set B (set B is het equivalent van where tostring(splitColumn) == SplitValueB).

  • PercentA: het percentage rijen in set A dat is vastgelegd door het patroon (100,0 * CountA/ count(SetA)).

  • PercentB: het percentage rijen in set B dat is vastgelegd door het patroon (100,0 * CountB/ count(SetB)).

  • PercentDiffAB: het absolute procentpuntverschil tussen A en B (|PercentA - PercentB|) is de belangrijkste maateenheid voor de significantie van patronen bij het beschrijven van het verschil tussen de twee sets.

  • De rest van de kolommen: zijn het oorspronkelijke schema van de invoer en beschrijven het patroon, elke rij (patroon) vertegenwoordigt het snijpunt van de niet-jokertekenwaarden van de kolommen (equivalent van where col1==val1 and col2==val2 and ... colN=valN voor elke niet-jokertekenwaarde in de rij).

Voor elk patroon bevatten kolommen die niet zijn ingesteld in het patroon (dus zonder beperking voor een specifieke waarde) een jokertekenwaarde, die standaard null is. In de sectie Argumenten hieronder ziet u hoe jokertekens handmatig kunnen worden gewijzigd.

  • Opmerking: de patronen zijn vaak niet verschillend. Ze overlappen elkaar mogelijk en dekken meestal niet alle oorspronkelijke rijen af. Sommige rijen vallen mogelijk niet onder een patroon.

Tip

  • Gebruik waar en project in de invoerpijp om de gegevens te beperken tot precies wat u wilt.
  • Wanneer u een interessante rij vindt, kunt u er verder op inzoomen door de specifieke waarden aan uw where filter toe te voegen.

Voorbeeld

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

Uitvoer

SegmentId CountA Aantal B ProcentA Percentage B PercentDiffAB Staat EventType Bron DamageCrops
0 2278 93 49.8 7.1 42.7 Hagel 0
1 779 512 17.03 39.08 22.05 Onweerswind
2 1098 118 24.01 9.01 15 Getrainde spotter 0
3 136 158 2,97 12.06 9.09 Krant
4 359 214 7.85 16.34 8.49 Flash Flood
5 50 122 1.09 9.31 8.22 IOWA
6 655 279 14.32 21.3 6.98 Rechtshandhaving
7 150 117 3.28 8.93 5.65 Overstroming
8 362 176 7.91 13.44 5.52 Manager voor noodgevallen