Cvičení – filtrování dat pomocí operátoru where
Vzpomeňte si, že jste vyfiltrovali nebo vyfiltrovali určité sloupce ze zobrazených výsledků. V této lekci se dozvíte, jak odpovědět na otázky ohledně toho, jaké druhy meteorologických událostí proběhly v různých oblastech nebo časových rozpětích a jaké typy událostí způsobily poškození.
Použití operátoru where
Až do této chvíle vrátily všechny použité operátory vybrané sloupce. Teď se podíváme na konkrétní řádky dat.
Operátor where
filtruje výsledky, které splňují určitou podmínku. V tomto prvním příkladu porovnáte celočíselnou sloupec s minimální hodnotou pomocí číselného operátoru většího než (>
). Konkrétně chcete zobrazit pouze bouře, které poškozenou vlastnost, takže se podíváte na řádky dat, ve kterých je poškození vlastnosti větší než nula.
Spusťte tento dotaz:
StormEvents | where DamageProperty > 0 | project State, EventType, DamageProperty | take 10
Měli byste získat výsledky, které vypadají jako na následujícím obrázku:
Všimněte si, že všechny vrácené řádky mají ve skutečnosti hodnoty DamageProperty větší než nula.
Podobně můžete filtrovat, kde došlo k události více než určitý počet dní před. Spusťte například následující dotaz, kde
365d
znamená 365 dnů:StormEvents | where DamageProperty > 0 | where StartTime > ago(365d) | project State, EventType, DamageProperty
Všimněte si, že tento dotaz nevrací žádné výsledky. Vzhledem k tomu, že data pocházejí z roku 2007, neexistují žádné záznamy z minulého roku.
Filtrování pomocí řetězcové hodnoty
Vypadá to, že několik typů bouří způsobilo škodu po celé USA. Pojďme to zúžit na bouře, které se stalo v určité lokalitě, jako je stát Florida.
Spusťte následující dotaz, který používá druhý
where
operátor s řetězcovou hodnotou"FLORIDA"
:StormEvents | where DamageCrops > 0 | where State == "FLORIDA" | project State, EventType, DamageCrops
Měli byste získat výsledky, které vypadají jako na následujícím obrázku:
Všimněte si, že všechny záznamy vrácené z tohoto dotazu jsou z Floridy a mají poškození oříznutí větší než nula.
Filtrování pomocí operátoru has
Jeden z typů událostí ve výsledcích posledního dotazu se nazývá Thunderstorm Wind. Pojďme se podívat, jestli na Floridě nedošlo k nějakým jiným druhům větru, které způsobily poškození majetku. Pomocí operátoru has
vyhledáme shodu wind
řetězců. Operátor has
nerozlišuje malá a velká písmena, které odpovídá úplnému termínu.
Spusťte tento dotaz:
StormEvents | where DamageProperty > 0 | where State == "FLORIDA" | where EventType has "wind" | project StartTime, EventType, DamageProperty
Měli byste získat výsledky, které vypadají jako na následujícím obrázku:
Všimněte si ve výsledcích, že události, jako jsou tornády, se již nezobrazují, ale zobrazí se typy událostí Bouře a Silný vítr .
Operátor contains
je podobný has
, ale odpovídá u jakéhokoli podřetězece. Například následující dotaz vrátí výsledky, jako je mražení mlhy a Mrazo/Ukotvit.
StormEvents | where EventType contains "free"
Operátor has
je výkonnější než contains
operátor, takže byste měli použít has
všude, kde máte na výběr mezi těmito dvěma operátory.
datetime
Filtrování hodnot
Pojďme se podrobněji podívat na škody provedené v první polovině kalendářního roku. Může být užitečné omezit vyhledávání na události v určitém časovém rozsahu. Některá rozhraní s dotazovací jazyk Kusto mají rozevírací výběr času, jiné ale vyžadují, abyste do samotného dotazu zahrnuli filtr kalendářních dat.
Vzhledem k tomu, že časové rozsahy jsou ohraničené dvěma extrémními hodnotami, je nejúčinnější vytvořit dotaz, ve kterém zvolíte hodnotu, která je mezi těmito dvěma časy.
Syntaxe pro vytváření tohoto rozsahu kalendářních dat je následující:
where
)..datetime(
hodnota časubetween
(datetime(
))
Pojďme tuto
datetime
oblast začlenit do typu dotazu, který jste už viděli. Spusťte tento dotaz:StormEvents | where StartTime between (datetime(2007-01-01)..datetime(2007-06-01)) | where DamageProperty > 0 | where State == "FLORIDA" | project StartTime, EventType, DamageProperty | take 50
Měli byste získat výsledky, které vypadají jako na následujícím obrázku:
Všimněte si, že všechna data jsou v první polovině roku, měsíce 1 až šest. Můžete si také všimnout, že i když jste vybrali události ze státu Florida, stát se nezobrazuje jako výstupní sloupec, protože nebyl zadán v operátoru
project
.
Potřebujete pomoc? Projděte si našeho průvodce odstraňováním potíží nebo nahlaste potíže a uveďte konkrétní připomínky.