DuckDB 0.6.0 Foillsichte, Roghainn SQLite airson Ceistean Mion-sgrùdaidh

Tha sgaoileadh an DuckDB 0.6.0 DBMS ri fhaighinn, a’ cothlamadh feartan SQLite mar compactness, an comas ceangal a dhèanamh ann an cruth leabharlann freumhaichte, a’ stòradh an stòr-dàta ann an aon fhaidhle agus eadar-aghaidh CLI goireasach, le innealan agus optimizations airson a chuir gu bàs. ceistean anailis a’ còmhdach pàirt chudromach den dàta a tha air a stòradh, mar eisimpleir a bhios a’ cruinneachadh susbaint iomlan nan clàran no a’ ceangal grunn chlàran mòra. Tha còd a’ phròiseict air a sgaoileadh fo chead MIT. Tha an leasachadh fhathast aig an ìre de bhith a’ cruthachadh fiosan deuchainneach, leis nach eil an cruth stòraidh air a dhèanamh seasmhach fhathast agus ag atharrachadh bho dhreach gu dreach.

Tha DuckDB a 'toirt seachad dualchainnt SQL adhartach a tha a' toirt a-steach comasan a bharrachd airson a bhith a 'làimhseachadh cheistean a tha gu math toinnte agus a' toirt ùine. Thathas a’ toirt taic do bhith a’ cleachdadh sheòrsan iom-fhillte (arraighean, structaran, aonaidhean) agus an comas fo-cheistean co-dhàimheach neo-riaghailteach agus neadachaidh a chur an gnìomh. Bidh e a’ toirt taic do bhith a’ ruith grunn cheistean aig an aon àm, a’ ruith cheistean gu dìreach bho fhaidhlichean CSV agus Parquet. Tha e comasach a thoirt a-steach bhon PostgreSQL DBMS.

A bharrachd air a’ chòd shligean bho SQLite, bidh am pròiseact a’ cleachdadh parser bho PostgreSQL ann an leabharlann air leth, am pàirt Date Math bho MonetDB, a bhuileachadh fhèin air gnìomhan uinneig (stèidhichte air an algairim Segment Tree Aggregation), pròiseasar abairt cunbhalach stèidhichte air an leabharlann RE2, an optimizer ceiste aige fhèin, agus inneal smachd MVCC gus gnìomhan a choileanadh aig an aon àm (Smachd Ioma-dhreach Concurrency), a bharrachd air einnsean cur an gnìomh ceist vectorized stèidhichte air an algairim Cur an gnìomh Ceist Hyper-Pipelining, a leigeas le seataichean mòra de luachan a bhith air an giullachd aig an aon àm ann an aon obrachadh.

