Sgaoileadh DBMS SQLite 3.42 agus DuckDB 0.8.0. CG/SQL le buileachadh modhan-obrach air an stòradh airson SQLite

Chaidh sgaoileadh SQLite 3.42, DBMS aotrom a chaidh a dhealbhadh mar leabharlann plug-in, fhoillseachadh. Tha an còd SQLite air a sgaoileadh san raon phoblach, i.e. faodar a chleachdadh gun chuingealachaidhean agus an-asgaidh airson adhbhar sam bith. Tha taic ionmhais do luchd-leasachaidh SQLite air a thoirt seachad le co-bhanntachd a chaidh a chruthachadh gu sònraichte, a tha a’ toirt a-steach companaidhean leithid Adobe, Oracle, Mozilla, Bentley agus Bloomberg.

Atharraichean mòra:

  • Airson clàran-amais làn-theacsa FTS5, tha an àithne cuir às gu tèarainte air a chuir an gnìomh, a bhios gu tur a’ glanadh a h-uile dàta a tha air fhàgail às deidh a dhubhadh às.
  • Tha gnìomhan airson giullachd dàta ann an cruth JSON a-nis a’ toirt taic do leudachadh JSON5.
  • Dealbhaiche ceist nas fheàrr. Tha optimization count-of-view air a chomasachadh gu bunaiteach. Cur às do làimhseachadh cholbhan nach deach a chleachdadh ann am fo-cheistean. Buileachadh optimization push-down nas fheàrr.
  • Chaidh roghainn “--unsafe-testing” a chur ris an CLI gus cuid de dh’ àitheantan cunnartach leithid “.testctrl” a chleachdadh ann an deuchainnean. Ann am modh sàbhailte ("--safe"), tha na h-òrdughan ".log on" agus ".log off" ceadaichte. Taic a bharrachd airson an dealaiche “—”, airson argamaidean às deidh sin tha giullachd roghainnean à comas. Chaidh crìochan ": inf" agus ":nan" a chur ris a tha co-cheangailte ri luachan Infinity agus NaN.
  • Tha cead aig ainmean gnìomhan SQL a tha air an sònrachadh le tagradh a bhith eadar-dhealaichte leis na prìomh fhaclan CROSS, FULL, INNER, LEFT, NATURAL, OUTER, agus CEART.
  • Leudaich comasan PRAGMA integrity_check. Seic a bharrachd airson an luach NaN a shònrachadh ann an colbhan leis an t-suidheachadh NOT NULL. Susbaint fiosrachaidh nas fheàrr de theachdaireachdan mearachd.
  • Tha cur-ris an t-seisein a’ ceadachadh eadar-ghabhail atharrachaidhean bho chlàran às aonais ROWIDs.
  • Chaidh am mion-atharrachaidh “subsec” a chur ri gnìomhan airson obrachadh le ùine agus cinn-latha gus bloighean de dhiog a chleachdadh.
  • Lùghdachadh doimhneachd ath-chuairteachaidh bunaiteach airson arrays agus nithean JSON bho 2000 gu 1000.

A bharrachd air an sin, chaidh an sgaoileadh DuckDB 0.8.0 DBMS a chruthachadh, a leasaicheas an tionndadh SQLite, air a neartachadh le feartan agus optimizations airson a bhith a’ coileanadh cheistean mion-sgrùdaidh a ’còmhdach pàirt chudromach den dàta a tha air a stòradh, mar eisimpleir, a’ cruinneachadh susbaint iomlan nan clàran no a ’tighinn còmhla grunn bùird mòra. Tha dualchainnt leudaichte de chànan SQL air a thoirt seachad, a’ toirt a-steach comasan a bharrachd airson a bhith a’ làimhseachadh cheistean fìor iom-fhillte agus fad-ùine, a bharrachd air taic airson seòrsachan iom-fhillte (còmhraidhean, structaran, aonaidhean), coileanadh ioma-cheistean aig an aon àm, agus cur an gnìomh cheistean gu dìreach bho faidhlichean ann an cruth CSV, JSON agus Parquet. Tha e comasach a thoirt a-steach bho PostgreSQL DBMS.

