Ir para o conteúdo principal

Trazendo Pipelines Declarativas para o Projeto de Código Aberto Apache Spark™

Um Padrão Aberto e Testado em Batalha para Transformação de Dados

Bringing Declarative Pipelines to the Apache Spark™ Open Source Project

Published: June 12, 2025

Código aberto5 min de leitura

Summary

  • Estamos doando Pipelines Declarativos - uma API declarativa comprovada para construir pipelines de dados robustos com uma fração do trabalho - para o Apache Spark™.
  • Este padrão simplifica o desenvolvimento de pipelines para cargas de trabalho em lote e em streaming.
  • Anos de experiência prática moldaram essa abordagem flexível e nativa do Spark para pipelines em lote e em streaming.

O Apache Spark™ tornou-se o motor padrão para o processamento de big data, alimentando cargas de trabalho em algumas das maiores organizações do mundo. Na última década, vimos o Apache Spark evoluir de um poderoso motor de computação de propósito geral para uma camada crítica da Arquitetura Open Lakehouse - com Spark SQL, Structured Streaming, formatos de tabela abertos e governança unificada servindo como pilares para plataformas de dados modernas.

Com o recente lançamento do Apache Spark 4.0, essa evolução continua com grandes avanços em streaming, Python, SQL e dados semi-estruturados. Você pode ler mais sobre o lançamento aqui.

Construindo sobre a sólida base do Apache Spark, estamos animados para anunciar uma nova adição ao código aberto:

Estamos doando Declarative Pipelines - um padrão comprovado para construção de pipelines de dados confiáveis e escaláveis - para o Apache Spark.

Esta contribuição amplia o poder declarativo do Apache Spark de consultas individuais para pipelines completos - permitindo que os usuários definam o que seu pipeline deve fazer, e deixando o Apache Spark descobrir como fazer isso. O design se baseia em anos de observação de cargas de trabalho do Apache Spark no mundo real, codificando o que aprendemos em uma API declarativa que abrange os padrões mais comuns - incluindo fluxos em lote e em streaming.

Gráfico de Fluxo de Dados
Sample Dataflow Graph

APIs declarativas tornam o ETL mais simples e fácil de manter

Ao longo dos anos trabalhando com usuários reais do Spark, vimos desafios comuns surgirem ao construir pipelines de produção:

  • Muito tempo gasto conectando pipelines com "código cola" para lidar com ingestão incremental ou decidindo quando materializar conjuntos de dados. Este é um trabalho pesado indiferenciado que toda equipe acaba mantendo em vez de se concentrar na lógica de negócios principal
  • Reimplementando os mesmos padrões em diferentes equipes, levando a inconsistências e sobrecarga operacional
  • Falta um framework padronizado para testes, linhagem, CI/CD e monitoramento em escala

Na Databricks, começamos a abordar esses desafios codificando as melhores práticas de engenharia comuns em um produto chamado DLT. O DLT adotou uma abordagem declarativa: em vez de configurar toda a lógica por conta própria, você especifica o estado final de suas tabelas, e o motor cuida de coisas como mapeamento de dependências, tratamento de erros, checkpointing, falhas e tentativas de recuperação para você.

O resultado foi um grande salto em produtividade, confiabilidade e manutenibilidade - especialmente para equipes que gerenciam pipelines de produção complexos.

Desde o lançamento do DLT, aprendemos muito.

Vimos onde a abordagem declarativa pode ter um impacto desproporcional; e onde as equipes precisavam de mais flexibilidade e controle. Vimos o valor de automatizar a lógica complexa e a orquestração de streaming; e a importância de construir em APIs abertas do Spark para garantir portabilidade e liberdade do desenvolvedor.

Essa experiência informou uma nova direção: Um framework de primeira classe, de código aberto e nativo do Spark para o desenvolvimento declarativo de pipelines.

De Consultas a Pipelines de Ponta a Ponta: O Próximo Passo na Evolução Declarativa do Spark

