Ir para o conteúdo principal

Levando pipelines declarativos para o projeto de código aberto Apache Spark™

Um padrão aberto e testado para transformação de dados

Bringing Declarative Pipelines to the Apache Spark™ Open Source Project

Publicado: 12 de junho de 2025

Código aberto5 min de leitura

Summary

  • Estamos doando o Declarative Pipelines – uma API declarativa comprovada para criar pipelines de dados robustos com uma fração do trabalho – para o Apache Spark™.
  • Este padrão simplifica o desenvolvimento de pipelines em cargas de trabalho em lote e streaming.
  • Anos de experiência no mundo real moldaram esta abordagem flexível e nativa do Spark para pipelines em lote e streaming.

O Apache Spark™ se tornou o mecanismo padrão para o processamento de big data, impulsionando workloads em algumas das maiores organizações do mundo. Na última década, vimos o Apache Spark evoluir de um mecanismo de computação de uso geral poderoso 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 lançamento recente do Apache Spark 4.0, essa evolução continua com grandes avanços em streaming, Python, SQL e dados semiestruturados. Você pode ler mais sobre o lançamento aqui.

Com base na base sólida do Apache Spark, temos o prazer de anunciar uma nova adição ao código aberto:

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

Essa contribuição estende 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 que o Apache Spark descubra como fazer. O design se baseia em anos de observação de workloads do Apache Spark do mundo real, codificando o que aprendemos em uma API declarativa que cobre os padrões mais comuns - incluindo fluxos em lote e de streaming.

Gráfico de fluxo de dados
Gráfico de fluxo de dados de amostra

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

Ao longo de anos trabalhando com usuários do Spark do mundo real, vimos desafios comuns surgirem ao criar pipelines de produção:

  • Tempo demais gasto conectando pipelines com "código de ligação" para lidar com a ingestão incremental ou decidir quando materializar conjuntos de dados. Este é um trabalho pesado não diferenciado que cada equipe acaba mantendo em vez de se concentrar na lógica de negócios principal
  • Reimplementar os mesmos padrões entre as equipes, levando à inconsistência e sobrecarga operacional
  • Falta de uma estrutura padronizada para teste, linhagem, CI/CD e monitoramento em escala

Na Databricks, começamos a enfrentar esses desafios codificando as práticas recomendadas de engenharia comuns em um produto chamado DLT. O DLT adotou uma abordagem declarativa: em vez de conectar toda a lógica você mesmo, você especifica o estado final de suas tabelas e o mecanismo cuida de coisas como mapeamento de dependência, tratamento de erros, checkpointing, falhas e novas tentativas para você.

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

Desde o lançamento do DLT, aprendemos muito.

Vimos onde a abordagem declarativa pode causar um impacto enorme; 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 sobre as APIs abertas do Spark para garantir a portabilidade e a liberdade do desenvolvedor.

Essa experiência informou uma nova direção: uma estrutura Spark-nativa, de código aberto e de primeira classe para o desenvolvimento de pipeline declarativo.

De consultas a pipelines de ponta a ponta: a próxima etapa 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 podem simplesmente escrever SQL para descrever o resultado que desejavam, e o Spark cuidou do resto.

O Spark Declarative Pipelines se baseia nessa base e dá um passo adiante - 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 as dependências e lida com o processamento incremental automaticamente.

Spark Declarative Pipelines em ação
Spark Declarative Pipelines em ação

Construído com abertura e capacidade de composição em mente, o Spark Declarative Pipelines oferece:

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

E, o mais importante, é Apache Spark o tempo todo - sem wrappers ou caixas pretas.

e-books

Introdução ao ETL

Um novo padrão, agora em aberto

Esta contribuição representa anos de trabalho em Apache Spark, Delta Lake e a comunidade de dados abertos mais ampla. É 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 sobre a qual todo o ecossistema Apache Spark pode construir - quer você esteja orquestrando pipelines em sua própria plataforma, construindo abstrações específicas de domínio ou contribuindo diretamente para o Spark em si. Esta estrutura está aqui para apoiá-lo.

"Os pipelines declarativos ocultam 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 os negócios. É emocionante ver esse nível de inovação agora sendo de código aberto - tornando-o acessível a 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 de grande ajuda na redução da quantidade de código que temos que gerenciar e facilitou o suporte a lotes e streaming sem unir sistemas separados. Abrir o código desta estrutura como Spark Declarative Pipelines é um grande passo para a comunidade Spark." — Brad Turnbaugh, Engenheiro de Dados Sênior, 84.51°

8451

O que vem a seguir

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

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

O Lakehouse é mais do que apenas armazenamento aberto. É sobre formatos abertos, mecanismos 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, em aberto.

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original

Nunca perca uma postagem da Databricks

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