Lëshimi i SGBD DuckDB 1.4.0 me mbështetje për enkriptimin e DB

ËshtĂ« publikuar versioni SGBD DuckDB 1.4.0, i orientuar pĂ«r ekzekutimin e kĂ«rkesave analitike dhe konceptualisht i ngjashĂ«m me SQLite. DuckDB kombinon pronat e SQLite, si kompaktĂ«sia, lidhja si njĂ« bibliotekĂ« e integruar, ruajtja e DB nĂ« njĂ« skedar dhe ndĂ«rfaqen CLI, me mundĂ«sitĂ« dhe optimizimet pĂ«r ekzekutimin e kĂ«rkesave analitike qĂ« mbulojnĂ« njĂ« pjesĂ« tĂ« madhe tĂ« tĂ« dhĂ«nave tĂ« ruajtura, pĂ«r shembull, duke kryer agregimin e gjithĂ« pĂ«rmbajtjes sĂ« tavollave ose bashkimin e disa tavollave tĂ« mĂ«dha. Kodi i projektit Ă«shtĂ« shkruar nĂ« gjuhĂ«n C++ dhe shpĂ«rndahet nĂ«n licencĂ«n MIT.

DuckDB ofron njĂ« dialekt tĂ« zgjeruar tĂ« gjuhĂ«s SQL, i cili pĂ«rfshin mundĂ«si shtesĂ« pĂ«r pĂ«rpunimin e kĂ«rkesave shumĂ« komplekse dhe afatgjata. ËshtĂ« e mundur tĂ« pĂ«rdoren tipe tĂ« komplikuara (array, struktura, bashkime), si dhe tĂ« ekzekutohen nĂ«nkĂ«rkesa tĂ« rastĂ«sishme dhe tĂ« ngulitura. MbĂ«shtetet ekzekutimi paralel i kĂ«rkesave tĂ« shumta, ekzekutimi i kĂ«rkesave drejtpĂ«rdrejt nga skedarĂ«t nĂ« formatet CSV dhe Parquet. MbĂ«shtetja e importit nga DBMS PostgreSQL Ă«shtĂ« gjithashtu e disponueshme.

Projekti përdor një shell nga SQLite, parser nga PostgreSQL, komponentin Date Math nga MonetDB, implementimin e tij të funksioneve dritare (baze në algoritmin e Segment Tree Aggregation), një përpunues regex-i të bazuar në bibliotekën RE2, optimizatorë të veçantë pyetjesh, mekanizmin MVCC për menaxhimin e konkurencës (Kontrolli i Konkurrencës me Versione të Shumta), si dhe një motor të vectorizuar për ekzekutimin e pyetjeve të bazuar në algoritmin Hyper-Pipelining Query Execution, që lejon përpunimin e grupeve të mëdha të vlerave në një operacion të vetëm.

Në këtë version të ri:

  • Shtuar mbĂ«shtetje pĂ«r ruajtjen e skedarĂ«ve tĂ« DB nĂ« formĂ« tĂ« enkriptuar. PĂ«r enkriptimin pĂ«rdoret algoritmi AES-256 nĂ« modin GCM. Enkriptohet jo vetĂ«m skedari kryesor me tĂ« dhĂ«na, por gjithashtu log-et WAL dhe skedarĂ«t pĂ«rkohĂ«sorĂ«. ÇelĂ«sat pĂ«r enkriptimin e DB caktohen me komandĂ«n ATTACH pĂ«rmes parametrin ENCRYPTION_KEY. ATTACH ‘encrypted.db’ AS enc_db (ENCRYPTION_KEY ‘quack_quack’);
  • Shto Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r komandĂ«n «MERGE INTO», e cila mund tĂ« pĂ«rdoret si njĂ« alternativĂ« ndaj shprehjes «INSERT 
 ON CONFLICT», e cila nuk kĂ«rkon njĂ« çelĂ«s primar dhe funksionon me kushte tĂ« rastĂ«sishme tĂ« shkrirjes. Komanda «MERGE INTO» lejon krijimin e shprehjeve SQL kushtore qĂ« kombinojnĂ« nĂ« njĂ« shprehje operacionet INSERT, UPDATE dhe DELETE. PĂ«r shembull, duke pĂ«rdorur MERGE, mund tĂ« organizoni bashkimin e 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, *;
  • PĂ«rveç kĂ«saj, pĂ«r tĂ« punuar me tabelat nĂ« formatin Apache Iceberg, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r operacionet e shkrimit (mĂ« parĂ« suportohej vetĂ«m leximi), e cila lejon transferimin e tĂ« dhĂ«nave nga Iceberg nĂ« DuckDB dhe anasjelltas.
  • NĂ« klientin e komandĂ«s sĂ« linjĂ«s Ă«shtĂ« shtuar njĂ« tregues progresi pĂ«r pĂ«rfundimin e operacionit me parashikimin e kohĂ«s sĂ« mbetur deri nĂ« pĂ«rfundim.
  • ËshtĂ« shtuar funksioni dritare «FILL», i cili mund tĂ« pĂ«rdoret pĂ«r interpolimin e vlerave tĂ« humbura nĂ« dritare tĂ« renditur. FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
  • ËshtĂ« realizuar shtesa Teradata Connector pĂ«r lidhjen me bazat e tĂ« dhĂ«nave Teradata. Kjo shtesĂ« lejon manipilimin e tabelave, ekzekutimin e pyetjeve dhe nisjen e komandave SQL direkt nĂ« Teradata, duke pĂ«rdorur DuckDB.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r ruajtjen e gjendjes (checkpoint) tĂ« tabelave tĂ« ruajtura nĂ« memorie, e cila mundĂ«son mbĂ«shtetje pĂ«r kompresimin. Gjithashtu, gjatĂ« ruajtjes sĂ« gjendjes, krijohet pastrimi i rreshtave tĂ« fshirĂ« dhe lirimi i hapĂ«sirĂ«s pas operacioneve tĂ« fshirjes. ATTACH ‘:memory:’ AS memory_compressed (COMPRESS);
  • JanĂ« propozuar disa optimizime tĂ« performancĂ«s: Implementimi i renditjes Ă«shtĂ« transferuar nĂ« pĂ«rdorimin e algoritmit tĂ« bashkimit tĂ« shumĂ«fishtĂ« (k-way merge sort), duke reduktuar lĂ«vizjen e tĂ« dhĂ«nave. Shprehjet e tabelave tĂ« pĂ«rgjithshme (Common Table Expression, CTE) tani materializohen si tĂ« parazgjedhura.

Burimi: opennet.ru

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