Exercício - Filtrar dados usando o operador where

Concluído

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.

  1. Execute a seguinte consulta:

    Executar a consulta

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | take 10
    
  2. Você deve obter resultados parecidos com a seguinte imagem:

    Screenshot of query results of a where operator with a numerical operator of greater than zero.

  3. Observe que todas as linhas retornadas têm , de fato, valores de DamageProperty maiores que zero.

  4. 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:

    Executar a consulta

    StormEvents
    | where DamageProperty > 0
    | where StartTime > ago(365d)
    | project State, EventType, DamageProperty
    
  5. 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.

  1. Execute a seguinte consulta, que usa um segundo where operador com o valor "FLORIDA"da cadeia de caracteres:

    Executar a consulta

    StormEvents
    | where DamageCrops > 0
    | where State == "FLORIDA"
    | project State, EventType, DamageCrops
    
  2. Você deve obter resultados parecidos com a seguinte imagem:

    Screenshot of query results for two where operators.

  3. Observe que todos os registros retornados dessa consulta são da Flórida e têm danos de 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.

  1. Execute a seguinte consulta:

    Executar a consulta

    StormEvents
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | where EventType has "wind"
    | project StartTime, EventType, DamageProperty
    
  2. Você deve obter resultados parecidos com a seguinte imagem:

    Screenshot of query results for where and has operators.

  3. 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 hasqualquer substring. Por exemplo, a consulta a seguir retornará resultados como Congelamento de névoa 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:

whereValor do valor)..datetime(do tempobetween(datetime())

  1. Vamos incorporar esse datetime intervalo em um tipo de consulta que você já viu. Execute a seguinte consulta:

    Executar a 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
    
  2. Você deve obter resultados parecidos com a seguinte imagem:

    Screenshot of query results for where operators that include a time range.

  3. 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.