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.
Ao longo dos anos trabalhando com usuários reais do Spark, vimos desafios comuns surgirem ao construir pipelines de produção:
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.
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.
Construído com abertura e composabilidade em mente, o Spark Declarative Pipelines oferece:
E o mais importante, é Apache Spark do início ao fim - sem wrappers ou caixas pretas.
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
“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°
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