DuckDB - base de données OLAP embarquée open source
(duckdb.org)"SQLite for Analytics"
-
SGBDR embarqué optimisé pour les requêtes d’analyse complexes
-
Écrit en C++11, sans dépendances, sous la forme d’un binaire unique s’exécutant dans le processus hôte
-
API disponibles pour Python/R/Java/C/C++/Node.js
-
Stocke la base de données dans un seul fichier, comme SQLite
-
Cas d’usage adaptés
→ traitement et stockage de données tabulaires comme CSV/Parquet
→ analyse de données interactive avec jointures et agrégations sur plusieurs grandes tables
→ lorsque de grosses modifications doivent être effectuées simultanément sur plusieurs grandes tables (ajout de nombreuses lignes ou ajout/suppression/modification de colonnes, etc.)
6 commentaires
On dirait que l’objectif est de partager les rôles dans les bases de données embarquées, avec SQLite pour l’OLTP et DuckDB pour l’OLAP.
Contrairement à SQLite, sorti il y a 20 ans et qui a désormais complètement dominé le segment de l’embarqué, c’est un nouveau projet open source dont la version 0.1 n’est sortie qu’il y a environ un an et demi. ^^
Il y a quelques jours, une API node.js a été ajoutée, ce qui semble le rendre plus pratique à utiliser dans divers contextes.
À chaque fois que je regarde ça, je me dis que je ne comprends toujours pas clairement la différence entre l’OLTP et l’OLAP. T_T On dirait aussi qu’il n’y a pas vraiment d’explication qui l’expose de façon limpide.
Oui, c’est vrai : comme l’explication qu’on rencontre le plus souvent oppose les transactions et l’analyse, les SGBDR connus sont généralement à la fois rapides pour insérer et retirer des données, et rapides aussi pour les tâches d’analyse. Par exemple, on ne peut pas vraiment dire qu’Oracle ou PostgreSQL soient spécialisés de façon nette dans l’un ou l’autre domaine… et j’ai aussi l’impression qu’à l’ère du big data, l’analyse s’est de toute façon déjà très largement éloignée de ce type de systèmes. Ce que je voulais dire, c’est que je ne vois pas très bien quel sens il y a encore aujourd’hui à distinguer OLTP et OLAP ^^;
L’OLTP est spécialisé dans l’insertion, l’extraction, la suppression, etc.
L’OLAP, c’est plutôt le fait de manipuler dans tous les sens les données déjà présentes pour les analyser.
On peut le voir à peu près comme ça, non ?
Hmm... ma façon de l’expliquer est la suivante
OLTP, c’est l’horizontal : on ajoute quelque chose ligne par ligne (une nouvelle commande arrive)
OLAP, c’est le vertical : on lit une colonne entière pour calculer ou modifier quelque chose (calculer la moyenne des ventes quotidiennes)
L’OLTP, c’est horizontal
l’OLAP, c’est vertical