CEVIU Logo
Voltar

Apache DataFusion 54.0.0 chega com avanços em SQL, desempenho e suporte a dados aninhados

Aprofundamento CEVIU

Aprofundamento

O DataFusion 54.0.0 não é só mais uma versão: é a consolidação de um ciclo de otimizações que começou com a 53.0.0 em abril, quando o tempo de planejamento de queries caiu de 4, 5 ms para 100 μs e o pruning de row groups Parquet passou a respeitar LIMIT. Agora, com joins LATERAL e funções lambda para arrays, o motor ganha expressividade SQL real para dados aninhados, algo crítico em cenários de lakehouse com Iceberg v3 e seu tipo VARIANT. O spill-to-disk em nested loop joins fecha uma lacuna operacional: antes, só sort, hash e sort-merge tinham essa proteção contra OOM; agora até o join mais simples escala sob pressão de memória.

O leitor Avro baseado em Arrow também é estratégico: alinha o DataFusion ao padrão de serialização in-memory do ecossistema, reduzindo cópias e conversões ao integrar com ferramentas como iceberg-rust e Ballista 53.0.0 (lançado em maio). Isso não é só performance, é interoperabilidade de baixo nível, no nível de buffers, não de APIs.

O que mudou

Na 53.0.0 (2/abr/2026), o foco foi em otimizações invisíveis: planejamento mais rápido, pruning mais agressivo e suporte inicial a JSON Array e operador ':' para Parquet Variant. Na 54.0.0 (15/jun/2026), o salto é funcional e operacional: LATERAL joins e lambdas são novos recursos SQL, não aprimoramentos existentes; o spill em nested loop joins é uma nova camada de robustez, não só mais rápido, mas mais resiliente. Também é a primeira versão com leitor Avro nativo em Arrow, não apenas um wrapper sobre bibliotecas externas.

Por que isso importa

Para engenheiros de dados que constroem pipelines em Rust ou Python com DataFusion como base, essa versão reduz trade-offs: antes, você escolhia entre desempenho (hash/sort-merge) e flexibilidade (nested loop); agora pode usar nested loop com spill sem medo de crash. Para times que adotam Iceberg v3 com VARIANT ou Polars 1.41 com eliminação profunda de subplanos, o DataFusion 54.0.0 oferece um motor SQL compatível no mesmo nível de expressividade, sem depender de Spark ou Presto. E para quem usa dbt Core v2 com Fusion engine unificada, é um sinal claro: o runtime em Rust está maduro o suficiente para suportar SQL avançado nativamente, não só como backend de compilação.

Linha do tempo

  1. Lançamento do Apache DataFusion 53.0.0, com redução de planejamento de queries para 100 μs e suporte a JSON Array

  2. Iceberg v3 em public preview no Databricks, com suporte a VARIANT e Row Lineage

  3. Polars 1.41 com otimizações para subplanos aninhados e decodificação Parquet mais rápida

  4. dbt Core v2 com runtime em Rust unificado com Fusion engine

  5. Apache DataFusion 54.0.0 com LATERAL joins, lambdas para arrays, spill em nested loop e leitor Avro baseado em Arrow

Perguntas frequentes

O que muda na prática com joins LATERAL no DataFusion 54.0.0?

Permite referenciar colunas da tabela esquerda dentro de subconsultas à direita, essencial para expandir arrays ou structs aninhadas linha a linha. Antes, exigia workarounds com UDFs ou pré-processamento. Agora roda nativamente com execução vetorial e spill-to-disk.

Spill-to-disk em nested loop joins resolve qual problema real?

Evita falhas em cargas com alta cardinalidade e pouca memória disponível, típico em ambientes de edge analytics ou em clusters com recursos limitados. Antes, esse tipo de join era bloqueado ou gerava OOM; agora opera com fallback automático para disco, mantendo a semântica correta.

Como o novo leitor Avro baseado em Arrow se diferencia do antigo?

Não depende mais de bibliotecas C/C++ como libavro. Lê diretamente para buffers Arrow, eliminando cópias de memória e permitindo zero-copy com outras operações do DataFusion, como filters pushdown ou projections em tempo de execução.

O DataFusion 54.0.0 integra com Iceberg v3 ou Polars 1.41?

Sim, mas de forma indireta: o suporte a VARIANT e LATERAL facilita consultas em tabelas Iceberg v3 com colunas variant, e o desempenho em repartition e sort-merge joins complementa os ganhos de Polars 1.41 em eliminação de subplanos. Não é integração nativa, mas convergência de capacidades no mesmo ecossistema Arrow.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Dados
Publicado
15 de junho de 2026
Editoria
CEVIU Dados

Quer receber mais sobre CEVIU Dados?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser