Exercício - Filtrar dados usando o operador where
Lembre-se de que você filtrou determinadas colunas dentro ou fora dos resultados exibidos. Nesta unidade, você aprenderá a responder a perguntas sobre que tipos de eventos meteorológicos ocorreram em diferentes regiões ou períodos de tempo e quais tipos de eventos causaram danos.
Utilize o where
operador
Até este ponto, todos os operadores que você usou retornaram colunas selecionadas. Agora, vamos dar uma olhada em linhas específicas dos dados.
O where
operador filtra os resultados que satisfazem uma determinada condição. Neste primeiro exemplo, você comparará uma coluna inteira com um valor mínimo usando o operador numérico maior que (>
). Especificamente, você só quer ver tempestades que danificaram propriedades, então você verá linhas de dados onde os danos à propriedade são maiores que zero.
Execute a seguinte consulta:
StormEvents | where DamageProperty > 0 | project State, EventType, DamageProperty | take 10
Você deve obter resultados parecidos com a seguinte imagem:
Observe que todas as linhas retornadas têm , de fato, valores de DamageProperty maiores que zero.
Da mesma forma, você pode filtrar onde a hora de um evento ocorreu mais do que um determinado número de dias atrás. Por exemplo, execute a seguinte consulta, onde
365d
significa 365 dias:StormEvents | where DamageProperty > 0 | where StartTime > ago(365d) | project State, EventType, DamageProperty
Observe que essa consulta não retorna nenhum resultado. Como os dados são de 2007, não há registros do ano passado.
Filtrar usando um valor de cadeia de caracteres
Parece que alguns tipos de tempestades causaram danos em todos os EUA. Vamos restringir isso a tempestades que aconteceram em um determinado local, como o estado da Flórida.
Execute a seguinte consulta, que usa um segundo
where
operador com o valor"FLORIDA"
da cadeia de caracteres:StormEvents | where DamageCrops > 0 | where State == "FLORIDA" | project State, EventType, DamageCrops
Você deve obter resultados parecidos com a seguinte imagem:
Observe que todos os registros retornados dessa consulta são da Flórida e têm danos na safra maiores que zero.
Filtrar usando o has
operador
Um dos tipos de evento nos resultados da última consulta chama-se Thunderstorm Wind. Vamos ver se há algum outro tipo de vento que causou danos materiais na Flórida. Pesquisaremos em uma correspondência de cadeia de wind
caracteres usando o has
operador . O has
operador é uma pesquisa que não diferencia maiúsculas de minúsculas e corresponde a um termo completo.
Execute a seguinte consulta:
StormEvents | where DamageProperty > 0 | where State == "FLORIDA" | where EventType has "wind" | project StartTime, EventType, DamageProperty
Você deve obter resultados parecidos com a seguinte imagem:
Observe nos resultados que eventos como tornados não aparecem mais, mas os tipos de eventos Vento Trovoada e Vento Forte aparecem.
O contains
operador é semelhante ao , mas corresponde em has
qualquer substring. Por exemplo, a consulta a seguir retorna resultados como Névoa congelante e Geada/congelamento.
StormEvents | where EventType contains "free"
O has
operador é mais eficiente do que o contains
operador, por isso deve usar has
onde quer que tenha uma escolha entre os dois.
Filtrar valores datetime
Vejamos mais de perto os danos causados no primeiro semestre do ano civil. Pode ser útil limitar a sua pesquisa a eventos dentro de um intervalo de tempo específico. Algumas interfaces com Kusto Query Language têm um seletor de tempo suspenso, mas outras exigem que você incorpore o filtro de data na própria consulta.
Como os intervalos de tempo são limitados por dois extremos, é mais eficiente construir uma consulta em que você escolhe um valor que esteja entre esses dois tempos.
A sintaxe para construir este intervalo de datas é a seguinte:
where
Horabetween
(datetime(
valor do valor)..datetime(
))
Vamos incorporar esse
datetime
intervalo em um tipo de consulta que você já viu. Execute a seguinte consulta:StormEvents | where StartTime between (datetime(2007-01-01)..datetime(2007-06-01)) | where DamageProperty > 0 | where State == "FLORIDA" | project StartTime, EventType, DamageProperty | take 50
Você deve obter resultados parecidos com a seguinte imagem:
Observe que todas as datas são dentro do primeiro semestre do ano, meses um a seis. Você também pode notar que, embora tenha selecionado eventos do estado da Flórida, o estado não aparece como uma coluna de saída, porque não foi especificado no
project
operador.