Como executar suas primeiras instruções SQL usando o Google Cloud Dataflow

1. Introdução

Cloud-Dataflow.png

Google Cloud Dataflow

Última atualização:26 de maio de 2020

O que é o Dataflow?

O Dataflow é um serviço gerenciado que executa uma ampla variedade de padrões de processamento de dados. A documentação neste site mostra como implantar os pipelines de processamento de dados em lote e streaming usando o Dataflow, incluindo instruções de uso dos recursos do serviço.

O SDK do Apache Beam é um modelo de programação de código aberto que permite desenvolver pipelines em lote e de streaming. Os pipelines são criados com um programa do Apache Beam e executados no serviço Dataflow. A documentação do Apache Beam (em inglês) fornece informações conceituais aprofundadas e material de referência para o modelo de programação, os SDKs e outros executores do Apache Beam.

Análise de dados de streaming com velocidade

O Dataflow permite o desenvolvimento rápido e simplificado de pipelines de dados de streaming com menor latência de dados.

Simplifique as operações e o gerenciamento

As equipes podem se concentrar na programação em vez de gerenciar clusters de servidor, já que a abordagem sem servidor do Dataflow remove a sobrecarga operacional das cargas de trabalho de engenharia de dados.

Reduzir o custo total de propriedade

O escalonamento automático de recursos aliado ao potencial de processamento em lote com custo otimizado permitem ao Dataflow oferecer uma capacidade praticamente ilimitada de gerenciar altos e baixos nas cargas de trabalho sem gastar demais.

Principais recursos

Gerenciamento automatizado de recursos e rebalanceamento dinâmico de trabalho

O Dataflow automatiza o provisionamento e o gerenciamento de recursos de processamento para minimizar a latência e maximizar a utilização. Assim, você não precisa ativar instâncias ou reservá-las manualmente. O particionamento de trabalho também é automatizado e otimizado para reequilibrar dinamicamente o trabalho atrasado. Não é preciso procurar teclas de atalho ou pré-processar dados de entrada.

Escalonamento automático horizontal

Escalonamento automático horizontal de recursos de worker para alcançar os melhores resultados de capacidade com o melhor custo-benefício.

Preços flexíveis de programação de recursos para processamento em lote

Para o processamento com flexibilidade no tempo de agendamento do job, como jobs noturnos, o agendamento flexível de recursos (FlexRS) oferece um preço menor para o processamento em lote. Esses jobs flexíveis são colocados em uma fila com a garantia de que serão recuperados para execução dentro de seis horas.

O que você executará como parte deste

Neste codelab, você vai começar a usar o SQL do Dataflow enviando uma instrução SQL pela interface do SQL do Dataflow. Em seguida, você vai conhecer o pipeline em execução usando a interface de monitoramento do Dataflow.

O que você vai aprender

  • Como enviar uma instrução SQL como um job do Dataflow na IU do Dataflow SQL.
  • Como navegar até o pipeline do Dataflow.
  • Analisar o gráfico do Dataflow criado pela instrução SQL.
  • Analise as informações de monitoramento fornecidas pelo gráfico.

O que é necessário

  • Um projeto do Google Cloud Platform com o faturamento ativado.
  • Google Cloud Dataflow e Google Cloud PubSub ativados.

2. Etapas da configuração

Verifique se a API Dataflow e a API Cloud Pub/Sub estão ativadas. Você pode confirmar isso consultando o "Serviços".

3. Como acessar a IU do Dataflow SQL

A IU do Dataflow SQL é uma configuração de IU da Web do BigQuery para criar jobs SQL do Dataflow. É possível acessar a IU do Dataflow SQL na IU da Web do BigQuery.

  1. Acesse a IU da Web do BigQuery.

  1. Alterne para o Cloud Dataflow Engine.
  • Clique no menu suspenso Mais e selecione Configurações de consulta.

O menu suspenso "Mais" na IU da Web do BigQuery com a opção "Configurações da consulta" selecionada

  • No menu Configurações de consulta, selecione Dataflow Engine.
  • No prompt que aparece se as APIs Dataflow e Data Catalog não estiverem ativadas, clique em Ativar APIs.

O menu "Configurações da consulta" com o prompt "Ativar APIs"

  • Clique em Salvar. O menu de "Configurações da consulta" com o botão de opção do Dataflow Engine selecionado e as APIs ativadas

Também é possível acessar a interface do Dataflow SQL na interface de monitoramento do Dataflow.

  • Acesse a interface de monitoramento do Dataflow.

  • Clique em Criar job do SQL.

4. Como executar um job do Dataflow com uma consulta SQL

Como criar consultas SQL do Dataflow

As consultas SQL do Dataflow usam a sintaxe de consulta SQL do Dataflow. A sintaxe da consulta do Dataflow SQL é semelhante à SQL padrão do BigQuery. É possível usar as extensões de streaming do Dataflow SQL para agregar dados de fontes do Dataflow atualizadas continuamente, como o Pub/Sub. Por exemplo, a consulta a seguir conta os passageiros em um fluxo do Pub/Sub de corridas de táxi a cada minuto:

