O Dataflow é um serviço totalmente gerenciado para executar pipelines de processamento de dados em lote e de streaming. Ele fornece provisionamento e gerenciamento automatizados de recursos de computação e oferece processamento consistente, confiável e exatamente uma vez dos dados. O Dataflow oferece suporte a muitos casos de uso de processamento de dados, incluindo análise de streams, IA em tempo real, processamento de dados de sensor e registro, além de outros fluxos de trabalho que envolvem transformação de dados.
Criar um pipeline ou usar um modelo
Para criar um pipeline de dados para o Dataflow, use o Apache Beam, um modelo unificado de código aberto para definir pipelines de processamento de dados em lote e de streaming. O modelo de programação do Apache Beam simplifica a mecânica do processamento de dados em grande escala. Usando um dos SDKs do Apache Beam, é possível criar um programa que define o pipeline. Em seguida, execute o pipeline no Dataflow.
O modelo do Apache Beam fornece abstrações úteis que ocultam os detalhes de baixo nível do processamento distribuído, como coordenar workers individuais e fragmentar conjuntos de dados. O Dataflow gerencia totalmente esses detalhes de baixo nível. Esse modelo permite manter o foco na composição lógica do job de processamento de dados, e não na orquestração física do processamento paralelo. Você pode se concentrar no que seu job precisa fazer, e não como ele será executado exatamente.
Se você não quiser criar seu próprio pipeline, use um dos modelos do Dataflow fornecidos pelo Google. Esses modelos definem transformações de dados comuns, como ler dados de streaming no Pub/Sub e gravá-los no Cloud Storage ou ler dados de streaming no Apache Kafka e gravá-los no BigQuery. Também é possível criar seus próprios modelos personalizados do Dataflow para compartilhar seus pipelines em uma equipe ou organização.
Os modelos do Dataflow permitem que você empacote um pipeline do Dataflow para implementação. Qualquer pessoa com as permissões corretas pode usar o modelo para implantar um pipeline. Os modelos separam o design do pipeline da implantação Por exemplo, um desenvolvedor pode criar um modelo e um cientista de dados pode implantá-lo mais tarde usando parâmetros para personalizar o job no ambiente de execução.
Recursos do Dataflow
O Dataflow fornece muitos recursos para ajudar a executar pipelines de dados seguros, confiáveis e econômicos em escala. Esta seção descreve algumas coisas que você pode fazer com o Dataflow.
Escalonar horizontalmente com o escalonamento automático horizontal
Com o escalonamento automático horizontal ativado, o Dataflow automatically seleciona automaticamente o número apropriado de instâncias de worker necessárias para executar o job. O Dataflow também pode realocar dinamicamente mais ou menos workers durante o ambiente de execução de acordo com as características do job.
Escalonar verticalmente com escalonamento automático vertical
O escalonamento automático vertical permite que o Dataflow escalone dinamicamente ou reduza a memória disponível para os workers de acordo com os requisitos do job. Ele foi projetado para tornar os jobs resilientes a erros de memória insuficiente e para maximizar a eficiência do pipeline. O Dataflow Prime monitora o pipeline, detecta situações em que há falta ou excesso de memória disponível para os workers e os substitui por novos workers com mais ou menos memória.
Executar pipelines sem servidor
É possível executar o pipeline sem servidor usando o Dataflow Prime. O Dataflow Prime é uma plataforma de processamento de dados sem servidor baseada no Dataflow. O Dataflow Prime usa uma arquitetura de computação e separada por estado e inclui recursos projetados para melhorar a eficiência e aumentar a produtividade. Os pipelines que usam o Dataflow Prime se beneficiam do gerenciamento automatizado e otimizado de recursos, da redução de custos operacionais e dos recursos de diagnóstico.
Otimizar recursos por estágio de pipeline
O Right Fitting do Dataflow Prime cria pools de recursos específicos para cada cenário otimizados para cada estágio do pipeline, o que reduz o desperdício de recursos.
Monitorar jobs
Use a interface de monitoramento para explorar e interagir com os jobs do Dataflow. A interface de monitoramento mostra uma lista de jobs do Dataflow, uma representação gráfica de cada pipeline, detalhes sobre o status de cada job, links para informações sobre os serviços do Google Cloud que executam seu pipeline, todos os erros ou avisos que ocorrem durante um job, além de outros diagnósticos e métricas.
Visualizar o desempenho do job
Parte da guia Detalhes da execução no console do Dataflow, o Job Visualizer permite ver as métricas de desempenho de um job do Dataflow e otimizar o desempenho do job, encontrando código ineficiente, incluindo gargalos de carregamento em paralelo. Também é possível conferir a lista de etapas associadas a cada estágio do pipeline.
Separar os recursos de streaming do armazenamento
O Streaming Engine separa a computação do armazenamento de estado para pipelines de streaming. Ele move partes da execução do pipeline das VMs de worker para o Dataflow, melhorando significativamente o escalonamento automático e a latência dos dados.
Embaralhar os dados de forma eficiente
O Dataflow Shuffle tira as operações de embaralhamento, usadas para agrupar e mesclar dados, das VMs de worker e as coloca nos pipelines em lote. O escalonamento dos pipelines em lote é feito para centenas de terabytes. O processo não tem complicações e não precisa de ajustes.
Reduzir custos do processamento em lote
A Programação flexível de recursos (FlexRS) reduz os custos de processamento em lote usando técnicas de programação avançadas, o serviço Dataflow Shuffle e uma combinação de instâncias de VM preemptivas e VMs comuns.
Executar pipelines em notebooks
Crie pipelines iterativamente do zero com os notebooks da Vertex AI e execute os jobs no Dataflow. Crie pipelines do Apache Beam gradualmente, inspecionando os gráficos dos pipelines em um fluxo de trabalho read-eval-print-loop (REPL). Com os notebooks, é possível escrever pipelines em um ambiente intuitivo com os mais recentes frameworks de ciência de dados e machine learning.
Receber recomendações inteligentes
Otimize pipelines com base em recomendações informadas pelo machine learning. As recomendações ajudam a melhorar o desempenho do job, reduzir custos e solucionar erros.
Proteger pipelines com chaves de criptografia gerenciadas pelo cliente
Com uma chave de criptografia gerenciada pelo cliente, (CMEK) é possível criptografar dados em repouso com uma chave controlada usando o Cloud KMS. É possível criar um pipeline em lote ou de streaming protegido por uma CMEK e acessar dados protegidos por CMEK em origens e coletores.
Especificar redes e sub-redes
A integração do Dataflow com o VPC Service Controls protege ainda mais seu ambiente de processamento de dados ao melhorar sua capacidade de reduzir o risco de exfiltração de dados. É possível especificar uma rede ou uma sub-rede ou ambas as opções ao executar jobs do Dataflow.
Configurar IPs particulares
A desativação de IPs públicos permite proteger melhor sua infraestrutura de processamento de dados. Ao não utilizar endereços IP públicos para workers do Dataflow, você também diminui o número de endereços IP públicos consumidos na sua cota do projeto do Google Cloud.
Começar
Para começar a usar o Dataflow, use um dos guias de início rápido:
- Criar um pipeline do Dataflow usando Java
- Criar um pipeline do Dataflow usando Python
- Criar um pipeline do Dataflow usando Go
- Criar um pipeline de streaming usando um modelo do Dataflow