O Apache Spark SQL tornou a execução de consultas declarativa: em vez de implementar junções e agregações com código RDD de baixo nível, os desenvolvedores poderiam simplesmente escrever SQL para descrever o resultado que desejavam, e o Spark cuidava do resto.

Spark Declarative Pipelines se baseia nessa fundação e vai um passo além - estendendo o modelo declarativo além de consultas individuais para pipelines completos que abrangem várias tabelas. Agora, os desenvolvedores podem definir quais conjuntos de dados devem existir e como eles são derivados, enquanto o Spark determina o plano de execução ideal, gerencia dependências e lida com o processamento incremental automaticamente.

Pipelines Declarativos do Spark em ação
Spark Declarative Pipelines in action

Construído com abertura e composabilidade em mente, o Spark Declarative Pipelines oferece:

  • APIs declarativas para definir tabelas e transformações
  • Suporte nativo para fluxos de dados em lote e em tempo real
  • Orquestração consciente de dados com rastreamento automático de dependências, ordenação de execução e manipulação de preenchimento retroativo
  • Checkpoint automático, tentativas e processamento incremental para dados em streaming
  • Suporte para SQL e Python
  • Transparência de execução com acesso total aos planos Spark subjacentes

E o mais importante, é Apache Spark do início ao fim - sem wrappers ou caixas pretas.

Um Novo Padrão, Agora Aberto

Esta contribuição representa anos de trabalho em Apache Spark, Delta Lake e na comunidade de dados abertos em geral. É inspirado no que aprendemos com a construção do DLT - mas projetado para ser mais flexível, mais extensível e totalmente de código aberto.

E estamos apenas começando. Estamos contribuindo com isso como uma camada comum que todo o ecossistema Apache Spark pode construir - seja você orquestrando pipelines em sua própria plataforma, construindo abstrações específicas do domínio, ou contribuindo diretamente para o Spark. Este framework está aqui para te apoiar.

“Os pipelines declarativos escondem a complexidade da engenharia de dados moderna sob um modelo de programação simples e intuitivo. Como gerente de engenharia, adoro o fato de que meus engenheiros podem se concentrar no que é mais importante para o negócio. É emocionante ver este nível de inovação agora sendo disponibilizado em código aberto - tornando-o acessível para ainda mais equipes."
— Jian (Miracle) Zhou, Gerente Sênior de Engenharia, Navy Federal Credit Union

Navy Federal Credit Union

“Na 84.51 estamos sempre procurando maneiras de tornar nossos pipelines de dados mais fáceis de construir e manter, especialmente à medida que avançamos para ferramentas mais abertas e flexíveis. A abordagem declarativa tem sido uma grande ajuda para reduzir a quantidade de código que temos que gerenciar, e tornou mais fácil suportar tanto o processamento em lote quanto o streaming sem juntar sistemas separados. A disponibilização deste framework como Spark Declarative Pipelines é um grande passo para a comunidade Spark.”
— Brad Turnbaugh, Engenheiro Sênior de Dados, 84.51°

8451

O Que Vem a Seguir

Fique atento para mais detalhes na documentação do Apache Spark. Enquanto isso, você pode revisar a Jira e a discussão da comunidade para a proposta.

Se você está construindo pipelines com o Apache Spark hoje, convidamos você a explorar o modelo declarativo. Nosso objetivo é tornar o desenvolvimento de pipelines mais simples, mais confiável e mais colaborativo para todos.

O Lakehouse é mais do que apenas armazenamento aberto. É sobre formatos abertos, motores abertos - e agora, padrões abertos para construir em cima deles.

Acreditamos que os pipelines declarativos se tornarão um novo padrão para o desenvolvimento do Apache Spark. E estamos animados para construir esse futuro juntos, com a comunidade, de forma aberta.

 

(This blog post has been translated using AI-powered tools) Original Post

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada