Delen via


diffpatterns-plug-in

Van toepassing op: ✅Microsoft FabricAzure Data Explorer-

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

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

Opmerking

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

Syntaxis

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

Meer informatie over syntaxisconventies.

Parameterwaarden

Naam Typologie Verplicht Beschrijving
SplitColumn string ✔️ De kolomnaam die aangeeft hoe de query moet worden gesplitst in gegevenssets. Volgens 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 tussen deze gegevenssets. Als zodanig moet de gesplitste kolom ten minste twee afzonderlijke 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 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 beschouwd als gegevensset 'B'.
WeightColumn string De kolom die wordt gebruikt om elke rij in de invoer te beschouwen volgens het opgegeven gewicht. Moet een naam zijn van een numerieke kolom, zoals int, longreal. Standaard heeft elke rij een gewicht van '1'. Als u de standaardwaarde wilt gebruiken, voert u de tilde in: ~. Een gemeenschappelijk gebruik van een kolom gewicht is 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 real Een reëel bereik van 0,015 tot 1. Met deze waarde wordt het minimale verschil in patroonverhouding 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, verlaagt 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 resultaattabel die aangeeft dat het huidige patroon geen beperking voor deze kolom heeft. 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 waarmee verschillende delen van de gegevens in de twee sets worden vastgelegd (dat wil bijvoorbeeld een patroon dat een groot percentage van de rijen in de eerste gegevensset vastlegt en een laag percentage van de rijen in de tweede set). 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 door het patroon in Set A (Set A is het equivalent van where tostring(splitColumn) == SplitValueA).

  • CountB: het aantal rijen dat is vastgelegd door 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)).

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

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

  • 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 elke niet-jokertekenwaarde in de rij).

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

  • Opmerking: de patronen zijn vaak niet verschillend. Ze kunnen overlappen en hebben meestal geen betrekking op alle oorspronkelijke rijen. Sommige rijen vallen mogelijk niet onder een patroon.

Aanbeveling

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

Voorbeelden

In het volgende voorbeeld ziet u hoe u de diffpatterns invoegtoepassing gebruikt om de StormEvents-gegevensset te analyseren. Het vergelijkt gebeurtenissen die in mei zijn opgetreden, waarbij de nadruk ligt op de verschillen tussen gebeurtenissen met en zonder schade. De query gebruikt de diffpatterns invoegtoepassing om patronen te identificeren die onderscheid maken tussen deze twee groepen op basis van de kolommen State, EventType, Source en 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" )

Uitvoer

SegmentId CountA CountB PercentageA PercentageB PercentueelVerschilAB Staat Type van evenement Bron Schadecrops
0 2278 93 49.8 7.1 42.7 Hagel 0
1 779 512 17.03 39.08 22.05 Onweer wind
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 Stortvloed
5 50 122 1.09 9.31 8.22 IOWA
6 655 279 14.32 21.3 6.98 Wetshandhaving
7 150 117 3.28 8.93 5.65 Overstroming
8 362 176 7.91 13.44 5.52 Emergency Manager