Meta lança o OpenZL, um sistema open source de compressão para dados estruturados

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.

2 curtidas

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.

1 curtida