Analytics / Big Data Google Cloud

Como processar grandes volumes de dados com Google Dataflow (e sem precisar gerenciar servidores)

DataFlow
Escrito por Karen Ferraz

O Dataflow é o serviço de processamento de dados gerenciado do Google Cloud. Permite que os dados sejam processados de forma confiável e consistente para que os engenheiros de dados possam confiar nos resultados que seus sistemas produzem.

Os trabalhos no Dataflow são escritos usando o SDK do Apache Beam, que oferece escolha de linguagem de programação para o Dataflow, além da portabilidade.

Baseado em abordagem sem servidor, o Dataflow remove a sobrecarga operacional das cargas de trabalho da engenharia de dados para que as equipes possam se concentrar na programação em vez de gerenciar clusters de servidores. Vale destacar que o termo “serverless” (sem servidor) pode ser traduzido como uma forma de eliminar preocupações com em infraestrutura no processamento de dados, pagando apenas pelo uso.

Leia mais: Conheça os principais serviços de análise de streaming do Google Cloud

Além disso, o escalonamento automático de recursos junto com o potencial de processamento em lote com custo otimizado permite ao Dataflow oferecer uma capacidade praticamente ilimitada para gerenciar os altos e baixos das suas cargas de trabalho sem gastar demais. Essa capacidade também possibilita aos engenheiros de dados alternar facilmente entre os dois modos de streaming em lote, o que significa que os usuários podem experimentar resultados em tempo real e processamento em lote econômico, sem alterações no código.

O Dataflow utiliza uma arquitetura chamada lambda, que consiste em uma coleção de ferramentas para processamento e streaming de dados.
A ferramenta pode ser utilizada em conjunto com outros produtos da Google Cloud Platform (GCP), como PubSub e BigQuery, para construir processos de dados. Também funciona em conjunto com diversas outras aplicações open source de processamento de dados.

Por que os clientes usam DataFlow?

– Processamento em lote e streaming unificado
– Processamento de dados totalmente gerenciado e autônomo
– Modelo de programação de código aberto
– Escala de forma inteligente para milhões de QPS

Como processar grandes volumes de dados com Google Dataflow

Antes de tudo, é importante entender o que é um pipeline de dados. Trata-se de um tipo de aplicação que processa dados por meio de uma sequência de etapas de processamento conectadas.

Os pipelines de dados podem ser aplicados em diversos casos de uso, como processamento de dados em tempo real. Eles são operados como um processo em lote, que executa e depois processa dados durante a execução ou como um processo de streaming, que executa continuamente e processa dados à medida que eles se tornam disponíveis para o pipeline.

O DataFlow é justamente um serviço gerenciado para executar pipelines de processamento de dados em lote e streaming desenvolvidos com o SDK do Apache Beam. Tudo isso sem servidor, ou seja, usando código e SQL, enquanto remove ou simplifica muitas tarefas operacionais e de infraestrutura.

Por exemplo, os recursos do Dataflow incluem provisionamento e escalonamento de infraestrutura automáticos, atualizações de pipeline e implantação padronizada para execuções repetíveis.

Como acontece com outros aplicativos, ativar a prontidão da produção para pipelines do Dataflow envolve mais do que apenas gravar e executar código. É preciso coletar e analisar requisitos, planejar seu projeto e avaliar o desempenho.

A fim de garantir confiabilidade e a manutenção do pipeline, durante o processo de desenvolvimento, é preciso seguir práticas recomendadas de codificação. Assim, o Google recomenda o uso de práticas modernas de DevOps, como integração contínua e entrega (CI/CD), para transformar o código do Apache Beam na estação de trabalho do desenvolvedor em pipelines do Dataflow que são executados na produção.

Já para os pipelines em execução, o recomendado é usar o monitoramento, alertas e relatórios de erros para ajudar a solucionar erros de pipeline, entender problemas de desempenho e de dados e fornecer o desempenho geral do pipeline em relação aos objetivos de nível de serviço (SLOs).

Ao combinar o Dataflow com outros serviços gerenciados do Google Cloud, os desenvolvedores podem simplificar muitos aspectos da produção de pipelines de dados em comparação com soluções autogerenciadas. Por exemplo, pode-se usar um pacote de operações do Google Cloud para monitoramento e relatórios de erros e o Cloud Composer para orquestração de pipeline.

Em resumo, os processos de criação de pipelines de dados no DataFlow envolvem:

Planejamento: quais requisitos não funcionais precisam ser capturados antes de começar o desenvolvimento? Por que você precisa pensar nos SLOs durante o estágio de planejamento e como configurá-los? Como os SLOs podem informar o design dos pipelines de dados? Qual o possível impacto que você precisa considerar para sistemas upstream e downstream?

Desenvolvimento e teste: quais práticas recomendadas você deve observar ao escrever o código do Apache Beam? Quais testes você precisa criar e automatizar? Como os desenvolvedores de pipeline precisam trabalhar com ambientes de implantação diferentes para escrever, testar e executar código?

Implantação:
como atualizar os pipelines que já estão em execução quando uma nova versão é disponibilizada? Como aplicar práticas de CI/CD a pipelines de dados?

Monitoramento:
que monitoramento você precisa ter para pipelines de produção? Como detectar e resolver problemas de desempenho, de manipulação de dados e de erros de código na produção?




Sobre o(a) autor(a)

Karen Ferraz

Jornalista especializada em tecnologia há mais de 10 anos, com atuação em veículos nacionais e internacionais. Atualmente, é mestranda em Sustentabilidade pela USP, onde pesquisa mudanças climáticas.

Deixe um Comentário