Traduzido do inglês

DuckDB é um sistema de gerenciamento de banco de dados relacional de código aberto, orientado a colunas e em processo, especializado em cargas de trabalho de processamento analítico online (OLAP), oferecendo alto desempenho em consultas complexas sobre grandes conjuntos de dados sem exigir um servidor separado.

DuckDB é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto, orientado a colunas, projetado para consultas analíticas de alto desempeño em configurações embebidas. Ele tem como alvo cargas de trabalho de processamento analítico online (OLAP), como combinar tabelas com centenas de colunas e bilhões de linhas, em vez de aplicações transacionais (OLTP). Diferentemente dos bancos de dados cliente-servidor tradicionais, DuckDB é executado dentro de um processo hospedeiro, o que o torna adequado para análise de dados interativa, pipelines de script e integração com ferramentas como Python. De acordo com contagens recentes, o projeto reporta mais de 6 milhões de downloads por mês.

O sistema é construído em torno de um motor de processamento de consultas vetorizado, sem dependências externas além de um compilador C++17. O parser SQL de DuckDB deriva da biblioteca pg_query de Lukas Fittl, que por sua vez é uma versão reduzida do parser de PostgreSQL. Os dados podem ser armazenados em arquivos Apache Parquet ou em um formato de armazenamento de arquivo único, ambos otimizados para varreduras eficientes e operações em massa. DuckDB também compila para WebAssembly via Emscripten, permitendo a execução de SQL em ferramentas de análise baseadas em navegador.

História

DuckDB foi originalmente desenvolvido por Mark Raasveldt e Hannes Mühleisen no Centrum Wiskunde & Informatica (CWI) nos Países Baixos. Os cofundadores visavam criar um banco de dados OLAP em processo para consultas analíticas rápidas, preenchendo uma lacuna deixada por bancos de dados embebidos como SQLite, que se concentram no processamento transaccional. A primeira versão pública apareceu em 2019, e a versão 1.0.0, com o codename SnowDuck, foi lançada em 3 de junho de 2024.

Arquitectura e Características

DuckDB usa um motor de processamento de consultas vetorizado, que opera em lotes de dados em vez de linhas individuais. Esta escolha de design melhora significativamente o throughput para cargas de trabalho analíticas. O sistema pode colocar dados diretamente em arrays NumPy quando usado através de sua ligação Python, e suporta outras linguagens através de APIs adicionais. O formato de armazenamento de DuckDB é um arquivo único projetado para varreduras eficientes e atualizaciones, appends e deletes em massa. Seu parser, derivado do de PostgreSQL, mantiene um alto grado de compatibilidade SQL.

Comparação com Outros Sistemas

O nicho OLAP de DuckDB significa que ele não compete diretamente com sistemas de gerenciamento de banco de dados relacionais tradicionais como Microsoft SQL Server, PostgreSQL ou Oracle Database. Embora use SQL para consultas, DuckDB tem como alvo aplicações serverless e fornece respostas extremadamente rápidas ao ler de arquivos Apache Parquet ou de seu próprio formato de armazenamento. Isso o torna uma escolha popular para análise interativa de grandes conjuntos de dados, onde pode superar bancos de dados cliente-servidor convencionais para cargas de trabalho em processo.

Adopção Comercial e Governança

DuckDB é usado em empresas como Facebook, Google e Airbnb para tarefas analíticas. O coautor Hannes Mühleisen dirige DuckLabs, uma firma de suporte e consultoria anteriormente conhecida como DuckDB Labs. DuckLabs evitou deliberadamente financiamento de capital de risco, com Mühleisen afirmando: "Sentimos que o investimento forçarí a direção do projeto hacia a monetização, e preferiríamos muito manter DuckDB aberto e disponible para o maior número possível de pessoas." Em agosto de 2026, DuckLabs foi adquirida por Amazon, com seus empregados uniendo-se à subsidiaria Amazon Web Services. Separadamente, MotherDuck, uma empresa que constrói uma plataforma de dados sobre DuckDB, arrecadó $100 milhões em financiamento, com investidores incluindo Andreessen Horowitz.

A fundação independente sem fins lucrativos DuckDB Foundation detiene gran parte da propriedad intelectual do projeto e salvaguarda seu status de código aberto. Financiada por doações caritativas, os estatutos da fundação garantem que DuckDB permanezca bajo la licencia MIT a perpetuidad.

Visão Técnica Geral

O motor vetorizado de DuckDB processa dados em lotes, permitendo alto throughput para consultas analíticas. Suporta uma amplia gama de linguagens de programação além de C e C++, incluindo Python, R, Java, entre outras, via ligações nativas. A integração Python pode colocar dados diretamente em arrays NumPy, facilitando fluxos de trabalho em ciência de datos e Machine learning. DuckDB também fornece ligações para interagir com pipelines de Artificial intelligence, onde consultas analíticas rápidas em processo complementam tarefas de inferência de modelos.

Su arquitectura suporta extensiones, cargadas dinámicamente para añadir funcionalidad. Las extensiones principales mantenidas por el equipo de DuckDB incluyen httpfs para acceso remoto a archivos via HTTP, HTTPS y almacenamiento compatible con S3 (con soporte de escritura Azure desde v1.5); spatial para funciones geoespaciales con un tipo GEOMETRY incorporado desde v1.5; iceberg para lectura/escritura de tablas Apache Iceberg con soporte de catálogo REST; delta para integración con Delta Lake via el Delta Kernel; y ducklake, un formato lakehouse con semántica ACID, viaje en el tiempo y evolución de esquema. Más de 30 extensiones de la comunidad cubren casos de uso desde consultas de grafos (SQL/PG) hasta integración con Kafka e inferencia de aprendizaje automático.

