Na última década, o Apache Flink firmou-se como líder em computação com estado sobre fluxos de dados. Consequentemente, culminou no processamento em tempo real com latência inferior a um segundo. No entanto, a crescente demanda por aplicações mais acessíveis e escaláveis, juntamente com a ascensão de arquiteturas nativas da nuvem, data lakes e inteligência artificial, trouxe novos desafios. Desse modo, o Apache Flink 2.0.0 busca superar esses obstáculos.
Inovações centrais do Apache Flink 2.0.0
A nova versão apresenta funcionalidades para enfrentar os desafios atuais do processamento de dados em tempo real. Além disso, ela se alinha com as necessidades de aplicações modernas, inclusive as impulsionadas por ia.
- Gerenciamento de estado desagregado: arquitetura inovadora que otimiza o uso de recursos em ambientes nativos da nuvem. Dessa forma, garante processamento de alta performance com menor sobrecarga.
- Tabelas materializadas: abstração que simplifica o desenvolvimento. Assim, permite o foco na lógica de negócios sem a complexidade do processamento de fluxo e lote.
- Otimizações na execução em lote: melhorias que oferecem uma alternativa mais econômica para cenários onde a latência imediata não é essencial.
- Integração aprofundada com Apache Paimon: fortalece a arquitetura Streaming Lakehouse. Logo, consolida o Apache Flink como solução de ponta para data lakes em tempo real.
- Preparação para a era da ia: avanços que posicionam o Apache Flink como uma base sólida para fluxos de trabalho de inteligência artificial. Por conseguinte, atende à crescente demanda por processamento de dados em tempo real em larga escala.
Detalhes das novas funcionalidades
Gerenciamento de estado desagregado: uma nova arquitetura para a nuvem
Essa inovação arquitetônica responde aos desafios de ambientes conteinerizados. Incluem-se limitações de disco local e a necessidade de escalabilidade rápida. Ao separar o armazenamento de estado dos recursos computacionais e utilizar Sistemas de Arquivos Distribuídos (dfs), o Apache Flink 2.0.0 introduz um modelo de execução assíncrono. Ademais, conta com operadores sql otimizados para acesso de estado paralelo e não bloqueante, resultando em maior eficiência e flexibilidade.
Tabelas materializadas: unificando fluxo e lote
As Tabelas Materializadas representam um passo fundamental na convergência do processamento de fluxo e lote. Dessa maneira, possibilitam o gerenciamento unificado de dados em tempo real e históricos por meio de um único pipeline declarativo. A versão 2.0 traz melhorias significativas para a operabilidade em produção. Isso inclui a capacidade de modificar esquemas e consultas, suporte para execução em Kubernetes e Yarn, e integração nativa com o Apache Paimon.
Execução adaptativa em lote: desempenho otimizado
O Apache Flink 2.0.0 aprimora suas capacidades de execução adaptativa em lote. Para isso, introduz o Adaptive Broadcast Join e a otimização automática de Skew Join. Essas otimizações dinâmicas se baseiam em informações de tempo de execução. Desse modo, visam melhorar a eficiência e o desempenho do processamento em lote, como demonstrado em testes com o benchmark tpc-ds.
Streaming lakehouse: a potência da integração Apache Flink e Apache Paimon
A colaboração estreita com a comunidade Apache Paimon no Apache Flink 2.0.0 fortalece a arquitetura Streaming Lakehouse. As melhorias abrangem otimizações no pushdown de projeção aninhada e no desempenho do lookup join. Outra melhoria é na gestão do ciclo de vida de tabelas Apache Paimon via Flink SQL. Consequentemente, o Apache Paimon torna-se o catálogo padrão para as novas Tabelas Materializadas.
Apache Flink e inteligência artificial: preparando o futuro
Prevendo a crescente importância da ia, o Apache Flink 2.0.0 começa a se integrar melhor com fluxos de trabalho de inteligência artificial. O Flink CDC 3.3 agora permite a invocação dinâmica de modelos de ia, como os da OpenAI, diretamente em fluxos de dados. Além disso, o Flink SQL está explorando a introdução de sintaxe especializada para a interação com modelos de ia.
Outras melhorias e novidades
A versão 2.0 também introduz uma DataStream V2 API experimental. Seu objetivo é, portanto, uma evolução futura da API principal. Há também melhorias na sintaxe SQL e suporte para versões mais recentes do Java (com Java 17 como padrão). Além disso, ocorreram otimizações significativas na serialização de dados.
Mudanças com ruptura: atenção para a atualização
A atualização para o Apache Flink 2.0.0 exige atenção para algumas mudanças que quebram a compatibilidade com versões anteriores. As APIs DataSet e suas variantes Scala foram removidas. Similarmente, as interfaces legadas para fontes e sinks não existem mais. A compatibilidade de estado entre as versões 1.x e 2.x não é garantida. Outrossim, o suporte ao Java 8 foi descontinuado, e o modo de implantação Per-job foi substituído pelo modo Application.
Conclusão: um novo capítulo para o Apache Flink
O Apache Flink 2.0.0 representa um avanço significativo no mundo do processamento de dados em tempo real. Graças às suas inovações arquitetônicas, otimizações de desempenho e foco nas tendências emergentes como a computação em nuvem e a inteligência artificial, o Apache Flink reafirma seu compromisso de ser uma tecnologia fundamental para aplicações de dados modernas. Em suma, a comunidade agora se prepara para explorar todo o potencial desta nova era do Apache Flink. Afinal, as novidades são promissoras.