Skip to content
Latchkey

O que é um pipeline de dados? Movendo e transformando dados explicado

Um pipeline de dados é uma série de passos automatizados que move dados de onde são produzidos para onde são usados, transformando-os e validando-os ao longo do caminho.

Um pipeline de dados é o encanamento de uma plataforma de dados. Ele pega dados brutos de fontes como bancos de dados, APIs e streams de eventos, os transforma em um formato limpo e útil, e os deposita em algum lugar que analistas e modelos possam usar. Como um pipeline de CI/CD, ele é construído a partir de estágios discretos e automatizados que rodam em ordem.

O que é um pipeline de dados

Um pipeline de dados é um conjunto ordenado de passos - extrair, limpar, transformar, validar, carregar - que processa dados de uma origem para um destino. Cada passo tem entradas e saídas, e o pipeline pode ser reexecutado para reproduzir seus resultados. O destino é frequentemente um data warehouse, um data lake ou um feature store.

Batch versus streaming

Um pipeline em batch processa dados em blocos, seguindo um cronograma, como toda noite processar a noite anterior. Um pipeline de streaming processa eventos continuamente, à medida que chegam, com baixa latência. Muitas plataformas rodam ambos: batch para o trabalho histórico pesado e streaming para dados frescos, quase em tempo real.

Orquestração e dependências

Pipelines reais têm passos que dependem uns dos outros, então geralmente são modelados como um DAG (grafo acíclico direcionado) e executados por um orquestrador como Airflow ou Dagster. O orquestrador decide o que pode rodar em paralelo, faz retry de passos que falharam e rastreia quais execuções tiveram sucesso.

Testando pipelines de dados em CI

Código de pipeline é código, então ele pertence ao CI: faça lint das transformações, teste-as unitariamente contra pequenas fixtures e execute o pipeline de ponta a ponta contra dados de amostra em cada pull request. Pegar uma transformação quebrada antes que ela corrompa o warehouse é muito mais barato do que corrigi-la depois.

Validating a pipeline in CI
# CI for a data pipeline
steps:
  - run: pytest tests/transforms   # unit-test transforms
  - run: python run_pipeline.py --sample data/fixtures
  - run: great_expectations checkpoint run nightly

Nota da Latchkey

Jobs de teste de pipeline puxam datasets de amostra e sobem service containers, como um banco de dados local. Na Latchkey você pode fazer cache dessas fixtures e dependências entre execuções e aplicar retry automático em falhas transitórias quando uma API de origem ou um object store dá um soluço, para que uma busca de dados instável não marque com um X vermelho um build que de outra forma estaria bom.

Principais conclusões

  • Um pipeline de dados é um conjunto ordenado de passos automatizados que move e transforma dados da origem ao destino.
  • Pipelines rodam em batch (blocos agendados) ou streaming (eventos contínuos), e os complexos são modelados como DAGs.
  • O código de pipeline deve ser testado em CI contra pequenas fixtures antes de tocar dados de produção.

Guias relacionados