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
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 |
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor