DuckLake 1.0: Novo formato de Data Lake com metadados em catálogo SQL

A DuckDB Labs lançou recentemente o DuckLake 1.0, um formato inovador para data lakes que armazena os metadados das tabelas diretamente em um banco de dados SQL, ao invés de distribuí-los em múltiplos arquivos no armazenamento de objetos. Essa abordagem promete simplificar a coordenação, acelerar operações de metadados e evitar o problema dos "pequenos arquivos" que afetam formatos tradicionais.
O que é o DuckLake 1.0?
O DuckLake 1.0 é a primeira versão estável e pronta para produção de um formato de data lake que utiliza um catálogo SQL para gerenciar metadados. Diferente de soluções como Apache Iceberg, Delta Lake e Apache Hudi, que guardam metadados principalmente em arquivos no armazenamento de objetos (com serviços de catálogo adicionais em alguns casos), o DuckLake centraliza essa informação em um banco SQL, facilitando consultas e atualizações.
Principais recursos e melhorias
- Armazenamento de metadados em SQL: evita a complexidade e lentidão geradas pela distribuição dos metadados em múltiplos arquivos.
- Atualizações pequenas armazenadas no catálogo: permite inserir, atualizar e deletar pequenos conjuntos de linhas diretamente no banco, reduzindo a criação excessiva de arquivos.
- Ordenação e particionamento aprimorados: tabelas ordenadas para acelerar consultas filtradas e particionamento por bucket para colunas com alta cardinalidade.
- Compatibilidade com recursos do estilo Iceberg: suporte a vetores de exclusão compatíveis com Iceberg e melhor suporte a tipos de dados geométricos.
Para quem o DuckLake é indicado?
O DuckLake é especialmente relevante para equipes de engenharia de dados, cientistas de dados e arquitetos de dados que trabalham com data lakes e buscam uma forma mais eficiente e escalável de gerenciar metadados. Seu design facilita operações frequentes de atualização e consulta, sendo útil para empresas que lidam com grandes volumes de dados e desejam evitar problemas comuns de performance e coordenação em formatos tradicionais.
Disponibilidade e como acessar
O DuckLake 1.0 está disponível como uma extensão do DuckDB e pode ser acessado gratuitamente no GitHub sob licença MIT: https://github.com/duckdb/ducklake. Além disso, clientes do DuckLake já existem para Apache DataFusion, Apache Spark, Trino e Pandas, ampliando a integração com ecossistemas populares de processamento de dados.
A empresa MotherDuck oferece também um serviço hospedado de DuckLake que gerencia o banco de catálogo e o armazenamento, facilitando a adoção sem necessidade de infraestrutura própria.
Próximos passos no roadmap
O roadmap do DuckLake prevê para a versão 1.1 melhorias como inlining de variantes entre catálogos e arquivos Puffin para múltiplos vetores de exclusão. Já a versão 2.0 deverá trazer funcionalidades avançadas como versionamento em estilo Git para datasets e permissões baseadas em papéis (RBAC), ampliando a governança e flexibilidade do formato.
Recursos adicionais
- Repositório awesome-ducklake com casos de uso e bibliotecas relacionadas.
- Guias e minibooks gratuitos para aprendizado contínuo sobre tecnologias de dados.
Com o DuckLake 1.0, a DuckDB Labs apresenta uma alternativa robusta e eficiente para o gerenciamento de metadados em data lakes, prometendo facilitar operações e melhorar a performance em ambientes de dados modernos.