SELECT
  TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
  SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
  ride_status = "pickup"
GROUP BY
  TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')

Como executar consultas SQL do Dataflow

Quando você executa uma consulta do Dataflow SQL, o Dataflow transforma a consulta em um pipeline do Apache Beam e executa o pipeline.

É possível executar uma consulta SQL do Dataflow usando o Console do Cloud ou a ferramenta de linha de comando gcloud.

Para executar uma consulta do SQL do Dataflow, use a IU do SQL do Dataflow.

  • Acesse a IU do Dataflow SQL.
  • Insira a consulta SQL do Dataflow acima no editor de consultas.
  • Clique em Criar job do Cloud Dataflow para abrir um painel de opções de job.
  • (Opcional) Clique em Mostrar parâmetros opcionais e procure na lista.
  • Na seção "Destination" do painel, selecione "BigQuery" como o tipo de saída.

1155e94529ff58fe.png

  • Selecione um ID de conjunto de dados e crie uma tabela com o nome "passengers_per_min"
  • Clique em "Criar".

Para mais informações sobre como consultar dados e gravar resultados de consultas do Dataflow SQL, consulte Usar o SQL do Dataflow.

5. Como explorar o job na IU de monitoramento do Dataflow

Quando você executa seu pipeline usando o serviço gerenciado do Dataflow, é possível visualizar esse job e qualquer outro usando a interface do usuário de monitoramento do Dataflow baseada na Web. A interface de monitoramento permite visualizar e interagir com suas tarefas do Dataflow.

É possível acessar a interface de monitoramento do Dataflow usando o Console do Google Cloud. A interface de monitoramento mostra:

  • Uma lista de todos os jobs do Dataflow em execução e já executados nos últimos 30 dias.
  • uma representação gráfica de cada pipeline;
  • detalhes do status, execução e versão do SDK do job;
  • links para informações sobre os serviços do Google Cloud que executam seu pipeline, como o Compute Engine e o Cloud Storage.
  • quaisquer erros ou avisos que ocorrem durante um job.

É possível visualizar gráficos de monitoramento de jobs na interface de monitoramento do Dataflow. Esses gráficos mostram métricas durante um job do pipeline e incluem as seguintes informações:

  • Visibilidade em nível de etapa para ajudar a identificar quais etapas podem estar causando atraso no pipeline.
  • Informações estatísticas que podem apresentar comportamento anômalo.
  • Métricas de E/S que podem ajudar a identificar os gargalos nas suas fontes e coletas.

Como acessar a interface de monitoramento do Dataflow

Para acessar a interface de monitoramento do Dataflow, siga estas etapas:

  • Acesse o console do Cloud:

  • Selecione seu projeto do Google Cloud.
  • Clique no menu no canto superior esquerdo.
  • Navegue até a seção Big Data e clique em Dataflow.

Uma lista de jobs do Dataflow é exibida junto com o status deles.

58f6402cc923d6bb.png

Uma lista de jobs do Dataflow no Console do Cloud com jobs nos estados "Em execução", "Com falha" e "Concluído".

Um job pode ter os seguintes status:

  • : a IU de monitoramento ainda não recebeu um status do serviço do Dataflow.
  • Em execução: o job está sendo executado no momento.
  • Não iniciado: o job é criado, mas o sistema precisa de algum tempo para se preparar antes do lançamento.
  • Na fila: um job do FlexRS é colocado na fila.
  • Cancelando...: o job está sendo cancelado.
  • Cancelado: o job que foi cancelado pelo usuário.
  • Drenando...: o job está sendo drenado.
  • Drenado: o usuário drenou o job.
  • Atualizando...: o job está sendo atualizado.
  • Atualizado: o usuário atualizou o job.
  • Com êxito: o job foi concluído com sucesso.
  • Com falha: o job não foi concluído.

Procure o job com "dfsql" como parte do cargo e clicar em seu nome.

e3bce9b1929564c9.png

A página "Detalhes do job", que contém o seguinte:

  • Gráfico do job: a representação visual do pipeline
  • Métricas do job: métricas sobre a execução do job
  • Painel de informações do job: informações descritivas sobre o pipeline
  • Registros do job: registros gerados pelo serviço Dataflow no nível do job
  • Registros de worker: registros gerados pelo serviço Dataflow no nível do worker
  • Relatório de erros de jobs: gráficos que mostram onde ocorreram erros ao longo do cronograma escolhido e uma contagem de todos os erros registrados
  • Seletor de tempo: ferramenta que permite ajustar o período das suas métricas

Na página "Detalhes do job", é possível alternar a visualização do job para o gráfico do job e a guia de métricas do job.

  • Clique na guia MÉTRICAS DO JOB e analise os gráficos

7076f8a8911066ab.png

6. Como interromper seu job do Dataflow SQL

Para interromper jobs do Dataflow SQL, use o comando Cancelar. Não é possível interromper um job do SQL do Dataflow com o Drain.

1229697a873e1cf9.png