30 points par xguru 2024-06-13 | 5 commentaires | Partager sur WhatsApp
  • 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 :
    1. Expérience développeur
    2. Capacité à traiter des jeux de données plus grands que la mémoire
    3. 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

 
cometkim 2024-06-13

ParadeDB a récemment ajouté une bonne alternative. https://blog.paradedb.com/pages/introducing_lakehouse

 
silveris23 2024-06-13

Particulièrement pratique pour créer facilement de petits tableaux de bord interactifs, notamment avec streamlit.

 
brainer 2024-06-13

Est-ce que cela vaudrait le coup de quitter Huggingface Datasets pour ça ?

 
hackerwins 2024-06-13

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.