Sortie de DuckDB 0.10.0, une variante de SQLite pour les requĂȘtes analytiques

La version 0.10.0 de la base de donnĂ©es DuckDB a Ă©tĂ© prĂ©sentĂ©e, combinant des propriĂ©tĂ©s de SQLite, telles que la compacitĂ©, la possibilitĂ© de connexion sous forme de bibliothĂšque intĂ©grĂ©e, le stockage de la base de donnĂ©es dans un seul fichier et une interface CLI conviviale, avec des outils et des optimisations pour exĂ©cuter des requĂȘtes analytiques couvrant une grande partie des donnĂ©es stockĂ©es, par exemple, en effectuant l'agrĂ©gation de tout le contenu des tables ou la fusion de plusieurs grandes tables. Le code du projet est distribuĂ© sous la licence MIT. Le dĂ©veloppement est encore en phase de crĂ©ation de versions expĂ©rimentales, car le format de stockage n'est pas encore stabilisĂ© et varie d'une version Ă  l'autre.

DuckDB propose un dialecte SQL Ă©tendu, incluant des fonctionnalitĂ©s supplĂ©mentaires pour traiter des requĂȘtes trĂšs complexes et de longue durĂ©e. L'utilisation de types complexes (tableaux, structures, unions) est supportĂ©e, ainsi que la possibilitĂ© d'exĂ©cuter des sous-requĂȘtes corrĂ©lĂ©es arbitraires et imbriquĂ©es. L'exĂ©cution simultanĂ©e de plusieurs requĂȘtes est prise en charge, ainsi que l'exĂ©cution de requĂȘtes directement Ă  partir de fichiers au format CSV et Parquet. Il est possible d'importer des donnĂ©es depuis la base de donnĂ©es PostgreSQL.

En plus du code Shell provenant de SQLite, le projet utilise un parseur extrait de PostgreSQL, le composant Date Math de MonetDB, sa propre implĂ©mentation de fonctions de fenĂȘtre (basĂ©e sur l'algorithme Segment Tree Aggregation), un gestionnaire d'expressions rĂ©guliĂšres basĂ© sur la bibliothĂšque RE2, son propre optimiseur de requĂȘtes, un mĂ©canisme de contrĂŽle de concurrence multi-version (Multi-Version Concurrency Control), ainsi qu'un moteur d'exĂ©cution de requĂȘtes vectorisĂ© basĂ© sur l'algorithme Hyper-Pipelining Query Execution, permettant de traiter de grands ensembles de valeurs en une seule opĂ©ration.

Parmi les changements de la nouvelle version :

  • La performance du parsing des donnĂ©es au format CSV a considĂ©rablement augmentĂ©. Par exemple, la lecture d'un fichier CSV de 11 millions de lignes dans la nouvelle version a Ă©tĂ© rĂ©duite de 2,6 secondes Ă  1,15 secondes, et l'exĂ©cution de l'opĂ©ration « SELECT COUNT(*) » sur le fichier CSV est passĂ©e de 1,8 seconde Ă  0,3 seconde.
  • Le support des tableaux de taille fixe a Ă©tĂ© ajoutĂ©, qui ressemblent Ă  des listes contenant un nombre fixe d'Ă©lĂ©ments (« CREATE TABLE vectors(v DOUBLE[3]); »).
  • Ajout de la prise en charge de la connexion aux SGBD MySQL, PostgreSQL et SQLite, permettant de charger des donnĂ©es dans DuckDB Ă  partir de SGBD externes et de les dĂ©placer entre diffĂ©rents systĂšmes. L'accĂšs aux bases de donnĂ©es externes se fait Ă  l'aide de tables typiques. ATTACH ‘postgres:dbname=postgresscanner’ AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
  • Ajout de la prise en charge de l'expression « COMMENT ON » pour enregistrer un commentaire sur un objet dans la base de donnĂ©es.
  • Ajout de la prise en charge de l'expression « COPY FROM DATABASE » pour copier tout le contenu d'une base de donnĂ©es Ă  une autre.
  • Ajout de la prise en charge du modificateur « ALL » dans les expressions EXCEPT et INTERSECT.
  • Type implĂ©mentĂ© »

    Source : opennet.ru
Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster