Lëshimi i DBMS DuckDB 1.4.0 me mbështetje për enkriptimin e DB-së.

ËshtĂ« publikuar versioni 1.4.0 i SGBD DuckDB, i orientuar pĂ«r ekzekutimin e pyetjeve analitike dhe qĂ« nga ana konceptuale i ngjan SQLite. DuckDB kombinon veçori tĂ« SQLite, si kompaktĂ«sia, lidhja nĂ« formĂ«n e njĂ« biblioteke tĂ« integruar, ruajtja e DB nĂ« njĂ« skedar tĂ« vetĂ«m dhe ndĂ«rfaqja CLI, me mundĂ«si dhe optimizime pĂ«r ekzekutimin e pyetjeve analitike qĂ« pĂ«rfshijnĂ« njĂ« pjesĂ« tĂ« konsiderueshme tĂ« tĂ« dhĂ«nave tĂ« ruajtura, pĂ«r shembull agregimin e gjithĂ« pĂ«rmbajtjes sĂ« tabelave ose bashkimin e disa tabelave tĂ« mĂ«dha. Kodi i projektit Ă«shtĂ« shkruar nĂ« C++ dhe shpĂ«rndahet nĂ«n licencĂ«n MIT.

DuckDB ofron njĂ« dialekt tĂ« zgjeruar tĂ« SQL, qĂ« pĂ«rfshin mundĂ«si shtesĂ« pĂ«r pĂ«rpunimin e pyetjeve shumĂ« komplekse dhe me kohĂ« tĂ« gjatĂ« ekzekutimi. MbĂ«shtoret pĂ«rdorimi i tipeve komplekse (vargje, struktura, bashkime), si edhe ekzekutimi i nĂ«npyetjeve arbitrare dhe tĂ« ndĂ«rlidhura tĂ« futura brenda njĂ«ra-tjetrĂ«s. MbĂ«shtoret ekzekutimi i njĂ«kohshĂ«m i disa pyetjeve, ekzekutimi i pyetjeve drejtpĂ«rdrejt nga skedarĂ« nĂ« formatet CSV dhe Parquet. ËshtĂ« gjithashtu e disponueshme mbĂ«shtetja pĂ«r import nga SGBD PostgreSQL.

Projekti përdor një mbështjellës nga SQLite, parserin nga PostgreSQL, komponentin Date Math nga MonetDB, realizimin e tij të funksioneve dritare (të bazuar në algoritmin Segment Tree Aggregation), një procesor për shprehje të rregullta të bazuar në bibliotekën RE2, optimizuesin e tij të kërkesave, mekanizmin MVCC për menaxhimin e ekzekutimit të përbashkët të detyrave (Multi-Version Concurrency Control), si dhe një motor të vectorizuar për ekzekutimin e kërkesave të bazuar në algoritmin Hyper-Pipelining Query Execution, i cili lejon përpunimin në një operacion të grupeve të mëdha të vlerave njëherësh.

NĂ« versionin e ri:

  • ËshtĂ« shtuar mbĂ«shtetja pĂ«r ruajtjen e skedarĂ«ve tĂ« DB nĂ« formĂ« tĂ« enkriptuar. PĂ«r enkriptim pĂ«rdoret algoritmi AES-256 nĂ« modalitetin GCM. Enkriptohet jo vetĂ«m skedari kryesor me tĂ« dhĂ«nat, por edhe regjistrat WAL dhe skedarĂ«t e pĂ«rkohshĂ«m. ÇelĂ«sat pĂ«r enkriptimin e DB caktohen me komandĂ«n ATTACH pĂ«rmes parametrit ENCRYPTION_KEY. ATTACH ‘encrypted.db’ AS enc_db (ENCRYPTION_KEY ‘quack_quack’);
  • ËshtĂ« shtuar mbĂ«shtetja pĂ«r komandĂ«n «MERGE INTO», e cila mund tĂ« pĂ«rdoret si alternativĂ« ndaj shprehjes «INSERT 
 ON CONFLICT», pa kĂ«rkuar njĂ« çelĂ«s primar dhe duke funksionuar me kushte arbitrare bashkimi. Komanda «MERGE INTO» lejon krijimin e shprehjeve SQL me kushte, qĂ« bashkojnĂ« nĂ« njĂ« shprehje tĂ« vetme operacionet INSERT, UPDATE dhe DELETE. PĂ«r shembull, me ndihmĂ«n e MERGE mund tĂ« organizohet bashkimi i dy tabelave, duke futur regjistrimet qĂ« mungojnĂ« dhe duke pĂ«rditĂ«suar ato ekzistuese. 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, *;
  • Si shtesĂ« pĂ«r punĂ«n me tabelat nĂ« formatin Apache Iceberg, Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r operacionet e shkrimit (mĂ« parĂ« mbĂ«shtetej vetĂ«m leximi), gjĂ« qĂ« mundĂ«son transferimin e tĂ« dhĂ«nave nga Iceberg nĂ« DuckDB dhe anasjelltas.
  • NĂ« klientin e linjĂ«s sĂ« komandĂ«s Ă«shtĂ« shtuar njĂ« tregues i progresit tĂ« ekzekutimit tĂ« operacionit me parashikim tĂ« kohĂ«s sĂ« mbetur deri nĂ« pĂ«rfundim.
  • ËshtĂ« shtuar funksioni dritare «FILL», i cili mund tĂ« pĂ«rdoret pĂ«r interpolimin e vlerave qĂ« mungojnĂ« nĂ« dritare tĂ« renditura. FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
  • ËshtĂ« implementuar shtesa Teradata Connector pĂ«r lidhje me bazat e tĂ« dhĂ«nave Teradata. Shtesa mundĂ«son manipulimin e tabelave, ekzekutimin e pyetjeve dhe nisjen e komandave SQL drejtpĂ«rdrejt nĂ« Teradata, duke pĂ«rdorur DuckDB.
  • ËshtĂ« shtuar mbĂ«shtetja pĂ«r ruajtjen e gjendjes (checkpoint) tĂ« tabelave tĂ« mbajtura nĂ« memorie, gjĂ« qĂ« bĂ«ri tĂ« mundur zbatimin e mbĂ«shtetjes pĂ«r kompresim. PĂ«r mĂ« tepĂ«r, gjatĂ« ruajtjes sĂ« gjendjes kryhet pastrimi i rreshtave tĂ« fshirĂ« dhe lirohet hapĂ«sira pas operacioneve tĂ« fshirjes. ATTACH ‘:memory:’ AS memory_compressed (COMPRESS);
  • JanĂ« propozuar disa optimizime tĂ« performancĂ«s: Zbatimi i renditjes Ă«shtĂ« kaluar nĂ« pĂ«rdorimin e algoritmit tĂ« bashkimit shumĂ«rugĂ«sh (k-way merge sort), i cili zvogĂ«lon lĂ«vizjen e tĂ« dhĂ«nave. Shprehjet tabelare tĂ« pĂ«rbashkĂ«ta (Common Table Expression, CTE) tani materializohen si parazgjedhje.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster