diffpatterns-Plug-In

Gilt für: ✅Microsoft Fabric✅Azure Data Explorer

Vergleicht zwei Datasets derselben Struktur und findet Muster diskreter Attribute (Dimensionen), die Unterschiede zwischen den beiden Datasets kennzeichnen. Das Plug-In wird mit dem evaluate Operator aufgerufen.

diffpatterns wurde entwickelt, um Fehler zu analysieren (z. B. durch Vergleichen von Fehlern mit Nichtfehlern in einem bestimmten Zeitrahmen), können aber möglicherweise Unterschiede zwischen zwei Datensätzen derselben Struktur finden.

Hinweis

diffpatterns zielt darauf ab, signifikante Muster zu finden (die Teile des Datenunterschieds zwischen den Sätzen erfassen) und ist nicht für Zeilen-nach-Zeilen-Unterschiede vorgesehen.

Syntax

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
SplitColumn string ✔️ Der Spaltenname, der dem Algorithmus angibt, wie die Abfrage in Datasets aufgeteilt wird. Gemäß den angegebenen Werten für die Argumente SplitValueA und SplitValueB teilt der Algorithmus die Abfrage in zwei Datasets auf, "A" und "B", und analysiert die Unterschiede zwischen ihnen. Die split-Spalte muss mindestens zwei eindeutige Werte enthalten.
SplitValueA string ✔️ Eine Zeichenfolgendarstellung eines der Werte im angegebenen SplitColumn . Alle Zeilen, die diesen Wert in ihrem SplitColumn als Dataset "A" betrachten.
SplitValueB string ✔️ Eine Zeichenfolgendarstellung eines der Werte im angegebenen SplitColumn . Alle Zeilen, die diesen Wert in ihrem SplitColumn als Dataset "B" betrachten.
WeightColumn string Die Spalte, die verwendet wird, um jede Zeile in der Eingabe gemäß der angegebenen Gewichtung zu berücksichtigen. Muss ein Name einer numerischen Spalte sein, zint. B. , long. real Standardmäßig weist jede Zeile eine Gewichtung von „1“ auf. Um den Standardwert zu verwenden, geben Sie die Tilde ein: ~. Eine übliche Nutzung einer Gewichtungsspalte besteht darin, die Stichprobenerstellung oder die Bucket-Zuordnung/Aggregation der Daten zu berücksichtigen, die bereits in die einzelnen Zeilen eingebettet sind.

Beispiel: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count)
Schwellenwert real Ein Real im Bereich von 0,015 bis 1. Dieser Wert legt die Minimale Musterverhältnisdifferenz zwischen den beiden Sätzen fest. Der Standardwert ist 0,05. Um den Standardwert zu verwenden, geben Sie die Tilde ein: ~.

Beispiel: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04)
MaxDimensions int Legt die maximale Anzahl nicht korrelierte Dimensionen pro Ergebnismuster fest. Durch Angeben eines Grenzwerts verringern Sie die Abfragelaufzeit. Der Standardwert ist unbegrenzt. Um den Standardwert zu verwenden, geben Sie die Tilde ein: ~.

Beispiel: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3)
CustomWildcard string Legt den Platzhalterwert für einen bestimmten Typ in der Ergebnistabelle fest, der angibt, dass das aktuelle Muster keine Einschränkung für diese Spalte besitzt. Der Standardwert ist NULL, mit Ausnahme von Zeichenfolgenspalten, für die der Standardwert eine leere Zeichenfolge ist. Wenn der Standardwert ein lebensfähiger Wert in den Daten ist, sollte ein anderer Wildcardwert verwendet werden. Beispiel: *. Um den Standardwert zu verwenden, geben Sie die Tilde ein: ~.

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

Gibt zurück

diffpatterns gibt einen kleinen Satz von Mustern zurück, die unterschiedliche Teile der Daten in den beiden Sätzen erfassen (d. a. ein Muster, das einen großen Prozentsatz der Zeilen im ersten Dataset und einen niedrigen Prozentsatz der Zeilen im zweiten Satz erfasst). Jede Zeile in den Ergebnissen steht für ein Muster.

Das Ergebnis der diffpatterns Rückgabe der folgenden Spalten:

  • SegmentId: Die dem Muster in der aktuellen Abfrage zugewiesene Identität (Hinweis: IDs sind nicht garantiert identisch bei wiederholten Abfragen).

  • CountA: Die Anzahl der Zeilen, die vom Muster in Set A erfasst werden (Set A ist das Äquivalent von where tostring(splitColumn) == SplitValueA).

  • CountB: Die Anzahl der Zeilen, die vom Muster in Set B erfasst werden (Set B ist das Äquivalent von where tostring(splitColumn) == SplitValueB).

  • PercentA: der Prozentsatz der Zeilen in Set A, der vom Muster erfasst wird (100,0 * CountA / count(SetA)).

  • PercentB: Der Prozentsatz der Zeilen in Set B, der vom Muster erfasst wird (100,0 * AnzahlB / Anzahl(SetB)).

  • PercentDiffAB: die absolute Prozentpunktdifferenz zwischen A und B (|PercentA - PercentB|) ist das Hauptmaß der Bedeutung von Mustern bei der Beschreibung des Unterschieds zwischen den beiden Sätzen.

  • Rest der Spalten: sind das ursprüngliche Schema der Eingabe und beschreiben das Muster, jede Zeile (Muster) stellt den Schnittpunkt der Nicht-Wildcard-Werte der Spalten dar (entspricht where col1==val1 and col2==val2 and ... colN=valN für jeden Nicht-Wildcard-Wert in der Zeile).

Für jedes Muster enthalten Spalten, die nicht im Muster festgelegt sind (d. h. ohne Einschränkung für einen bestimmten Wert), einen Wildcardwert, der standardmäßig NULL ist. Lesen Sie im Abschnitt "Argumente" weiter unten, wie Wildcards manuell geändert werden können.

  • Hinweis: Die Muster unterscheiden sich häufig nicht. Sie können überlappend sein und decken in der Regel nicht alle ursprünglichen Zeilen ab. Einige Zeilen fallen ggf. nicht in eines der Muster.

Tipp

  • Verwenden Sie die Position und das Projekt in der Eingabepipeline, um die Daten auf das zu reduzieren, was Sie interessieren.
  • Wenn Sie eine interessante Zeile finden, können Sie dafür einen Drilldown durchführen, indem Sie die jeweiligen Werte dem where -Filter hinzufügen.

Beispiel

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

Output

SegmentId CountA CountB PercentA PercentB PercentDiffAB Staat EventType Quelle DamageCrops
0 2278 93 49,8 7.1 42,7 Hagel 0
1 779 512 17.03 39,08 22,05 Sturm
2 1.098 118 24,01 9,01 15 Trained Spotter 0
3 136 158 2.97 12,06 9,09 Zeitung
4 359 214 7,85 16,34 8.49 Überschwemmung
5 50 122 1,09 9.31 8,22 IOWA
6 655 279 14,32 21,3 6,98 Law Enforcement
7 150 117 3,28 8,93 5,65 Hochwasser
8 362 176 7,91 13,44 5,52 Emergency Manager