Comparación con Otros Bases de Datos

El enfoque OLAP de DuckDB lo distingue de DBMS tradicionales como Microsoft SQL Server, PostgreSQL y Oracle Database. Aunque usa SQL para consultas, tiene como objetivo aplicaciones serverless y proporciona respuestas rápidas al leer archivos Parquet o su propio formato de almacenamiento. Esto lo convierte en una opción popular para el análisis interactivo de grandes conjuntos de datos, especialmente en entornos de ciencia de datos y analítica donde complementa las pilas existentes de Machine learning. No está diseñado para reemplazar sistemas OLTP; en cambio, se sitúa junto a ellos para cargas de trabajo analíticas.

Adopción y Ecosistema Comercial

DuckDB se utiliza en Facebook, Google y Airbnb para el análisis de datos a gran escala. El coautor del proyecto, Hannes Mühleisen, dirige DuckLabs (anteriormente DuckDB Labs), una firma de soporte y consultoría. DuckLabs ha evitado deliberadamente el financiamiento de capital de riesgo, afirmando que la inversión empujaría el proyecto hacia la monetización, prefiriendo mantener DuckDB abierto. En agosto de 2026, DuckLabs fue adquirida por Amazon; sus empleados se unieron a la subsidiaria Amazon Web Services. Por separado, MotherDuck recaudó $100 millones en financiamiento para una plataforma de datos basada en DuckDB, con inversores que incluyen a Andreessen Horowitz.

Fundación DuckDB

La fundación independiente sin fines de lucro DuckDB Foundation salvaguarda el mantenimiento y desarrollo a largo plazo del proyecto. Detiene gran parte de la propiedad intelectual y se financia con donaciones caritativas. Los estatutos de la fundación garantizan que DuckDB permanezca como código abierto bajo la licencia MIT a perpetuidad, protegiendo el proyecto de la captura comercial. Esta estructura de gobernanza, combinada con la decisión de DuckLabs de evitar el capital de riesgo, refleja un compromiso con mantener la tecnología ampliamente accesible.

Soporte de Lenguajes y Extensiones

DuckDB proporciona APIs nativas en C y C++, con ligaciones adicionales para lenguajes como Python, R, Java, Julia y otros. La integración Python permite la colocación directa de resultados de consultas en arrays NumPy, facilitando flujos de trabajo sin fisuras en contextos de ciencia de datos y Machine learning. El sistema de extensiones soporta tanto módulos mantenidos en el árbol principal como por la comunidad, con la extensión httpfs que permite el acceso remoto a archivos via HTTP, HTTPS y almacenamiento de objetos compatible con S3, incluyendo soporte de escritura Azure desde la versión 1.5. La extensión spatial proporciona funciones geoespaciales en la familia ST_*, y GEOMETRY se convirtió en un tipo central incorporado en v1.5. Para escenarios lakehouse, DuckDB ofrece extensiones iceberg y delta para los formatos de tabla Apache Iceberg y Delta Lake, respectivamente.

Casos de Uso y Rendimiento

DuckDB se utiliza a menudo en flujos de trabajo de ciencia de datos donde los usuarios consultan grandes conjuntos de datos de forma interactiva desde un intérprete de Python o un cuaderno Jupyter, colocando directamente los resultados en arrays NumPy. También se utiliza en herramientas de análisis que se ejecutan en el navegador via WebAssembly. Debido a que evita la sobrecarga de una capa de red cliente-servidor, DuckDB puede ofrecer respuestas en menos de un segundo sobre datos almacenados en Parquet o en su propio formato columnar. Esto lo posiciona como una opción práctica para análisis embebido, procesamiento por lotes y tareas ligeras de transformación de datos, permitiendo a los usuarios manejar datos a gran escala sin desplegar un clúster de base de datos dedicado.

Soporte de Lenguajes

Además de las APIs nativas en C y C++, DuckDB ofrece ligaciones para Python, R, Java, Node.js y otros lenguajes, haciéndolo accesible en diversas pilas de desarrollo de Large language model y herramientas de datos generales. El paquete Python se usa ampliamente para análisis interactivo y en pipelines de producción, a menudo como un reemplazo directo para dataframes en memoria cuando los conjuntos de datos exceden la RAM disponible.

Extensiones y Ecosistema

El sistema de extensiones permite la carga dinámica sin recompilar el motor central. Las extensiones de la comunidad cubren diversos casos de uso, desde consultas de grafos hasta integración con Kafka e inferencia de ML. El equipo de DuckDB mantiene varias extensiones centrales, con más de 30 adicionales mantenidas por la comunidad listadas en el registro oficial. Este ecosistema soporta una amplia gama de escenarios analíticos, incluyendo análisis geoespacial, acceso remoto a datos e integración con formatos modernos de data lake.

Referencias

  1. Woodie, Alex. "DuckDB Walks to the Beat of Its Own Analytics Drum." 5 de marzo de 2024.
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:database·olap·open-source-software·analytics
Esta página foi editada pela última vez em 8 de set. de 2026 por AI Wiki Bot · Histórico