Um oleoduto de dados é uma série de etapas de processamento de dados. Se os dados não são carregados na plataforma de dados, então eles são ingeridos no início da tubulação. Depois há uma série de passos em que cada passo fornece uma saída que é a entrada para o próximo passo. Isto continua até que o pipeline esteja completo. Em alguns casos, passos independentes podem ser executados em paralelo.
O pipeline de dados consiste em três elementos chave: uma fonte, um ou mais passos de processamento e um destino. Em alguns pipelines de dados, o destino pode ser chamado de afundamento. Os pipelines de dados permitem o fluxo de dados de uma aplicação para um data warehouse, de um data lake para uma base de dados analítica, ou para um sistema de processamento de pagamentos, por exemplo. Os pipelines de dados também podem ter a mesma fonte e pia, de tal forma que o pipeline se trata apenas de modificar o conjunto de dados. Sempre que os dados são processados entre os pontos A e B (ou pontos B, C e D), há um pipeline de dados entre esses pontos.
As organizações procuram construir aplicações com pequenas bases de código que servem um propósito muito específico (esses tipos de aplicações são chamados de “microserviços”), elas estão movendo dados entre mais e mais aplicações, fazendo da eficiência dos pipelines de dados uma consideração crítica em seu planejamento e desenvolvimento. Dados gerados em um sistema fonte ou aplicação podem alimentar múltiplos pipelines de dados, e esses pipelines podem ter múltiplos outros pipelines ou aplicações que dependem de suas saídas.
Considerar um único comentário sobre mídias sociais. Este evento poderia gerar dados para alimentar um relatório em tempo real contando as menções das mídias sociais, uma aplicação de análise de sentimentos que produz um resultado positivo, negativo ou neutro, ou um gráfico de aplicação que menciona cada menção em um mapa mundial. Embora os dados sejam da mesma fonte em todos os casos, cada uma dessas aplicações é construída sobre pipelines de dados únicos que devem ser concluídos sem problemas antes que o usuário final veja o resultado.
Passos comuns em pipelines de dados incluem transformação de dados, aumento, enriquecimento, filtragem, agrupamento, agregação e a execução de algoritmos contra esses dados.
O que é um grande pipeline de dados?
Como o volume, variedade e velocidade dos dados tem crescido dramaticamente nos últimos anos, arquitetos e desenvolvedores tiveram que se adaptar aos “grandes dados”. O termo “grandes dados” implica que há um enorme volume para lidar. Esse volume de dados pode abrir oportunidades para casos de uso como análise preditiva, relatórios em tempo real e alertas, entre muitos exemplos.
Como muitos componentes da arquitetura de dados, os pipelines de dados evoluíram para suportar grandes dados. Grandes pipelines de dados são pipelines de dados construídos para acomodar um ou mais dos três traços de grandes dados. A velocidade dos grandes dados torna apelativa a construção de grandes pipelines de dados para grandes dados. Então os dados podem ser capturados e processados em tempo real para que alguma ação possa então ocorrer. O volume dos grandes dados requer que os pipelines de dados sejam escaláveis, pois o volume pode ser variável ao longo do tempo. Na prática, é provável que haja muitos grandes eventos de dados que ocorrem simultaneamente ou muito próximos uns dos outros, portanto o grande pipeline de dados deve ser capaz de escalar para processar volumes significativos de dados ao mesmo tempo. A variedade de grandes dados requer que grandes pipelines de dados sejam capazes de reconhecer e processar dados em muitos formatos diferentes – estruturados, não estruturados e semi-estruturados.
Data Pipeline vs. ETL
ETL refere-se a um tipo específico de pipeline de dados. ETL significa “extract, transform, load” (extrair, transformar, carregar). É o processo de mover dados de uma fonte, tal como uma aplicação, para um destino, geralmente um armazém de dados. “Extrair” refere-se a retirar dados de uma fonte; “transformar” é modificar os dados para que possam ser carregados no destino, e “carregar” é inserir os dados no destino.
ETL tem sido historicamente usado para cargas de trabalho em lote, especialmente em grande escala. Mas uma nova raça de ferramentas ETL de streaming está surgindo como parte do pipeline para dados de eventos de streaming em tempo real.
Data Pipeline Considerations
Data Pipeline architectures requerem muitas considerações. Por exemplo, o seu pipeline precisa lidar com dados em streaming? Qual a taxa de dados que você espera? Quanto e que tipos de processamento precisa acontecer no pipeline de dados? Os dados estão sendo gerados na nuvem ou no local, e para onde eles precisam ir? Você planeja construir o pipeline com microserviços? Existem tecnologias específicas nas quais sua equipe já está bem versada em programação e manutenção?
Arquitetura Exemplos
Os pipelines de dados podem ser arquitetados de várias maneiras diferentes. Um exemplo comum é um pipeline de dados baseado em lotes. Nesse exemplo, você pode ter uma aplicação como um sistema de ponto de venda que gera um grande número de pontos de dados que você precisa empurrar para um data warehouse e um banco de dados analítico. Aqui está um exemplo de como isso seria:
Outro exemplo é um pipeline de dados de streaming. Em um pipeline de dados de streaming, os dados do sistema de ponto de venda seriam processados à medida que são gerados. O motor de processamento de fluxo poderia alimentar as saídas do pipeline para lojas de dados, aplicações de marketing e CRMs, entre outras aplicações, bem como para o próprio sistema do ponto de venda.
Um terceiro exemplo de um fluxo de dados é a Arquitetura Lambda, que combina fluxo de dados em lote e fluxo de dados em uma arquitetura. A Arquitetura Lambda é popular em grandes ambientes de dados porque permite que os desenvolvedores prestem contas tanto de casos de uso de streaming em tempo real quanto de análises históricas de lotes. Um aspecto chave desta arquitetura é que ela encoraja o armazenamento de dados em formato raw para que você possa executar continuamente novos pipelines de dados para corrigir quaisquer erros de código em pipelines anteriores, ou para criar novos destinos de dados que permitam novos tipos de consultas.
Tópicos relacionados
Streaming ETL
Arquitetura Lambda
Processamento em fluxo