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.
Ao longo de anos trabalhando com usuários do Spark do mundo real, vimos desafios comuns surgirem ao criar pipelines de produção:
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.
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.
Construído com abertura e capacidade de composição em mente, o Spark Declarative Pipelines oferece:
E, o mais importante, é Apache Spark o tempo todo - sem wrappers ou caixas pretas.
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

"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°

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
