EXEMPLO: funções NOW e TODAY

Este exemplo ilustra como as funções NOW e TODAY operam. Ambas as funções geram saídas do tipo de dados Datetime.

  • NOW: gera valores Datetime válidos para o carimbo de data/hora atual no fuso horário especificado. Consulte Função NOW.
  • TODAY: gera Datetime válido para a data atual no fuso horário especificado. Consulte Função TODAY.
  • DATEDIF: calcula a diferença entre dois valores Datatime com base em uma unidade de medida específica. Consulte Função DATEDIF.

Origem:

A tabela a seguir inclui informações sobre chegadas de voo do aeroporto internacional de Los Angeles.

FlightNumberPortãoChegada
1234115/02/17 11:35
212215/02/17 11:58
510315/02/17 11:21
8401415/02/17 12:08
99516/02/17 12:12
116616/02/17 13:32
876715/02/17 16:43
9494815/02/17 21:00
102914/02/17 19:21
771016/02/17 12:31

Transformação:

Você tem interesse em gerar um relatório de status sobre os voos de hoje. Para ajudar, você precisa gerar colunas com os valores de data e hora atuais:

Dica: crie colunas separadas que contenham valores estáticos para as funções NOW e TODAY. Evite criar várias instâncias de cada função no conjunto de dados, porque os valores calculados neles podem variar em tempo de execução.

derive value: NOW('America\/Los_Angeles') as: 'currentTime'

derive value: TODAY('America\/Los_Angeles') as: 'currentDate'

Em seguida, identifique os voos que estão aterrissando hoje. Nesse caso, você pode usar a função DATEDIF para determinar se o valor Arrival corresponde ao valor currentTime dentro de um dia:

OBSERVAÇÃO: a função DATEDIF faz o cálculo com base na diferença da primeira para a segunda data. Essa operação é baseada na unidade de medida. Dessa forma, um carimbo de data/hora com 23 horas de diferença em relação ao carimbo de base pode estar dentro da mesma unidade do dia, mesmo que as datas possam ser diferentes (2/15/2017 x 2/14/2017).

derive value: datedif(currentDate, Arrival, day) as: 'today'

Como você está concentrando apenas no dia de hoje, é possível remover todas as linhas que não se aplicam a hoje:

delete row: today != 0

Agora, concentrando-se nas datas de hoje, você pode calcular a diferença entre a hora atual e a hora de chegada pelo minuto:

derive value: datedif(currentTime, Arrival, minute) as: 'status'

Usando os valores numéricos na coluna status, você pode compor a transformação abaixo, que identifica o status de cada voo:

set col: status value: if(status < -20, 'arrived', if(status > 20, 'scheduled', if(status <= 0, 'landed', 'arriving')))

Resultados:

Agora você tem um relatório diário de status dos voos:

currentDatecurrentTimeFlightNumberPortãoChegadastatushoje
2017-02-152017-02-15·11:46:121234115/02/17 11:35em terra0
2017-02-152017-02-15·11:46:12212215/02/17 11:58em aproximação0
2017-02-152017-02-15·11:46:12510315/02/17 11:21em pouso0
2017-02-152017-02-15·11:46:128401415/02/17 12:08em programação0
2017-02-152017-02-15·11:46:12876715/02/17 16:43em programação0
2017-02-152017-02-15·11:46:129494815/02/17 21:00em programação0
2017-02-152017-02-15·11:46:12102914/02/17 19:21em pouso0

As colunas currentDate, currentTime e today podem ser excluídas.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.