Am measg nan atharrachaidhean san fhoillseachadh ùr:

  • Lean obair air adhart gus an cruth stòraidh a leasachadh. Chaidh modh sgrìobhaidh diosc dòchasach a chuir an gnìomh, anns am bi an dàta air a dhlùthadh agus air a sgrìobhadh gu faidhle bhon stòr-dàta ann am modh sruthadh nuair a thèid seata mòr de dhàta a luchdachadh ann an aon ghnothach, gun a bhith a’ feitheamh ris a’ ghnothach a dhearbhadh leis an àithne COMMIT . Nuair a gheibhear àithne COMMIT, tha an dàta air a sgrìobhadh gu diosc mar-thà, agus nuair a thèid ROLLBACK a chuir gu bàs, thèid a thoirt air falbh. Roimhe sin, chaidh an dàta a shàbhaladh gu tur an toiseach gu cuimhne, agus nuair a chaidh a ghealltainn, chaidh a shàbhaladh gu diosc.
  • Taic a bharrachd airson luchdachadh dàta co-shìnte gu bùird fa leth, a leigeas leat astar luchdachadh àrdachadh gu mòr air siostaman ioma-cridhe. Mar eisimpleir, anns an fhoillseachadh roimhe, thug luchdachadh stòr-dàta le 150 millean sreath air CPU 10-cridhe 91 diogan, ach anns an dreach ùr tha an obair seo air a chrìochnachadh ann an 17 diogan. Tha dà dhòigh luchdachadh co-shìnte ann - le gleidheadh ​​​​òrdugh chlàran agus gun a bhith a 'gleidheadh ​​​​òrdugh.
  • Airson teannachadh dàta, thathas a’ cleachdadh an algairim FSST (Fast Static Symbol Table), a leigeas leat dàta a phacadh taobh a-staigh sreangan a’ cleachdadh faclair cumanta de gheamannan àbhaisteach. Le bhith a’ cleachdadh an algairim ùr bha e comasach meud an stòr-dàta deuchainn a lughdachadh bho 761MB gu 251MB.
  • Chaidh algorithms Chimp agus Patas a mholadh gus àireamhan puing-fleòdraidh a dhlùthadh (DOUBLE and FLOAT). An coimeas ris an algairim Gorillas a bh ’ann roimhe, tha Chimp a’ toirt seachad ìrean nas àirde de dhlùthadh agus dì-dhùmhlachadh nas luaithe. Tha an algairim Patas air dheireadh air Chimp ann an co-mheas teannachaidh, ach tha e fada nas luaithe ann an astar dì-dhùmhlachadh, rud nach eil eadar-dhealaichte bho bhith a’ leughadh dàta neo-bhrùite.
  • Chuir sinn ris comas deuchainneach airson dàta a luchdachadh bho fhaidhlichean CSV gu grunn shruthan co-shìnte (SET experimental_parallel_csv = fìor), a lughdaicheas gu mòr an ùine a bheir e gus faidhlichean mòra CSV a luchdachadh. Mar eisimpleir, nuair a chaidh an roghainn seo a chomasachadh, chaidh an ùine luchdachadh sìos airson faidhle 720 MB CSV a lughdachadh bho 3.5 gu 0.6 diogan.
  • Chaidh comas obair cruthachaidh is riaghlaidh clàr-amais a chuir an gnìomh aig an aon àm. Mar eisimpleir, chaidh gnìomhachd CREATE INDEX air colbh le 16 millean clàr a lughdachadh bho 5.92 gu 1.38 diogan.
  • Dèan comas co-shìnteadh de ghnìomhachd cruinneachaidh ann an ceistean anns a bheil an abairt “COUNT(DISTINCT col)”.
  • Tha SQL air taic a chuir ris an t-seòrsa UNION, a leigeas le iomadh seòrsa a bhith ceangailte ri aon eileamaid (mar eisimpleir, “UNION (num INT, error VARCHAR))”).
  • Tha SQL a’ toirt comas ceistean a chruthachadh a thòisicheas leis an fhacal “FROM” an àite “SELECT”. Anns a 'chùis seo, thathas a' gabhail ris gu bheil a 'cheist a' tòiseachadh le "SELECT *".
  • Tha SQL air taic a chuir ris an abairt COLUMNS, a leigeas leat gnìomhachd a dhèanamh air ioma-cholbh gun a bhith a’ dùblachadh an abairt. Mar eisimpleir, “SELECT MIN(COLUMNS(*)) bho obs;” adhbharaichidh seo an gnìomh MIN airson gach colbh sa chlàr obs, agus "SELECT COLUMNS ('val[0-9]+') o obs;" airson colbhan le ainm air a dhèanamh suas de “val” agus àireamhan.
  • Taic a bharrachd airson gnìomhachd air liostaichean, mar eisimpleir, “SELECT [x + 1 airson x ann an [1, 2, 3]] AS l;”.
  • Tha caitheamh cuimhne air a mheudachadh. Gu gnàthach, bidh an àrd-ùrlar Linux a’ cleachdadh leabharlann jemalloc airson riaghladh cuimhne. Coileanadh gu math nas fheàrr de ghnìomhachd aonadh hash nuair a tha cuimhne cuibhrichte.
  • Chuir sinn modh toraidh “.mode duckbox” ris an eadar-aghaidh loidhne-àithne, a bhios a’ tilgeadh air falbh na colbhan meadhanach a’ toirt aire do leud na h-uinneige crìche (freagarrach airson toraidhean cheistean a mheasadh gu sgiobalta le àireamh mhòr de cholbhan, leithid “SELECT * FROM tbl”, a tha sa mhodh àbhaisteach air a sgaoileadh thairis air grunn loidhnichean). A’ cleachdadh am paramadair “.maxrows X”, faodaidh tu cuideachd an àireamh de shreathan a tha air an taisbeanadh a chuingealachadh.
  • Bidh an CLI a’ toirt seachad fèin-choileanadh cuir a-steach a’ toirt aire don cho-theacsa (cuir a-steach prìomh fhaclan, ainmean bùird, gnìomhan, ainmean colbhan agus ainmean faidhle air a chrìochnachadh).
  • Tha comharra adhartais ceist aig an CLI air a chomasachadh gu bunaiteach.

Source: fosgailtenet.ru

Cuir beachd ann