Lansarea SGBD-ului DuckDB 1.4.0 cu suport pentru criptarea DB

A fost publicat versiunea 1.4.0 a SGBD-ului DuckDB, orientat spre executarea interogărilor analitice și fiind conceptualmente similar cu SQLite. DuckDB combină caracteristici ale SQLite, precum compactitatea, integrarea sub formă de bibliotecă încorporată, stocarea bazei de date într-un singur fișier și interfața CLI, cu capabilități și optimizări pentru executarea interogărilor analitice, acoperind o parte semnificativă din datele stocate, cum ar fi agregarea tuturor conținutului tabelelor sau unirea mai multor tabele mari. Codul proiectului este scris în C++ și este distribuit sub licența MIT.

DuckDB oferă un dialect extins al limbajului SQL, incluzând funcționalități suplimentare pentru procesarea interogărilor foarte complexe și de lungă durată. Este posibilă utilizarea tipurilor complexe (matrici, structuri, unii), precum și executarea subinterogărilor corelate arbitrare și închise. Suportul pentru execuția simultană a mai multor interogări este disponibil, precum și executarea interogărilor direct din fișiere în formatele CSV și Parquet. Suportul pentru import din SGBD PostgreSQL este disponibil.

Proiectul utilizează un shell din SQLite, un parser din PostgreSQL, componenta Date Math din MonetDB, propria implementare a funcțiilor de fereastră (bazată pe algoritmul Segment Tree Aggregation), un procesor de expresii regulate bazat pe biblioteca RE2, un optimizator de interogări propriu, un mecanism MVCC de gestionare a concurrenței sarcinilor (Multi-Version Concurrency Control), precum și un motor vectorizat de execuție a interogărilor bazat pe algoritmul Hyper-Pipelining Query Execution, permițând procesarea într-o singură operație a unor seturi mari de valori.

În noua versiune:

  • A fost adăugată suportul pentru stocarea fișierelor bazei de date în formă criptată. Pentru criptare se folosește algoritmul AES-256 în modul GCM. Sunt criptate nu doar fișierul principal cu date, ci și jurnalele WAL și fișierele temporare. Cheile pentru criptarea bazei de date sunt specificate prin comanda ATTACH prin parametrul ENCRYPTION_KEY. ATTACH ‘encrypted.db’ AS enc_db (ENCRYPTION_KEY ‘quack_quack’);
  • A fost adăugată suportul pentru comanda „MERGE INTO”, care poate fi utilizată ca alternativă la expresia „INSERT … ON CONFLICT”, fără a necesita cheia primară și funcționând cu condiții arbitrare de unire. Comanda „MERGE INTO” permite crearea de expresii SQL condiționate, combinând în aceeași expresie operațiunile INSERT, UPDATE și DELETE. De exemplu, folosind MERGE se poate organiza unirea a două tabele, inserând înregistrările lipsă și actualizând pe cele existente. 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, *;
  • În plus, pentru lucrul cu tabelele în format Apache Iceberg a fost adăugat suportul pentru operațiile de scriere (anterior era suportat doar citirea), ceea ce permite transferul datelor din Iceberg în DuckDB și invers.
  • Clientul din linia de comandă a fost îmbunătățit cu un indicator de progres al execuției operațiunii, care prevestește timpul rămas până la finalizare.
  • A fost adăugată funcția de fereastră „FILL”, care poate fi utilizată pentru interpolarea valorilor lipsă în feronci ordonate. FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
  • A fost implementat modulul Teradata Connector pentru conectarea la bazele de date Teradata. Modulul permite manipularea tabelelor, executarea interogărilor și rularea comenzilor SQL direct în Teradata, folosind DuckDB.
  • A fost adăugată suportul pentru salvarea stării (checkpoint) a tabelelor stocate în memorie, ceea ce a permis implementarea suportului pentru comprimare. În plus, la salvarea stării se efectuează curățarea rândurilor șterse și eliberarea locului după operațiunile de ștergere. ATTACH ‘:memory:’ AS memory_compressed (COMPRESS);
  • Au fost propuse câteva optimizări de performanță: Implementarea sortării a fost transformată pentru a folosi algoritmul de sortare prin interclasare pe mai multe căi (k-way merge sort), reducând astfel mișcarea datelor. Expresiile de tabel generalizate (Common Table Expression, CTE) sunt acum materializate implicit.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster