DuckDB 0.6.0 është publikuar, një variant SQLite për kërkesa analitike

Doli në dispozicion versioni i DBMS DuckDB 0.6.0, që kombinon karakteristikat e SQLite, siç janë kompaktësia, mundësia e lidhjes si një bibliotekë e integruar, ruajtja e DB në një skedar dhe një ndërfaqe CLI miqësore, me mjete dhe optimizime për të realizuar kërkesa analitike që përfshijnë një pjesë të konsiderueshme të të dhënave të ruajtura, ndalja e agregimit të të gjitha përmbajtjeve të tabelave ose bashkimin e disa tabelave të mëdha. Kodi i projektit shpërndahen nën licencën MIT. Zhvillimi është ende në fazën e formimit të lëshimeve eksperimentale, pasi formati i ruajtjes nuk është stabilizuar dhe ndryshon nga versioni në version.

DuckDB ofron një dialekt të avancuar të gjuhës SQL, duke përfshirë mundësi shtesë për përpunimin e kërkesave shumë të ndërlikuara dhe të zgjatura. Mbështetet përdorimi i tipeve të ndërlikuara (dëgjo, struktura, bashkime) dhe mundësia për të ekzekutuar nënpyetje të rastësishme dhe të ngulitura. Mbështetet ekzekutimi i disa kërkesave në të njëjtën kohë, ekzekutimi i kërkesave drejtpërdrejt nga skedarët në formatin CSV dhe Parquet. Ka mundësi për import nga DBMS PostgreSQL.

Përveç kodit të shell-it nga SQLite, projekti përdor parser-in e hequr në një bibliotekë të veçantë nga PostgreSQL, komponentin Date Math nga MonetDB, implementimin e tij të funksioneve mendore (të bazuar në algoritmin Segment Tree Aggregation), përpunuesin e shprehjeve të rregullta të bazuar në bibliotekën RE2, optimizuesin e pyetjeve, mekanizmin MVCC për menaxhimin e ekzekutimit të shumëfishtë të detyrave (Kontrolli i Konkurrenceve me Versions të Shumta), si dhe motorin vektorizues të ekzekutimit të pyetjeve të bazuar në algoritmin Hyper-Pipelining Query Execution, i cili lejon të përpunoni grupe të mëdha vlerash në një operacion.

