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
