O DuckDB é um sistema de gerenciamento de banco de dados relacional (SGBD) orientado a colunas, de código aberto e licenciado sob a MIT License. Foi criado em 2018 por Mark Raasveldt e Hannes Mühleisen no Centrum Wiskunde & Informatica (CWI), instituto nacional holandês de pesquisa em matemática e ciência da computação, e lançado publicamente em 2019.
Diferentemente da maioria dos SGBDs, o DuckDB é projetado para operar embutido dentro do processo hospedeiro (in-process), sem servidor externo, sem dependências externas e com instalação trivial — modelo análogo ao SQLite, mas voltado exclusivamente para cargas analíticas (OLAP) em vez de transacionais (OLTP).
Características técnicas
Armazenamento colunar e execução vetorizada
O DuckDB utiliza um motor de execução de consultas vetorizado (vectorized query execution), no qual os dados são processados em lotes por coluna ao longo do pipeline de consulta, reduzindo o número de ciclos de CPU por valor processado. Esse modelo, herdado conceitualmente de projetos como MonetDB e Vectorwise (também oriundos do CWI), é otimizado para as operações típicas de OLAP: agregações sobre tabelas inteiras, junções entre tabelas grandes e varreduras de colunas esparsas.
Modelo embutido (in-process)
O DuckDB não roda como um processo separado. Ele é vinculado diretamente ao processo hospedeiro como uma biblioteca, o que permite transferência de dados de alta velocidade entre a aplicação e o SGBD — em alguns casos sem cópia alguma. Por exemplo, o pacote Python do DuckDB pode executar consultas diretamente sobre DataFrames do pandas sem importar ou copiar os dados.
Sem dependências externas
O DuckDB pode ser compilado com apenas um compilador C++17. Todo o código-fonte é distribuído como dois arquivos (um header e um arquivo de implementação — a chamada amalgamation), o que simplifica integração e implantação. Ele roda em Linux, macOS e Windows, nas arquiteturas x86 e ARM, e pode ser compilado para WebAssembly via DuckDB-Wasm, permitindo execução analítica diretamente no navegador.
Formato de armazenamento
O DuckDB utiliza um formato de arquivo único para persistência de dados em disco, otimizado para varreduras eficientes e atualizações em massa. A partir da versão 0.10.0, o formato é retrocompatível: versões mais recentes conseguem ler arquivos criados por versões anteriores a partir da v0.9. O formato também suporta índices do tipo Adaptive Radix Tree (ART) para acelerar consultas pontuais e de alta seletividade.
Garantias transacionais (ACID)
Apesar do foco analítico, o DuckDB oferece propriedades ACID por meio de um controle de concorrência multiversão (MVCC) customizado, otimizado para operações em lote. O nível de isolamento oferecido é snapshot isolation.
Suporte SQL
O DuckDB suporta um dialeto SQL extenso, com subconsultas correlacionadas arbitrárias, funções de janela, tipos complexos (arrays, structs, maps), sintaxe GROUP BY ALL, UNION ALL BY NAME, e integrações nativas com formatos como Apache Parquet, CSV, JSON, Apache Arrow, Delta Lake e Apache Iceberg.
O parser SQL do DuckDB é derivado da biblioteca pg_query, por sua vez derivada do parser do PostgreSQL.
Histórico de versões
O projeto iniciou em 2018 como pesquisa no CWI e foi apresentado na conferência ACM SIGMOD em 2019. As versões iniciais (0.x) introduziram progressivamente o suporte a extensões, melhorias no parser SQL e o formato de armazenamento estável.
A versão 1.0.0 foi lançada em junho de 2024, marcando a maturidade do projeto para uso em produção. As versões subsequentes trouxeram melhorias cumulativas de desempenho que resultaram, segundo estimativa da MotherDuck, em ganho de 2× em relação à versão 1.0.
Versão Codinome Data Destaques 1.0.0 — Junho 2024 Primeira versão estável para produção; formato de armazenamento retrocompatível garantido 1.1.0 Eatoni Setembro 2024 Paralelismo em streaming de resultados; melhorias em índices para chaves estrangeiras 1.2.0 Histrionicus Fevereiro 2025 Melhorias no leitor CSV; nova API C para extensões; autocomplete no CLI 1.3.0 Ossivalis Maio 2025 Estimativa adaptativa de cardinalidade via HyperLogLog; ganhos em TPC-DS 1.4.0 Andium Setembro 2025 Versão LTS; criptografia AES-256; suporte a MERGE INTO; imagens Docker oficiais
A partir da versão 1.4, o DuckDB adota um ciclo de suporte de longo prazo (LTS): versões alternadas recebem suporte comunitário por um ano após o lançamento. Suporte comercial para versões LTS encerradas é oferecido pelo DuckDB Labs.
Ecossistema e extensões
O DuckDB possui um sistema de extensões que permite adicionar funcionalidades sem modificar o núcleo do banco. Entre as extensões oficiais estão:
httpfs — leitura e escrita de arquivos remotos via HTTP e S3 spatial — operações geoespaciais (funções ST_*) iceberg — integração com tabelas Apache Iceberg (leitura e escrita, incluindo catálogos REST) delta — suporte nativo ao formato Delta Lake ducklake — formato lakehouse que armazena metadados em SQL com propriedades ACID, com suporte a time travel, evolução de schema e transações DDL
O DuckLake, anunciado em 2025, reimagina o formato lakehouse ao mover todas as estruturas de metadados para um banco de dados SQL, aproveitando suas propriedades ACID para gerenciamento transacional de catálogos e tabelas, enquanto os dados permanecem em formatos abertos como Parquet.
O DuckDB também oferece integrações com as principais linguagens e ferramentas do ecossistema de dados: Python (incluindo pandas, Polars e Arrow), R (com dplyr), Java, Node.js e Go, além de suporte a ADBC (Arrow Database Connectivity) para transferência de dados sem cópia entre sistemas.
Governança e modelo comercial
O desenvolvimento do DuckDB é supervisionado pela DuckDB Foundation, organização sem fins lucrativos holandesa que detém a propriedade intelectual do projeto e garante sua manutenção de longo prazo sob licença MIT. A fundação optou por não aceitar financiamento de capital de risco, declarando que investimento externo forçaria o projeto em direção à monetização, o que conflita com o objetivo de manter o DuckDB aberto e acessível.
O suporte e consultoria comercial são oferecidos pela DuckDB Labs, empresa co-fundada por Raasveldt e Mühleisen. Separadamente, a MotherDuck — empresa independente fundada em 2022 — construiu uma plataforma de análise em nuvem sobre o DuckDB, tendo captado investimento de fundos incluindo Andreessen Horowitz.
Casos de uso e adoção
O DuckDB é amplamente utilizado para:
Análise exploratória de dados (EDA) em notebooks Python e R Pipelines de engenharia de dados que processam arquivos Parquet, CSV e JSON sem necessidade de um cluster distribuído Substituição de ferramentas como Apache Spark para cargas de trabalho de pequeno a médio porte em hardware modesto Análise diretamente no navegador via DuckDB-Wasm Componente de motores de lakehouse, como MotherDuck e soluções baseadas em DuckLake
O DuckDB é utilizado em empresas como Facebook, Google e Airbnb. Em 2024, foi eleito o terceiro banco de dados mais desejado pelos desenvolvedores segundo a pesquisa Stack Overflow Developer Survey.
Referências
Ligações externas
Repositório no GitHub Por que DuckDB (documentação oficial) Calendário de versões
Categoria:Sistemas de gerenciamento de banco de dados Categoria:Software livre Categoria:Software de código aberto Categoria:Bancos de dados analíticos Categoria:Software escrito em C++