- DuckDB est une base de données SQL sous forme de fichier unique, spécialisée dans l’analyse de données
- La plupart des évaluations de DuckDB ont tendance à se concentrer sur l’analyse quantitative
- En particulier du point de vue de la vitesse, DuckDB offre généralement de bonnes performances
- Mais du point de vue de l’utilisateur, une fois qu’un niveau de performance satisfaisant est atteint, les gains de vitesse supplémentaires ont peu d’importance
- À la place, la facilité d’utilisation devient plus importante, et c’est justement l’un des atouts de DuckDB
- Les avantages de DuckDB en matière de facilité d’utilisation :
- Expérience développeur
- Capacité à traiter des jeux de données plus grands que la mémoire
- Installation et exécution simples
Ergonomie
- DuckDB est conçu pour permettre de réaliser simplement les tâches courantes
- Par exemple, il peut créer directement des tables à partir de fichiers d’entrée et en inférer le schéma
- Dans le cas des fichiers Parquet, il peut aussi lire des fichiers présents sur le Web
- Il est possible d’interroger les données sans créer de table au préalable
- La fonction
read_parquet renvoie une relation, ce qui permet de l’utiliser comme sous-requête
- DuckDB prend en charge la plupart des fonctionnalités SQL utilisées dans Postgres
- Par exemple, les fonctions de fenêtre sont entièrement prises en charge
Traitement de jeux de données plus grands que la mémoire
- De nombreux outils de données ne fonctionnent pas correctement lorsque le jeu de données dépasse la mémoire de l’ordinateur
- Cela peut être une source de souffrance largement sous-estimée
- À l’inverse, DuckDB prend entièrement en charge les jeux de données plus grands que la mémoire
- Dans le cas de Pandas, des problèmes peuvent apparaître lorsque le dataframe dépasse 50 % de la mémoire système
Installation et exécution faciles
- DuckDB est compilé sous la forme d’un exécutable unique,
duckdb
- Il est possible d’essayer DuckDB directement dans le navigateur via WASM (shell.duckdb.org)
- Comme il repose sur WASM, tout s’exécute dans le navigateur et non sur un serveur
- Utiliser DuckDB comme une bibliothèque de dataframes
- DuckDB s’intègre bien avec Python
- Il est possible d’exécuter des requêtes dans Python et d’utiliser les valeurs renvoyées
- Cela permet de construire progressivement des opérations de données plus importantes
- On bénéficie à la fois des avantages de SQL et de ceux des dataframes
Stockage des données avec csvbase
- La bibliothèque cliente de csvbase peut s’intégrer à divers systèmes via l’API fsspec
- DuckDB peut lui aussi être utilisé avec csvbase
Scalabilité
- DuckDB ne passe pas à l’échelle sur des milliers de machines
- À l’inverse, Apache Spark le peut, mais au prix d’une complexité importante
- La capacité à réduire l’échelle est elle aussi importante
- DuckDB fonctionne à l’échelle de l’utilisateur individuel et nécessite peu de prérequis
Résumé
- DuckDB peut être une option attrayante pour les analystes de données qui connaissent SQL
- Il peut traiter des données plus grandes que la mémoire, s’installe facilement et peut, dans bien des cas, constituer une bonne alternative à Spark
5 commentaires
ParadeDB a récemment ajouté une bonne alternative. https://blog.paradedb.com/pages/introducing_lakehouse
Particulièrement pratique pour créer facilement de petits tableaux de bord interactifs, notamment avec streamlit.
Est-ce que cela vaudrait le coup de quitter Huggingface Datasets pour ça ?
J’essaie de faire une expérimentation pour créer un tableur basé sur DuckDB. J’ai de très grandes attentes vis-à-vis de DuckDB.
DuckDB - open source DB OLAP embarquée
DuckDB, une base de données même sans données
DuckDB comme nouveau jq
Sortie de DuckDB 1.0.0