DuckDB 0.6.0 La daabacay, Xulashada SQLite ee Weydiimaha Falanqaynta

Siideynta DuckDB 0.6.0 DBMS waa la heli karaa, isku darka sifooyinka SQLite sida isafgaradka, awoodda isku xirka qaab maktabad ku xiran, kaydinta xogta hal fayl iyo interface CLI ku habboon, oo leh qalab iyo hagaajinta fulinta Weydiimaha gorfaynta ee daboolaya qayb muhiim ah oo ka mid ah xogta la kaydiyay, tusaale ahaan isu geynaya dhammaan waxa ku jira miisaska ama isku dara dhowr miisas oo waaweyn. Xeerka mashruuca waxa lagu qaybiyaa shatiga MIT. Horumarka ayaa weli ku jira marxaladda samaynta siidaynta tijaabada ah, maadaama qaabka kaydinta aan weli la dejin oo uu beddelo nooc ilaa nooc.

DuckDB waxay bixisaa lahjad horumarsan oo SQL ah oo ay ku jiraan awoodo dheeraad ah oo lagu maareynayo weydiimaha aadka u adag oo waqti badan qaata. Isticmaalka noocyo kakan (habayn, qaab-dhismeedyo, ururo) iyo kartida lagu fulinayo wax-is-daba-marin hoose ayaa la taageeray. Waxay taageertaa socodsiinta su'aalo badan isku mar, ka socodsiinta su'aalaha si toos ah faylasha CSV iyo Parquet. Waa suurtogal in laga keeno PostgreSQL DBMS.

Marka lagu daro koodhka qolofka ee SQLite, mashruucu wuxuu isticmaalaa parser-ka PostgreSQL ee maktabad gaar ah, Qaybta Xisaabta Taariikhda ee MonetDB, hirgelinteeda u gaarka ah ee hawlaha daaqada (oo ku salaysan Segment Tree Aggregation algorithm), farsameeyaha muujinta joogtada ah ee ku salaysan maktabadda RE2, hagaajinteeda su'aalaheeda, iyo habka xakamaynta MVCC ee fulinta hawlaha isku mar ah (Multi-Version Concurrency Concurrency), iyo sidoo kale matoorka fulinta weydiinta ee ku salaysan algorithm-ka Hyper-pipelining Query Execution, kaas oo u oggolaanaya qaybo badan oo qiyam ah. in hal mar lagu farsameeyo hal qaliin.

