Apache Flink 2.0.0: Uma nova era no processamento de dados em tempo real

O Apache Flink 2.0.0 foi lançado, marcando um novo capítulo no processamento de dados em tempo real. Esta versão traz inovações como gerenciamento de estado desagregado, tabelas materializadas e otimizações de execução em lote, preparando o Flink para a era da IA e das arquiteturas nativas da nuvem.

Um moderno centro de processamento de dados com servidores azuis e engenheiros trabalhando, representando o Apache Flink 2.0.0 para processamento de dados em tempo real.

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.

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.

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.

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.

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.

Emanuel Negromonte Autor
Autor
Jornalista especialista em Linux a mais de 20 anos. Fundador do SempreUpdate e entusiasta do software livre.