Publication de la base de données DuckDB 1.4.0 avec support du chiffrement de la base de données

La version 1.4.0 de la base de donnĂ©es DuckDB, conçue pour exĂ©cuter des requĂȘtes analytiques et conceptuellement similaire Ă  SQLite, a Ă©tĂ© publiĂ©e. DuckDB combine des propriĂ©tĂ©s de SQLite telles que compacitĂ©, intĂ©gration en tant que bibliothĂšque embarquĂ©e, stockage de la base de donnĂ©es dans un seul fichier, et interface en ligne de commande, avec des fonctionnalitĂ©s et des optimisations pour exĂ©cuter des requĂȘtes analytiques couvrant une partie significative des donnĂ©es stockĂ©es, comme effectuer des agrĂ©gations sur l'ensemble du contenu des tables ou fusionner plusieurs grandes tables. Le code du projet est Ă©crit en C++ et est distribuĂ© sous licence MIT.

DuckDB fournit un dialecte SQL Ă©tendu, incluant des fonctionnalitĂ©s supplĂ©mentaires pour traiter des requĂȘtes trĂšs complexes et de longue durĂ©e. Il est possible d'utiliser des types complexes (tableaux, structures, unions), ainsi que d'exĂ©cuter des sous-requĂȘtes corrĂ©lĂ©es arbitraires et imbriquĂ©es. L'exĂ©cution simultanĂ©e de plusieurs requĂȘtes est supportĂ©e, ainsi que l'exĂ©cution de requĂȘtes directement Ă  partir de fichiers au format CSV et Parquet. Un support pour l'importation Ă  partir de bases de donnĂ©es PostgreSQL est Ă©galement disponible.

Le projet utilise un shell basĂ© sur SQLite, un analyseur provenant de PostgreSQL, un composant Date Math de MonetDB, sa propre implĂ©mentation de fonctions de fenĂȘtres (basĂ©e sur l'algorithme Segment Tree Aggregation), un gestionnaire d'expressions rĂ©guliĂšres sur la base de la bibliothĂšque RE2, son propre optimiseur de requĂȘtes, un mĂ©canisme de contrĂŽle de la 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.

Dans la nouvelle version :

  • La prise en charge du stockage de fichiers de base de donnĂ©es de maniĂšre chiffrĂ©e a Ă©tĂ© ajoutĂ©e. L'algorithme AES-256 en mode GCM est utilisĂ© pour le chiffrement. Non seulement le fichier principal avec les donnĂ©es est chiffrĂ©, mais aussi les journaux WAL et les fichiers temporaires. Les clĂ©s pour le chiffrement de la base de donnĂ©es sont spĂ©cifiĂ©es par la commande ATTACH via le paramĂštre ENCRYPTION_KEY. ATTACH 'encrypted.db' AS enc_db (ENCRYPTION_KEY 'quack_quack');
  • La prise en charge de la commande « MERGE INTO » a Ă©tĂ© ajoutĂ©e, qui peut ĂȘtre utilisĂ©e comme alternative Ă  l'expression « INSERT 
 ON CONFLICT », ne nĂ©cessitant pas de clĂ© primaire et fonctionnant avec des conditions de fusion arbitraires. La commande « MERGE INTO » permet de crĂ©er des expressions SQL conditionnelles combinant dans une seule expression les opĂ©rations INSERT, UPDATE et DELETE. Par exemple, avec MERGE, on peut organiser la fusion de deux tables en insĂ©rant les enregistrements manquants et en mettant Ă  jour les existants. WITH deletes(item_id, delete_threshold) AS (VALUES (10, 3000)) MERGE INTO Stock USING deletes USING (item_id) WHEN MATCHED AND balance < delete_threshold THEN DELETE RETURNING merge_action, *;
  • De plus, la prise en charge des opĂ©rations d'Ă©criture pour travailler avec des tables au format Apache Iceberg a Ă©tĂ© ajoutĂ©e (auparavant, seule la lecture Ă©tait supportĂ©e), ce qui permet de transfĂ©rer des donnĂ©es d'Iceberg vers DuckDB et vice versa.
  • Un indicateur de progression a Ă©tĂ© ajoutĂ© au client de ligne de commande pour suivre le temps restant avant l'achĂšvement de l'opĂ©ration.
  • Une fonction de fenĂȘtre «FILL» a Ă©tĂ© ajoutĂ©e, pouvant ĂȘtre utilisĂ©e pour interpoler les valeurs manquantes dans des fenĂȘtres ordonnĂ©es. FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
  • Un connecteur Teradata a Ă©tĂ© implĂ©mentĂ© pour se connecter aux bases de donnĂ©es Teradata. Ce connecteur permet de manipuler des tables, d'exĂ©cuter des requĂȘtes et de lancer des commandes SQL directement dans Teradata Ă  l'aide de DuckDB.
  • La prise en charge du checkpoint pour les tables stockĂ©es en mĂ©moire a Ă©tĂ© ajoutĂ©e, permettant ainsi de mettre en Ɠuvre la compression. De plus, lors du checkpoint, les lignes supprimĂ©es sont nettoyĂ©es et de l'espace est libĂ©rĂ© aprĂšs des opĂ©rations de suppression. ATTACH ':memory:' AS memory_compressed (COMPRESS);
  • Plusieurs optimisations de performance ont Ă©tĂ© proposĂ©es : La mise en Ɠuvre du tri a Ă©tĂ© convertie pour utiliser l'algorithme de tri par fusion k-way, rĂ©duisant le mouvement des donnĂ©es. Les expressions de table communes (Common Table Expression, CTE) sont dĂ©sormais matĂ©rialisĂ©es par dĂ©faut.

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