DuckDB 0.6.0 Birt, SQLite valkostur fyrir greiningarfyrirspurnir

Útgáfa DuckDB 0.6.0 DBMS er fáanleg, sem sameinar eiginleika SQLite eins og þéttleika, getu til að tengjast í formi innbyggðs bókasafns, geymir gagnagrunninn í einni skrá og þægilegt CLI tengi, með verkfærum og hagræðingu til að framkvæma greiningarfyrirspurnir sem ná yfir verulegan hluta af geymdum gögnum, til dæmis sem safna saman öllu innihaldi taflna eða sameina nokkrar stórar töflur. Verkefniskóðanum er dreift undir MIT leyfinu. Þróunin er enn á því stigi að mynda tilraunaútgáfur, þar sem geymslusniðið hefur ekki enn verið stöðugt og breytist frá útgáfu til útgáfu.

DuckDB býður upp á háþróaða SQL mállýsku sem inniheldur viðbótarmöguleika til að meðhöndla mjög flóknar og tímafrekar fyrirspurnir. Notkun flókinna gerða (fylki, mannvirkja, verkalýðsfélaga) og getu til að framkvæma handahófskenndar og hreiður fylgni undirfyrirspurnir eru studd. Það styður að keyra margar fyrirspurnir samtímis, keyra fyrirspurnir beint úr CSV og Parket skrám. Það er hægt að flytja inn frá PostgreSQL DBMS.

Auk skeljakóðans frá SQLite notar verkefnið þáttara frá PostgreSQL í sérstöku bókasafni, Date Math íhlutinn frá MonetDB, eigin útfærslu á gluggaaðgerðum (byggt á Segment Tree Aggregation algorithm), venjulegri tjáningarvinnslu sem byggir á RE2 bókasafnið, eigin fyrirspurnarfínstillingu og MVCC stýrikerfi samtímis framkvæmd verkefna (Multi-Version Concurrency Control), auk vektoraðrar fyrirspurnarframkvæmdarvélar sem byggir á Hyper-Pipelining Query Execution algrím, sem leyfir stór sett af gildum að vinna í einu í einni aðgerð.

Meðal breytinga í nýju útgáfunni:

  • Áfram var unnið að því að bæta geymslusniðið. Bjartsýnn diskaskrifunarhamur hefur verið innleiddur, þar sem þegar stórt safn af gögnum er hlaðið í einni færslu eru gögnin þjappað saman og skrifuð í skrá úr gagnagrunninum í streymisham, án þess að bíða eftir að viðskiptin séu staðfest með COMMIT skipuninni . Þegar COMMIT skipun er móttekin eru gögnin þegar skrifuð á diskinn og þegar ROLLBACK er keyrt er þeim hent. Áður voru gögnin upphaflega algerlega vistuð í minni og þegar þau voru framin voru þau vistuð á disk.
  • Bætt við stuðningi við samhliða hleðslu gagna í aðskildar töflur, sem gerir þér kleift að auka verulega hleðsluhraða á fjölkjarna kerfum. Til dæmis, í fyrri útgáfunni, tók 150 sekúnda að hlaða gagnagrunni með 10 milljón línum á 91 kjarna örgjörva, en í nýju útgáfunni er þessari aðgerð lokið á 17 sekúndum. Það eru tveir samhliða hleðsluhamir - með varðveislu á röð skráa og án varðveislu röð.
  • Fyrir gagnaþjöppun er FSST (Fast Static Symbol Table) reikniritið notað, sem gerir þér kleift að pakka gögnum inn í strengi með því að nota sameiginlega orðabók með dæmigerðum samsvörun. Notkun nýja reikniritsins gerði það mögulegt að minnka stærð prófunargagnagrunnsins úr 761MB í 251MB.
  • Chimp og Patas reiknirit hefur verið lagt til að þjappa saman flottölum (DOUBLE og FLOAT). Í samanburði við áður notaða Gorillas reiknirit, veitir Chimp hærra stig þjöppunar og hraðari þjöppun. Patas reikniritið er á eftir Chimp í þjöppunarhlutfalli, en er mun hraðari í þjöppunarhraða, sem er nánast ekkert frábrugðið því að lesa óþjöppuð gögn.
  • Bætti við tilraunagetu til að hlaða gögnum úr CSV skrám í marga samhliða strauma (SET experimental_parallel_csv=true), sem dregur verulega úr þeim tíma sem það tekur að hlaða stórum CSV skrám. Til dæmis, þegar þessi valkostur var virkur, var niðurhalstími fyrir 720 MB CSV skrá styttur úr 3.5 í 0.6 sekúndur.
  • Möguleikinn á samhliða framkvæmd vísitölusköpunar og stýringaraðgerða hefur verið innleiddur. Til dæmis var CREATE INDEX aðgerðin á dálki með 16 milljón færslum lækkuð úr 5.92 í 1.38 sekúndur.
  • Virkjaði samhliða samsöfnunaraðgerðir í fyrirspurnum sem innihalda tjáninguna „COUNT(DISTINCT col)“.
  • SQL hefur bætt við stuðningi við UNION gerðina, sem gerir kleift að binda margar tegundir við einn þátt (til dæmis „UNION(tal INT, villa VARCHAR))“).
  • SQL veitir möguleika á að mynda fyrirspurnir sem byrja á orðinu „FROM“ í stað „SELECT“. Í þessu tilviki er gert ráð fyrir að fyrirspurnin byrji á "SELECT *".
  • SQL hefur bætt við stuðningi við COLUMNS tjáninguna, sem gerir þér kleift að framkvæma aðgerð á mörgum dálkum án þess að afrita tjáninguna. Til dæmis, "SELECT MIN(COLUMNS(*)) from obs;" mun valda því að MIN fallið verður keyrt fyrir hvern dálk í obs töflunni, og "SELECT COLUMNS('val[0-9]+') from obs;" fyrir dálka með nafni sem samanstendur af „val“ og tölustöfum.
  • Bætti við stuðningi við aðgerðir á listum, til dæmis „VELDU [x + 1 fyrir x í [1, 2, 3]] AS l;.
  • Minnisnotkun hefur verið fínstillt. Sjálfgefið er að Linux pallurinn notar jemalloc bókasafnið fyrir minnisstjórnun. Verulega bætt frammistaða kjötkássasameiningaraðgerða þegar minni er takmarkað.
  • Bætti „.mode duckbox“ úttaksham við skipanalínuviðmótið, sem fleygir miðdálkunum að teknu tilliti til breiddar flugstöðvargluggans (hentar til að meta fljótt sjónrænt niðurstöður fyrirspurna með miklum fjölda dálka, eins og „SELECT * FRÁ tbl", sem í venjulegum ham dreifast á nokkrar línur). Með því að nota „.maxrows X“ færibreytuna geturðu auk þess takmarkað fjölda lína sem birtast.
  • CLI veitir sjálfvirka útfyllingu inntaks með hliðsjón af samhenginu (innsláttur leitarorða, töfluheita, aðgerðir, dálknöfn og skráarnöfn er lokið).
  • CLI er sjálfgefið með framvinduvísi fyrir fyrirspurnir virkan.

Heimild: opennet.ru

Bæta við athugasemd