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++