A bharrachd air a’ chòd shligean bho SQLite, bidh am pròiseact a’ cleachdadh parser bho PostgreSQL, air a ghluasad gu 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 faireachdainn cunbhalach. stèidhichte air leabharlann RE2, an optimizer ceiste aige fhèin, inneal smachd MVCC coileanadh gnìomhan 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 bhith a ’giullachd sheataichean mòra de luachan aig an aon àm ann an aon obrachadh. Tha còd a’ phròiseict air a sgaoileadh fo chead MIT.

Anns an dreach ùr de DuckDB:

  • Chaidh abairtean ùra a chur ris “PIVOT” agus “UNPIVOT” gus sreathan a thionndadh gu colbhan agus a chaochladh.
  • Co-shìnteachadh nas fheàrr nuair a thathar a’ toirt a-steach agus às-mhalairt dàta. Gu gnàthach, bidh leughadh bho fhaidhlichean ann an cruth CSV gu grunn shruthan agus sgrìobhadh ioma-snàithlean air a chuir an gnìomh nuair a bhios tu a’ cleachdadh cruthan Parquet, CSV agus JSON.
  • Gnìomhaiche “**” air a chur ris gus ath-aithris a dhèanamh air clàran-seòlaidh nuair a thathar a’ mìneachadh slighean faidhle (me BHO "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Taic a bharrachd airson gnìomhachd aonadh (JOIN) airson dàta ann an cruth sreath ùine (sliotan de luachan paramadair aig amannan sònraichte), anns nach eil an slat-tomhais airson clàran a chur còmhla ceart, ach tuairmseach maids de luachan ann an raon le ùine (mar eisimpleir, faodaidh tu clàran a chur còmhla, ùine a tha eadar-dhealaichte gun a bhith nas fhaide na 1 mionaid).
  • Chaidh an luchdachadh de mheata-dàta stòr-dàta a chuir dheth a chuir an gnìomh, a rinn e comasach foillseachadh an DBMS deich uiread a luathachadh.
  • Taic a bharrachd airson gnìomhan àbhaisteach a cheangal ann am Python.
  • Taic a bharrachd airson ADBC ​​(Arrow Database Connectivity) API airson gluasad dàta a’ cleachdadh Apache Arrow.
  • Ceangal air a chuir an gnìomh airson amalachadh le còd Swift.
  • Dh’ atharraich giùlan gnìomhaiche na roinne (“/”), a bhios a-nis a’ dèanamh àireamhachadh puing-fleòdraidh gu bunaiteach an àite gnìomhachd an t-slànaighear. Chaidh gnìomhaiche ùr "//" a mholadh airson roinneadh an t-slànaighear. Gabhaidh an seann ghiùlan a thilleadh le bhith a' suidheachadh "SET integer_division=true;".
  • Tha an dòigh cunntais airson clàran neo-fhillte nuair a chaidh an òrdachadh atharrachadh bho “NULLS FIRST” gu “NULLS LAST”, i.e. Thèid luachan NULL a-nis a thaisbeanadh aig an deireadh an àite toiseach na liosta. Gabhaidh an seann ghiùlan ath-nuadhachadh le bhith a' suidheachadh "SET default_null_order='nulls_first';".

A bharrachd air an sin, faodar a thoirt fa-near don phròiseact CG/SQL a chaidh a leasachadh le Facebook, a bheir seachad gineadair còd airson a bhith a’ cleachdadh mhodhan stòraichte le SQLite. Leigidh CG/SQL leat modhan glèidhte a sgrìobhadh ann an dualchainnt shònraichte de T-SQL (Transact-SQL), a leigeas leat gnìomhan leabharlann àbhaisteach C a ghairm agus faighinn gu dàta ann an SQLite. Tha na modhan-obrach stòraichte air an cur ri chèile ann an còd C a bhios a’ cleachdadh an SQLite C API gus gnìomhan sònraichte a choileanadh agus ceistean iom-fhillte a phròiseasadh. Faodar modhan stòraidh cruinnichte a cheangal ri prògraman C, Java, agus Amas-C. Tha còd a’ phròiseict air a sgrìobhadh ann an C agus air a chuairteachadh fo chead MIT.

Source: fosgailtenet.ru

Cuir beachd ann