Sdílet prostřednictvím


Modul plug-in diffpatterns

Platí pro: ✅Microsoft FabricAzure 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

  • Pomocí umístění a projektu ve vstupním kanálu zmenšete data jenom na to, co vás zajímá.
  • Když najdete zajímavý řádek, možná ho budete chtít podrobněji rozbalit přidáním konkrétních hodnot do where filtru.

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í