Waxaa ka mid ah isbeddelada sii deynta cusub:

  • Shaqada ayaa sii waday si loo hagaajiyo qaabka kaydinta. Habka qorista diskka ee rajooyinka leh ayaa la hirgeliyay, kaas oo marka lagu shubayo xog badan oo hal macaamil ganacsi ah, xogta waa la cufan oo lagu qoraa fayl ka mid ah database-ka qaabka qulqulka, iyada oo aan la sugin macaamilka si loo xaqiijiyo amarka COMMIT . Marka amarka COMMIT la helo, xogta waxaa hore loogu qoray saxanka, marka ROLLBACK la fuliyo, waa la tuuraa. Markii hore, xogta ayaa markii hore si buuxda loogu keydiyay xusuusta, markii la go'aamiyay, waxaa lagu keydiyay diskka.
  • Taageero dheeri ah oo loogu talagalay isbarbardhigga xogta ee miisaska kala duwan, kaas oo kuu ogolaanaya inaad si weyn u kordhiso xawaaraha loading ee hababka multi-core. Tusaale ahaan, sii dayntii hore, ku shubista kaydka xogta oo leh 150 milyan oo saf oo 10-core CPU ah waxay qaadatay 91 ilbiriqsi, laakiin nooca cusub hawlgalkan wuxuu ku dhammaaday 17 ilbiriqsi. Waxaa jira laba hab oo isbarbar socda - iyadoo la ilaalinayo nidaamka diiwaannada iyo iyadoon la ilaalin nidaamka.
  • Isku-buufinta xogta, FSST (Shaxda Calaamadaha Degdegga ah) algorithm ayaa la isticmaalaa, kaas oo kuu oggolaanaya inaad ku xidho xogta xargaha dhexdiisa iyadoo la adeegsanayo qaamuus caadi ah ee kulannada caadiga ah. Isticmaalka algorithm-ka cusub ayaa suurtageliyay in la dhimo cabbirka xogta xogta tijaabada laga bilaabo 761MB ilaa 251MB.
  • Chimp iyo Patas algorithms ayaa la soo jeediyay in la isku cadaadiyo nambarada dul sabeynaya (LABAALE iyo FLOAT). Marka la barbar dhigo algorithm-kii hore ee Gorillas, Chimp wuxuu bixiyaa heerar sare oo cadaadis iyo depression degdeg ah. Algorithm-ka Patas wuxuu ka dambeeyaa Chimp saamiga isku-buufinta, laakiin aad ayuu ugu dhakhsaha badan yahay xawaaraha depression, kaas oo aan ka duwanayn akhrinta xogta aan la isku dhejin.
  • Waxaa lagu daray awood tijaabo ah oo xogta laga soo raro faylalka CSV oo loo galiyay durdurro is barbar socda oo badan (SET experimental_parallel_csv= run), taas oo si weyn u yaraynaysa wakhtiga ay ku qaadanayso in lagu shubo faylalka waaweyn ee CSV. Tusaale ahaan, markii ikhtiyaarkan la furay, wakhtiga soo dejinta ee faylka CSV ee 720 MB ayaa laga dhimay 3.5 ilaa 0.6 ilbiriqsi.
  • Suurtagalnimada fulinta isbarbar-dhigga ee abuurista tusmooyinka iyo hawlgallada maaraynta waa la fuliyay. Tusaale ahaan, hawlgalka CREATE INDEX ee tiir leh 16 milyan oo diiwaan ayaa laga dhimay 5.92 ilaa 1.38 ilbiriqsi.
  • La dajiyay isbarbardhigga hawlgallada isu geynta ee su'aalaha ka kooban weedha "COUNT(DISTINCT col)".
  • SQL waxay ku dartay taageerada nooca UNION, kaas oo u oggolaanaya noocyo badan in lagu xidho hal shay (tusaale, "UNION(nambar INT, qalad VARCHAR))").
  • SQL waxa uu bixiyaa awooda lagu sameeyo su'aalo ka bilaabma ereyga "FROM" halkii laga isticmaali lahaa "XUL". Xaaladdan oo kale, waxaa loo maleynayaa in weydiintu ay ku bilaabato "Xul *".
  • SQL waxay ku dartay taageerada odhaahda COLUMNS, taas oo kuu ogolaanaysa inaad samayso qalliin ku yaala tiirar badan adigoon nuqul ka dhigin muujinta. Tusaale ahaan, "Xulashada MIN (COLUMNS(*)) laga bilaabo obs;" waxay sababi doontaa shaqada MIN in loo fuliyo tiir kasta oo ku jira miiska obs, iyo "Xulashada COLUMNS('val[0-9]+') laga bilaabo obs;" tiirar leh magac ka kooban "val" iyo tirooyin.
  • Taageero lagu daray hawlgallada liisaska, tusaale ahaan, "Xulsho [x + 1 x gudaha [1, 2, 3]] AS l;".
  • Isticmaalka xusuusta ayaa la hagaajiyay. Sida caadiga ah, goobta Linux waxay u isticmaashaa maktabadda jemalloc maaraynta xusuusta. Waxqabadka si weyn u wanaajiyay ee hawlgallada isku darka xashiishku marka xusuusta xaddidan tahay.
  • Habka wax soo saarka ".mode duckbox" oo lagu daray khadka taliska, kaas oo tuuraya tiirarka dhexe iyada oo la tixgelinayo ballaadhka daaqadda terminalka (ku habboon in si deg deg ah loo qiimeeyo natiijooyinka weydiimaha leh tiro badan oo tiirar ah, sida "Dooro * FROM tbl", kaas oo qaabka caadiga ah lagu faafiyay dhowr sadar). Adigoo isticmaalaya halbeegga ".maxrows X", waxaad kaloo xaddidi kartaa tirada safafka ee la soo bandhigay.
  • CLI waxay bixisaa dhamaystirka gelinta iyadoo la tixgalinayo macnaha guud (galinta ereyada muhiimka ah, magacyada miiska, shaqooyinka, magacyada tiirka iyo magacyada faylka waa la dhammaystiray).
  • CLI waxay leedahay tilmaame horusocodka weydiinta oo si toos ah u suurtageliyay.

Source: opennet.ru

Add a comment