Cvičení – počítání událostí pomocí funkce count

Dokončeno

K prozkoumání datových sad a získání přehledů můžete použít dotaz Kusto. Vzpomeňte si, že máme meteorologickou datovou sadu a chceme porovnat události, abychom získali přehledy z těchto dat. Tady zjistíte, kolik z určitého typu události se v určité oblasti stalo.

Použití funkce count

Ukázková databáze, která používáme, obsahuje záznam pro každou událost stormu v USA v roce 2007, celkem asi 60 tisíc záznamů.

Pokud chcete tyto události seskupit do bloků informací, použijete summarize operátor. summarize se používá pro všechny funkce, které agregují skupiny hodnot více řádků a tvoří jednu souhrnnou hodnotu. Celou tabulku můžete shrnout například tak, že spočítáte počet výsledků pomocí následujícího dotazu:

Spuštění dotazu

Snímek obrazovky s obecným dotazem a výsledky operátoru počtu

Data můžete také shrnout do skupin podobných typů událostí zadáním způsobu seskupení agregace. Pokud chcete například spočítat události podle stavu, napíšete dotaz podle summarize count state. Ve skutečnosti je předchozí věta velmi podobná skutečnému dotazu. Použijete funkci agregace s názvem count(), která spočítá počet řádků podle skupiny. Tato funkce vygeneruje nový sloupec, který poskytuje počet událostí seskupených podle stavu, které jsme v dotazu přejmenovali z výchozího názvu count_ na EventCount. Přejmenování nových sloupců je doporučeným postupem, jak vytvářet dotazy a jejich výsledky čitelnější.

  1. Zkopírujte a vložte dotaz do editoru dotazů.

    Spuštění dotazu

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. Spusťte dotaz tak , že vyberete tlačítko Spustit nad oknem dotazu nebo stisknete Shift+Enter.

    Měli byste získat výsledky, které vypadají jako na následujícím obrázku:

    Snímek obrazovky s informacemi o využití a výsledcích operátora počtu

Použití funkcí dcount() a countif() funkcí

Předchozí dotaz vrátil počet událostí na stav. Existují ale sofistikovanější způsoby, jak spočítat události.

  • Můžete například spočítat pouze určité typy událostí. Funkce countif() spočítá záznamy, pro které je predikát pravdivý. Dotaz, který používá countif(DamageCrops > 0) , spočítá počet záznamů, pro které bylo poškození plodin větší než nula.
  • Pomocí funkce můžete také spočítat různé typy událostí dcount() .

Vytvořili jsme dotaz, který pomocí operátoru summarize s těmito funkcemi počtu odpovídá na následující otázky:

  • Kolik událostí stormu se stalo v každém stavu?
  • Kolik událostí v každém stavu způsobilo poškození?
  • Kolik různých typů událostí se v každém stavu stalo?

Všimněte si, že všechny prvky v operátoru sumarizace jsou oddělené čárkami a jsou seskupené podle stejného sloupce, v tomto případě State. Sloupce, které nejsou v operátoru summarize pojmenované, se zahodí. Pokud chcete zahrnout další sloupce, pojmenujte je za sloupec, na kterém se data shrnují.

  1. Spusťte tento dotaz:

    Spuštění dotazu

    StormEvents
    | summarize count(),
        EventsWithDamageToCrops = countif(DamageCrops > 0),
        Count = dcount(EventType) by State
    | sort by Count
    

    Měli byste získat výsledky, které vypadají jako na následujícím obrázku:

    Snímek obrazovky s dotazem Kusto, který počítá události podle stavu

  2. Všimněte si názvů sloupců ve výsledcích. Která část dotazu odpovídá jednotlivým sloupcům? Vidíte, že dcount() funkce vytvořila nový sloupec a dala jí název Count. Všimněte si také, že jste tento název použili jako sloupec operátora sort v dotazu. Kolik různých typů bouřek došlo v Texasu?

Použití operátoru distinct

Předchozí dotaz vrátil jedinečný počet 27 různých typů bouřek v Texasu během časového období pokrytého daty. Bylo by zajímavé přejít k podrobnostem a podívat se na názvy všech těchto typů bouřek. Pokud chcete zobrazit seznam jednotlivých různých typů událostí v Texasu, použijte distinct() operátor, který uvádí jedinečné hodnoty konkrétního sloupce.

  1. Spusťte tento dotaz:

    Spuštění dotazu

    StormEvents
    | where State == "TEXAS"
    | distinct EventType
    | sort by EventType asc
    

    Měli byste získat výsledky, které vypadají jako na následujícím obrázku:

    Snímek obrazovky s dotazem Kusto pomocí operátoru Distinct

  2. Podívejte se na výsledný seznam. Překvapoval vás některý z typů bouře?