1. Introdução
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.
- Acesse a IU da Web do BigQuery.
- Alterne para o Cloud Dataflow Engine.
- Clique no menu suspenso Mais e selecione Configurações de consulta.
- 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.
- Clique em Salvar.
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.
- 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.
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.
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
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.