E foi lançado o DuckDB 0.5.0 com índices Adaptive Radix Tree, e mais. Confira as novidades e veja onde baixar para instalar.
DuckDB é um sistema de banco de dados analítico de alto desempenho. Ele foi projetado para ser rápido, confiável e fácil de usar. O DuckDB fornece um rico dialeto de SQL, com suporte muito além do SQL básico.
O DuckDB é escrito em C++, é gratuito e de código aberto sob a licença do MIT. Ele oferece suporte a subconsultas correlacionadas arbitrárias e aninhadas, funções de janela, agrupamentos, tipos complexos (matrizes, estruturas) e muito mais.
Entre suas principais características, destacam-se:
- instalação simples
- Integrado: sem gerenciamento de servidor
- Formato de armazenamento de arquivo único
- Processamento analítico rápido
- Transferência rápida entre R/Python e RDBMS
- Não depende de nenhum estado externo. Por exemplo, arquivos de configuração separados, variável de ambiente.
- Formato de armazenamento de arquivo único
- Interface combinável. API programática SQL fluente
- Totalmente ACID via MVCC
Recentemente, foi anunciado o lançamento da nova versão do DuckDB 0.5.0, que é um sistema de gerenciamento de banco de dados analítico (DBMS) em desenvolvimento usado pelo Google, Facebook e Airbnb.
Novidades do DuckDB 0.5.0
Entre as novidades está o “out of core”, que visa solucionar os problemas que podem surgir quando os dados que estão sendo processados são maiores que a memória, propondo resultados intermediários.
A nova versão usa índices Adaptive Radix Tree (ART) para aplicar restrições e acelerar filtros de consulta. Até agora, os índices não eram persistentes, levando a problemas como perda de informações de índice e longos tempos de recarga para tabelas com restrição de dados.
ART é essencialmente uma tentativa de aplicar compressão vertical e horizontal para criar estruturas de índice compactas.
As intenções são estruturas de dados semelhantes a árvores, onde cada nível da árvore contém informações sobre alguma parte do conjunto de dados. Eles geralmente são ilustrados por cadeias de caracteres.
O projeto também adicionou a otimização de pedidos de junção, um problema comum em bancos de dados analíticos.
Hyoun Park, CEO e analista-chefe da Amalgam Insights, disse que a diferenciação do DuckDB vem do fato de ser um pequeno aplicativo que funciona em fluxos de trabalho baseados em código para verificar rapidamente grandes armazenamentos de dados.
“O DuckDB geralmente pode executar consultas diretamente nos dados sem processamento intermediário, o que melhora o processamento. De um ponto de vista puramente tecnológico, é um pouco semelhante ao Actian Vector, que também adota uma abordagem de consulta OLAP vetorizada colunar, embora o Actian seja projetado para buscar dados em vez de trabalhar em um processo ou carregar um trabalho específico.”
O DuckDB Labs fornece aconselhamento e suporte. O cofundador e CEO Hannes Mühleisen, que também co-escreveu o código e mantém o projeto, disse que se inspirou no SQLite, o mecanismo de banco de dados OLTP sem servidor, onde viu uma oportunidade para uma abordagem semelhante, mas para análise.
O DuckDB também é frequentemente usado como parte de uma pilha de análise ou gerenciamento de dados maior.
Por exemplo, se alguém cria um aplicativo personalizado que coleta dados e depois deseja criar uma interface SQL, primeiro precisa copiar os dados e movê-los para outro sistema, o que pode causar problemas de sincronização, explicou ele.
Para saber mais sobre essa versão do DuckDB 0.5.0, acesse a nota de lançamento.
Como instalar ou atualizar o DuckDB 0.5.0
É importante mencionar que a página inicial afirma claramente que não deve ser usada para “grandes instalações cliente/servidor para armazenamento centralizado de dados corporativos”.
O projeto está trabalhando no lançamento da versão 1.0, após a qual não serão mais possíveis modificações.
Os trabalhos dos acadêmicos do Center for Mathematics and Theoretical Computer Science Centrum Wiskunde & Informatica em Amsterdam, DuckDB estão integrados a um processo host, vale ressaltar que não há software servidor DBMS para instalar, atualizar ou manter.
Por exemplo, o pacote DuckDB Python pode executar consultas diretamente nos dados da biblioteca de software Python, sem importar ou copiar dados.
Você pode saber mais sobre ele, bem como consultar o manual de instalação, no seguinte endereço.