Vista geral do Dataflow

O Dataflow é um Google Cloud serviço que oferece um processamento de dados de streaming e em lote unificado em grande escala. Use o Dataflow para criar pipelines de dados que leiam a partir de uma ou mais origens, transformem os dados e escrevam os dados num destino.

Seguem-se alguns exemplos de utilização típicos do Dataflow:

  • Movimento de dados: carregamento ou replicação de dados entre subsistemas.
  • ETL (extração, transformação e carregamento) que carregam dados para um armazém de dados, como o BigQuery.
  • Apoio técnico de back-end para painéis de controlo de business intelligence (BI)
  • Análise de aprendizagem automática (ML) em tempo real de dados de streaming.
  • Processamento de dados de sensores ou processamento de dados de registo à escala.

O Dataflow usa o mesmo modelo de programação para a análise em lote e por streaming. Os pipelines de streaming podem alcançar uma latência baixa. Pode carregar, processar e analisar volumes flutuantes de dados em tempo real. Por predefinição, o Dataflow oferece o processamento exatamente uma vez de cada registo. Para pipelines de streaming que podem tolerar duplicados, pode reduzir o custo e melhorar a latência ativando o modo pelo menos uma vez.

Vantagens do tratamento de dados com o Dataflow

Esta secção descreve algumas das vantagens da utilização do Dataflow.

Tratamento de dados gerido

O Dataflow é um serviço totalmente gerido. Isto significa que a Google gere todos os recursos necessários para executar o Dataflow. Quando executa uma tarefa do Dataflow, o serviço Dataflow atribui um conjunto de VMs de trabalho para executar o pipeline. Não tem de aprovisionar nem gerir estas VMs. Quando a tarefa é concluída ou cancelada, o Dataflow elimina automaticamente as VMs. A faturação é feita com base nos recursos de computação usados pela tarefa. Para mais informações sobre os custos, consulte a secção Preços do Dataflow.

Data pipelines escaláveis

O Dataflow foi concebido para suportar pipelines de streaming e em lote em grande escala. Os dados são processados em paralelo, pelo que o trabalho é distribuído por várias VMs.

O Dataflow pode ser dimensionado automaticamente através do aprovisionamento de VMs de trabalho adicionais ou do encerramento de algumas VMs de trabalho se forem necessárias menos. Também otimiza o trabalho com base nas características do pipeline. Por exemplo, o Dataflow pode reequilibrar dinamicamente o trabalho entre as VMs, para que o trabalho paralelo seja concluído de forma mais eficiente.

Portátil com o Apache Beam

O Dataflow é criado com base no projeto de código aberto Apache Beam. O Apache Beam permite-lhe escrever pipelines usando um SDK específico do idioma. O Apache Beam suporta SDKs Java, Python e Go, bem como pipelines em vários idiomas.

O Dataflow executa pipelines do Apache Beam. Se decidir mais tarde executar o pipeline numa plataforma diferente, como o Apache Flink ou o Apache Spark, pode fazê-lo sem reescrever o código do pipeline.

Desenvolvimento de data pipelines flexíveis

Pode usar o Dataflow para pipelines com exemplos de utilização simples, como apenas mover dados. No entanto, o Dataflow também é adequado para aplicações mais avançadas, como estatísticas de streaming em tempo real. Uma solução criada no Dataflow pode crescer com as suas necessidades à medida que passa do processamento em lote para o streaming ou encontra exemplos de utilização mais avançados.

O Dataflow suporta várias formas diferentes de criar e executar pipelines, consoante as suas necessidades:

  • Escrever código com os SDKs do Apache Beam.

  • Implemente um modelo do Dataflow. Os modelos permitem-lhe executar pipelines predefinidos. Por exemplo, um programador pode criar um modelo e, em seguida, um cientista de dados pode implementá-lo a pedido.

    A Google também disponibiliza uma biblioteca de modelos para cenários comuns. Pode implementar estes modelos sem conhecer nenhum conceito de programação do Apache Beam.

  • Use blocos de notas do JupyterLab para desenvolver e executar pipelines de forma iterativa.

Tarefas de data pipeline de dados observáveis

Pode monitorizar o estado das tarefas do Dataflow através da interface de monitorização do Dataflow na Google Cloud consola. A interface de monitorização inclui uma representação gráfica do seu pipeline, que mostra o progresso e os detalhes de execução de cada fase do pipeline. A interface de monitorização facilita a deteção de problemas, como gargalos ou latência elevada. Também pode criar perfis dos seus trabalhos do Dataflow para monitorizar a utilização da CPU e a alocação de memória.

Como funcionam os pipelines de dados para o processamento por streaming e em lote

O Dataflow usa um modelo de pipeline de dados, em que os dados se movem através de uma série de fases. As fases podem incluir a leitura de dados de uma origem, a transformação e a agregação dos dados, e a escrita dos resultados num destino.

Os pipelines podem variar desde o processamento muito básico ao mais complexo. Por exemplo, um pipeline pode fazer o seguinte:

  • Mover os dados tal como estão para um destino.
  • Transformar os dados para serem mais utilizáveis pelo sistema de destino.
  • Agregue, processe e enriqueça os dados para análise.
  • Junte dados a outros dados.

Um pipeline definido no Apache Beam não especifica como o pipeline é executado. A execução do pipeline é a tarefa de um executor. O objetivo de um executor é executar um pipeline do Apache Beam numa plataforma específica. O Apache Beam suporta vários executores, incluindo um executor do Dataflow.

Para usar o Dataflow com os seus pipelines do Apache Beam, especifique o executor do Dataflow. O executor carrega o código executável e as dependências para um contentor do Cloud Storage e cria uma tarefa do Dataflow. Em seguida, o Dataflow atribui um conjunto de VMs para executar o pipeline.

O diagrama seguinte mostra uma solução de ETL e BI típica que usa o Dataflow e outros Google Cloud serviços:

Diagrama de uma solução de ETL e BI que usa o Dataflow.

Este diagrama mostra as seguintes fases:

  1. O Pub/Sub carrega dados de um sistema externo.
  2. O Dataflow lê os dados do Pub/Sub e escreve-os no BigQuery. Durante esta fase, o Dataflow pode transformar ou agregar os dados.
  3. O BigQuery funciona como um armazém de dados, permitindo que os analistas de dados executem consultas ad hoc nos dados.
  4. O Looker oferece estatísticas de BI em tempo real a partir dos dados armazenados no BigQuery.

Para cenários básicos de movimento de dados, pode executar um modelo fornecido pela Google. Alguns modelos suportam funções definidas pelo utilizador (FDUs) escritas em JavaScript. As FUDs permitem-lhe adicionar lógica de processamento personalizada a um modelo. Para pipelines mais complexos, comece com o SDK do Apache Beam.

O que se segue?