Ndryshimet në publikimin e ri përfshijnë:

  • Puna pĂ«r pĂ«rmirĂ«simin e formatit tĂ« ruajtjes Ă«shtĂ« vazhduar. ËshtĂ« realizuar njĂ« modalitet optimist pĂ«r shkruarjen nĂ« disk, ku gjatĂ« ngarkimit tĂ« njĂ« grumbi tĂ« madh tĂ« dhĂ«nash nĂ« njĂ« transaksion, tĂ« dhĂ«nat kompresohen dhe regjistrohen nĂ« skedarin e DB-sĂ« nĂ« mĂ«nyrĂ« streaming, pa pritur pĂ«r pĂ«rfundimin e konfirmimit tĂ« transaksionit me komandĂ«n COMMIT. GjatĂ« marrjes sĂ« komandĂ«s COMMIT, tĂ« dhĂ«nat janĂ« tashmĂ« tĂ« regjistruara nĂ« disk, dhe gjatĂ« ekzekutimit tĂ« ROLLBACK ato pĂ«rjashtohen. MĂ« parĂ«, tĂ« dhĂ«nat ruheshin fillimisht plotĂ«sisht nĂ« memorje, dhe gjatĂ« komitit ruheshin nĂ« disk.
  • Shtuar mbĂ«shtetje pĂ«r ngarkimin paralel tĂ« tĂ« dhĂ«nave nĂ« tabela tĂ« veçanta, e cila ndihmon nĂ« rritjen e dukshme tĂ« shpejtĂ«sisĂ« sĂ« ngarkimit nĂ« sisteme me shumĂ« bĂ«rthamĂ«. PĂ«r shembull, nĂ« versionin e kaluar, ngarkimi i DB-sĂ« me 150 milion rreshta nĂ« njĂ« CPU 10-bĂ«rthamĂ«sh zgjaste 91 sekonda, ndĂ«rsa nĂ« versionin e ri kjo operacion kryhet pĂ«r 17 sekonda. Parashikohen dy mĂ«nyra ngarkimi paralel — me dhe pa ruajtjen e rendit tĂ« rreshtave.
  • PĂ«r kompresimin e tĂ« dhĂ«nave Ă«shtĂ« pĂ«rdorur algoritmi FSST (Fast Static Symbol Table), i cili lejon paketimin e tĂ« dhĂ«nave brenda rreshtave, duke pĂ«rdorur njĂ« fjalor tĂ« pĂ«rbashkĂ«t pĂ«r pĂ«rputhjet tipike. PĂ«rdorimi i algoritmit tĂ« ri e ka reduktuar madhĂ«sinĂ« e DB-sĂ« testuese nga 761MB nĂ« 251MB.
  • PĂ«r kompresimin e numrave me pozita tĂ« lĂ«vizshme (DOUBLE dhe FLOAT) janĂ« propozuar algoritmet Chimp dhe Patas. Krahasuar me algoritmin e mĂ«parshĂ«m Gorillas, Chimp ofron njĂ« nivel mĂ« tĂ« lartĂ« kompresimi dhe njĂ« shpĂ«rndarje mĂ« tĂ« shpejtĂ«. Algoritmi Patas Ă«shtĂ« mĂ« pas nĂ« shkallĂ«n e kompresimit nĂ« krahasim me Chimp, por Ă«shtĂ« dukshĂ«m mĂ« i shpejtĂ« nĂ« shpĂ«rndarje, e cila Ă«shtĂ« pothuajse e njĂ«jtĂ« me leximin e tĂ« dhĂ«nave tĂ« pakompresuara.
  • ËshtĂ« shtuar njĂ« mundĂ«si eksperimentale pĂ«r ngarkimin e tĂ« dhĂ«nave nga skedarĂ«t CSV nĂ« disa rrjedha paralele (SET experimental_parallel_csv=true), e cila redukton ndjeshĂ«m kohĂ«n e ngarkesĂ«s pĂ«r skedarĂ«t e mĂ«dhenj CSV. PĂ«r shembull, me aktivizimin e kĂ«saj opsioni, koha e ngarkesĂ«s sĂ« skedarit CSV me madhĂ«si 720 MB Ă«shtĂ« reduktuar nga 3.5 nĂ« 0.6 sekonda.
  • ËshtĂ« realizuar mundĂ«sia pĂ«r ekzekutimin paralel tĂ« operacioneve tĂ« krijimit dhe menaxhimit tĂ« indekseve. PĂ«r shembull, ekzekutimi i operacionit CREATE INDEX pĂ«r njĂ« kolonĂ« me 16 milion tĂ« dhĂ«na Ă«shtĂ« reduktuar nga 5.92 nĂ« 1.38 sekonda.
  • ËshtĂ« siguruar paralelizimi i operacioneve tĂ« agregimit nĂ« pyetjet qĂ« pĂ«rmbajnĂ« shprehjen "COUNT(DISTINCT col)".
  • NĂ« SQL Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r llojin UNION, qĂ« lejon lidhjen e disa llojeve me njĂ« element tĂ« vetĂ«m (pĂ«r shembull, "UNION(num INT, error VARCHAR)").
  • NĂ« SQL Ă«shtĂ« ofruar mundĂ«sia pĂ«r tĂ« formuar pyetje qĂ« fillojnĂ« me fjalĂ«n "FROM" nĂ« vend tĂ« "SELECT". NĂ« kĂ«tĂ« rast, nĂ«nkuptohet se pyetja fillon me "SELECT *".
  • NĂ« SQL Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r shprehjen "COLUMNS", e cila lejon kryerjen e operacioneve mbi shumĂ« kolona pa shumĂ«fishim tĂ« shprehjes. PĂ«r shembull, "SELECT MIN(COLUMNS(*)) from obs;" do tĂ« ekzekutojĂ« funksionin MIN pĂ«r çdo kolonĂ« nĂ« tabelĂ«n obs, ndĂ«rsa "SELECT COLUMNS('val[0-9]+') from obs;" do tĂ« veprojĂ« mbi kolonat me emrin qĂ« pĂ«rbĂ«het nga "val" dhe numra.
  • E shtuar mbĂ«shtetje pĂ«r operacionet mbi lista, pĂ«r shembull, "SELECT [x + 1 for x in [1, 2, 3]] AS l;".
  • Optimizuar konsumimi i memories. Nga e para, nĂ« platformĂ«n Linux, pĂ«r menaxhimin e memories Ă«shtĂ« angazhuar biblioteka jemalloc. Performanca e operacioneve tĂ« bashkimeve tĂ« hash-it Ă«shtĂ« pĂ«rmirĂ«suar ndjeshĂ«m kur ka mbetur njĂ« madhĂ«si e kufizuar e memories.
  • NĂ« ndĂ«rfaqen e komandave Ă«shtĂ« shtuar moda e daljes ".mode duckbox", e cila hedh columnat e mesme duke marrĂ« parasysh gjerĂ«sinĂ« e dritares sĂ« terminalit (e pĂ«rshtatshme pĂ«r njĂ« vlerĂ«sim tĂ« shpejtĂ« vizual tĂ« rezultateve tĂ« pyetjeve me numĂ«r tĂ« madh kolonash, si "SELECT * FROM tbl", tĂ« cilat nĂ« modin e zakonshĂ«m shpĂ«rndahen nĂ« disa rreshta). Me anĂ« tĂ« parametrave ".maxrows X" gjithashtu mund tĂ« kufizoni numrin e rreshtave tĂ« daljes.
  • NĂ« CLI Ă«shtĂ« e siguruar pĂ«rfundimi automatik i hyrjes, duke marrĂ« parasysh kontekstin (dorĂ«zohet pĂ«rfundimi i fjalĂ«ve kyçe, emrave tĂ« tabelave, funksioneve, emrave tĂ« kolonave dhe emrave tĂ« skedareve).
  • NĂ« CLI, ekathe Ă«shtĂ« e aktivizuar nga e para pĂ«r tĂ« treguar indikatori i avancimit tĂ« kĂ«rkesĂ«s.

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