DuckDB

système de gestion de bases de données From Wikipedia, the free encyclopedia

DuckDB est un logiciel libre de gestion de bases de données.

Créateur Hannes Mühleisen (d)Voir et modifier les données sur Wikidata
Développé par Hannes Mühleisen (d) et Mark Raasveldt (d)Voir et modifier les données sur Wikidata
Dernière version 1.5.0 ()[1],[2]Voir et modifier les données sur Wikidata
Faits en bref Créateur, Développé par ...
DuckDB
Description de l'image DuckDB logo.svg.
Description de l'image DuckDB UI 20251115.png.
Informations
Créateur Hannes Mühleisen (d)Voir et modifier les données sur Wikidata
Développé par Hannes Mühleisen (d) et Mark Raasveldt (d)Voir et modifier les données sur Wikidata
Dernière version 1.5.0 ()[1],[2]Voir et modifier les données sur Wikidata
Dépôt github.com/duckdb/duckdbVoir et modifier les données sur Wikidata
Écrit en C++Voir et modifier les données sur Wikidata
Formats écrits DuckDB database file (d)Voir et modifier les données sur Wikidata
Type Système de gestion de base de donnéesVoir et modifier les données sur Wikidata
Licence Licence MITVoir et modifier les données sur Wikidata
Site web duckdb.orgVoir et modifier les données sur Wikidata
Fermer

DuckDB est performant pour le traitement analytique en ligne (OLAP) notamment grâce à son format de stockage par colonnes.

Le logiciel a été créé par Mark Raasveldt (d) et Hannes Mühleisen (d) au Centrum voor Wiskunde en Informatica (CWI) aux Pays-Bas[3].

Historique

DuckDB a été initialement développé par Mark Raasveldt et Hannes Mühleisen (d) au Centrum Wiskunde & Informatica (CWI) aux Pays-Bas[3]. Les co-fondateurs du projet ont conçu DuckDB pour répondre au besoin d'une solution de base de données OLAP en processus[4]. DuckDB est sortie fois en 2019[5]. La version 1.0.0 de DuckDB a été publiée le 3 juin 2024, sous le nom de code SnowDuck[6].

Fonctionnalités

DuckDB utilise un moteur de traitement des requêtes vectorisé. DuckDB est particulier parmi les systèmes de gestion de bases de données car il n'a aucune dépendance externe et peut être construit avec uniquement un compilateur C++[7]. DuckDB s'écarte également du modèle client-serveur traditionnel en s'exécutant à l'intérieur d'un processus hôte. Le parseur SQL de DuckDB est dérivé de la bibliothèque pg_query développée par Lukas Fittl, qui elle-même provient du parseur SQL de PostgreSQL, simplifié au maximum.>[8] DuckDB utilise un format de stockage en fichier unique pour conserver les données sur disque, conçu pour permettre des scans efficaces ainsi que des mises à jour en masse, des ajouts et des suppressions. DuckDB est également compilé en WebAssembly à l'aide d'emscripten, ce qui permet à DuckDB d'exécuter SQL dans des outils d'analyse basés sur le navigateur[9],[10].

Sources de données

DuckDB est en mesure d’interagir avec différentes sources de données, notamment des formats de fichiers, des protocoles réseau ainsi que des systèmes de gestion de bases de données. Parmi les sources prises en charge figurent[11] :

Extensions

DuckDB dispose d'un mécanisme d'extension flexible. DuckDB fournit automatiquement une série d'extensions de base qui peuvent être activées à l'aide de la commande INSTALL. Les extensions permettent principalement d'utiliser des formats de fichiers supplémentaires, mais d'étendre la gamme de fonctions. Certaines sources de données pré-citées sont accessibles au travers d'extensions [12] On noteras également qu'il existe aussi des extensions communautaires [13]

Extensions Core notable

Illustatration de DuckDB UI ouvert dans Mozilla Firefox.
  • postgres, mysql, sqlite permettent l'accès à des bases de données externes.
  • ducklack permet de crée un mini DataLake en local. DuckLake[14] offre des fonctions de lac de données sans la complexité des datalake traditionnels. Il utilise des fichiers Parquet pour le stockage des données. La gestion des métadonnées s'effectue dans une base de données SQL centrale telle que PostgreSQL. Pour les cas d'utilisations simples, DuckDB lui-même suffit comme base de données de métadonnées.
  • Vortex Nouveau format de la fondation duckdb et de Spiraldb , qui s'inspire entre autres de apache iceberg.

Comparaison

DuckDB, dans son créneau OLAP, ne concurrence pas les systèmes de gestion de bases de données traditionnels tels que MSSQL, PostgreSQL ou Oracle. Bien qu'il utilise SQL pour les requêtes, DuckDB vise les applications serverless et offre des réponses extrêmement rapides en utilisant par exemple des fichiers Apache Parquet , JSON, ou son propre format de stockage. Ces caractéristiques en font un choix populaire pour l'analyse de grands ensembles de données en mode interactif[15].

DuckDB Foundation

La fondation indépendante à but non lucratif DuckDB Foundation assure la maintenance et le développement à long terme de DuckDB. La fondation détient une grande partie de la propriété intellectuelle du projet et est financée par des dons caritatifs[16]. Les statuts de la Fondation DuckDB garantissent que DuckDB reste open source sous licence MIT license à perpétuité[17].

Prise en charge des langages

En plus des API natives C et C++, DuckDB prend en charge un large éventail de langages de programmation.

Davantage d’informations Langage, Notes ...
API clientes
LangageNotesRéférence
JavaL’API Java est implémentée à l’aide de la JNI[18]. Une intégration avec le format Apache Arrow[19] est fournie.[20]
PythonL’API Python implémente la prise en charge des bibliothèques Pandas[21], Apache Arrow[22] et Polars pour l’analyse de données.[23]
RustL’API Rust est distribuée sous forme de crate Rust qui expose un élégant wrapper autour de l’API C native.[24]
Node.JSAPI Node[25]
RAPI R[26]
JuliaAPI Julia[27]
SwiftAPI Swift[28]
WebAssemblyAPI WASM[29]
GoAPI Go[30]
Fermer

Extensions

L'architecture de DuckDB prend en charge les extensions, permettant d'ajouter des fonctionnalités supplémentaires de manière dynamique[31]. De nombreuses extensions populaires sont maintenues par l'équipe principale de DuckDB, et il existe plus de 30 extensions communautaires maintenues par des tiers[32],[33],[34].

Articles connexes

Notes et références

Related Articles

Wikiwand AI