Modul plug-in diffpatterns
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer
Porovná dvě datové sady stejné struktury a najde vzory diskrétních atributů (dimenzí), které charakterizují rozdíly mezi těmito dvěma datovými sadami. Modul plug-in se vyvolá pomocí operátoru evaluate
.
diffpatterns
byla vyvinuta tak, aby pomohla analyzovat selhání (například porovnáním selhání s chybami v daném časovém rámci), ale může potenciálně najít rozdíly mezi libovolnými dvěma datovými sadami stejné struktury.
Poznámka:
diffpatterns
cílem je najít významné vzory (které zachycují části rozdílu dat mezi sadami) a nejsou určeny pro rozdíly mezi řádky po řádcích.
Syntaxe
T | evaluate diffpatterns(
SplitColumn SplitValueA,
SplitValueB [,
Mezní hodnota WeightColumn,
,
MaxDimensions,
CustomWildcard,
...],
)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
SplitColumn | string |
✔️ | Název sloupce, který algoritmus říká, jak rozdělit dotaz na datové sady. Podle zadaných hodnot pro argumenty SplitValueA a SplitValueB algoritmus rozdělí dotaz na dvě datové sady, A a B a analyzuje rozdíly mezi nimi. V takovém případě musí mít rozdělený sloupec alespoň dvě odlišné hodnoty. |
SplitValueA | string |
✔️ | Řetězcové znázornění jedné z hodnot v zadaném splitcolumnu . Všechny řádky, které mají tuto hodnotu ve svém SplitColumn , se považují za datovou sadu "A". |
SplitValueB | string |
✔️ | Řetězcové znázornění jedné z hodnot v zadaném splitcolumnu . Všechny řádky, které mají tuto hodnotu ve svém SplitColumn , se považují za datovou sadu "B". |
WeightColumn | string |
Sloupec použitý k zvážení každého řádku ve vstupu podle zadané váhy. Musí být název číselného sloupce, například int , long , real . Ve výchozím nastavení má každý řádek váhu 1. Chcete-li použít výchozí hodnotu, zadejte vlnovku: ~ . Běžným použitím sloupce hmotnosti je vzít v úvahu vzorkování nebo dělení nebo agregaci dat, která jsou již vložena do každého řádku.Příklad: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count) |
|
Prahová hodnota | real |
Skutečný v rozsahu od 0,015 do 1. Tato hodnota nastaví minimální rozdíl poměru vzorů mezi těmito dvěma sadami. Výchozí hodnota je 0,05. Chcete-li použít výchozí hodnotu, zadejte vlnovku: ~ .Příklad: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04) |
|
MaxDimensions | int |
Nastaví maximální počet nekótovaných dimenzí na vzor výsledku. Zadáním limitu snížíte modul runtime dotazu. Výchozí hodnota je neomezená. Chcete-li použít výchozí hodnotu, zadejte vlnovku: ~ .Příklad: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3) |
|
CustomWildcard | string |
Nastaví hodnotu zástupných znaků pro konkrétní typ ve výsledné tabulce, která bude indikovat, že aktuální vzor nemá omezení pro tento sloupec. Výchozí hodnota je null, s výjimkou řetězců sloupců, pro které je výchozí prázdný řetězec. Pokud je výchozí hodnota v datech realizovatelná, měla by se použít jiná hodnota se zástupnými čarmi. Například * . Chcete-li použít výchozí hodnotu, zadejte vlnovku: ~ .Příklad: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1)) |
Návraty
diffpatterns
vrátí malou sadu vzorů, které zachycují různé části dat ve dvou sadách (to znamená vzor zachycující velké procento řádků v první datové sadě a nízké procento řádků v druhé sadě). Každý vzor je ve výsledcích reprezentován řádkem.
Výsledek diffpatterns
vrátí následující sloupce:
SegmentId: identita přiřazená k vzoru v aktuálním dotazu (poznámka: ID nejsou zaručena stejná v opakujících se dotazech).
CountA: Počet řádků zachycených vzorem v sadě A (Sada A je ekvivalentem
where tostring(splitColumn) == SplitValueA
).CountB: počet řádků zachycených vzorem v sadě B (Sada B je ekvivalentem
where tostring(splitColumn) == SplitValueB
).PercentA: Procento řádků v sadě A zachycené vzorem (100,0 * CountA / count(SetA)).
PercentB: procento řádků v sadě B zachycené vzorem (100,0 * CountB / count(SetB)).
PercentDiffAB: absolutní procentuální rozdíl mezi A a B (|PercentA – PercentB|) je hlavním měřítkem významnosti vzorů při popisu rozdílu mezi těmito dvěma sadami.
Zbytek sloupců: jsou původní schéma vstupu a popisují vzor, každý řádek (vzor) představuje průsečík hodnot ne zástupných znaků sloupců (ekvivalent pro každou hodnotu bez zástupných
where col1==val1 and col2==val2 and ... colN=valN
znaků v řádku).
U každého vzoru budou sloupce, které nejsou nastavené v vzoru (tj. bez omezení konkrétní hodnoty), obsahovat hodnotu se zástupným znakem, která má ve výchozím nastavení hodnotu null. V části Argumenty níže se dozvíte, jak se dají zástupné důkazy ručně změnit.
- Poznámka: Vzory nejsou často odlišné. Můžou se překrývat a obvykle nezakrývají všechny původní řádky. Některé řádky nemusí spadat pod žádný vzor.
Tip
Příklad
StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )
Výstup
SegmentId | CountA | CountB | PercentA | PercentB | PercentDiffAB | State | Typ události | Zdroj | DamageCrops |
---|---|---|---|---|---|---|---|---|---|
0 | 2278 | 93 | 49,8 | 7.1 | 42.7 | Krupobití | 0 | ||
1 | 779 | 512 | 17.03 | 39.08 | 22.05 | Větrná bouře | |||
2 | 1098 | 118 | 24.01 | 9.01 | 15 | Trénovaný spotter | 0 | ||
3 | 136 | 158 | 2,97 | 12.06 | 9.09 | Noviny | |||
4 | 359 | 214 | 7.85 | 16.34 | 8.49 | Velká voda | |||
5 | 50 | 122 | 1.09 | 9.31 | 8.22 | IOWA | |||
6 | 655 | 279 | 14.32 | 21.3 | 6.98 | Donucovacími | |||
7 | 150 | 117 | 3.28 | 8.93 | 5.65 | Povodeň | |||
8 | 362 | 176 | 7.91 | 13.44 | 5.52 | Správce tísňového volání |