Se cada tipo de arquivo tem uma lógica diferente, não seria mais eficiente que os sistemas de compressão os tratasse de forma diferente? É a partir dessa ideia que funciona o OpenZL da Meta.
A Meta (ex-Facebook) lançou o OpenZL, um novo framework open source de compressão de dados, voltado para lidar com dados estruturados (como tabelas, bancos de dados, etc). O diferencial? Ele consegue comprimir esses dados de forma mais eficiente, rápida e sem perdas, aproveitando a estrutura interna dos dados (como colunas, tipos, padrões repetitivos), algo que ferramentas tradicionais como ZIP ou Zstandard (também da Meta) não fazem tão bem.
O OpenZL representa uma nova geração de compressores de dados, projetada para o mundo moderno dos dados estruturados, banco de dados em nuvem, pipelines de machine learning e mais.
Combinando desempenho de compressores especializados com a simplicidade de uma única ferramenta universal, ele tem potencial para se tornar o novo padrão de compressão em ambientes corporativos e acadêmicos.
Ele permite alta compressão de qualquer dado estruturado, usando um único executável para descompressão: a mesma ferramenta dá conta de tudo. Se você trabalha com grandes volumes de dados, especialmente estruturados (tabelas, JSON, logs, datasets de machine learning), o OpenZL promete ser um grande avanço — e o código já está disponível no GitHub
Enquanto compressores tradicionais como ZIP e até mesmo o Zstandard (também criado pela Meta) atuam como ferramentas genéricas que enxergam apenas “bytes”, o OpenZL entende a estrutura dos dados, como colunas de tabelas, registros ou tipos de campos — e usa esse conhecimento para comprimir os dados de maneira muito mais eficiente.
Como o OpenZL funciona?
Além disso, ele aprende a melhor forma de comprimir seus dados com base em exemplos (usando uma linguagem de descrição de dados chamada SDDL) e pode se adaptar automaticamente conforme os dados mudam.
Ele não “tenta adivinhar” a estrutura dos seus dados. Ele pede para que você descreva de forma simples, usando uma linguagem chamada SDDL (Simple Data Description Language), como os dados estão organizados: colunas, tipos, enumerações, etc.
Ele analisa a estrutura, gera uma estratégia de compressão ideal automaticamente (com ajuda de um “treinador offline”), aplica essa estratégia de forma otimizada na hora da compressão e usa um único decodificador universal para descompactar tudo, com segurança e simplicidade
O OpenZL pode se adaptar em tempo real com base no comportamento dos dados. Ele ajusta automaticamente a melhor estratégia sem perder velocidade — ideal para cenários com picos, exceções ou dados que mudam com frequência.
Se os dados mudarem com o tempo (como acontece em bancos ou logs), o OpenZL re-treina automaticamente e continua comprimindo com eficiência, sem quebrar compatibilidade com dados antigos.
Nos primeiros benchmarks, o OpenZL superou ferramentas consagradas, comprimindo um arquivo da coleção Silesia (usado para testes), numa taxa 2.06x, contra 1.64x do xz e 1.31x do zstd. E ainda com velocidades altíssimas: 340 MB/s para compressão e 1.2 GB/s para descompressão (testes realizados em um chip Apple M1).
Por quê o OpenZL é diferente?
Você pode comprimir diversos tipos de dados com estratégias diferentes, mas todos serão descompactados com o mesmo decodificador. Isso oferece mais segurança (superfície de ataque única e auditada), facilidade de manutenção/atualizações e melhora o desempenho global, já que qualquer melhoria no decodificador se aplica a todos os arquivos.
O OpenZL precisa de estrutura para funcionar bem. Em arquivos puramente textuais, como livros ou documentos sem organização, ele não apresenta ganhos significativos e acaba funcionando como o zstd padrão.