Rhyddhau DBMS SQLite 3.42 a DuckDB 0.8.0. CG/SQL gyda gweithredu gweithdrefnau storio ar gyfer SQLite

Mae rhyddhau SQLite 3.42, DBMS ysgafn a ddyluniwyd fel llyfrgell plug-in, wedi'i gyhoeddi. Mae'r cod SQLite yn cael ei ddosbarthu yn y parth cyhoeddus, h.y. gellir ei ddefnyddio heb gyfyngiadau ac yn rhad ac am ddim at unrhyw ddiben. Darperir cymorth ariannol i ddatblygwyr SQLite gan gonsortiwm a grëwyd yn arbennig, sy'n cynnwys cwmnïau fel Adobe, Oracle, Mozilla, Bentley a Bloomberg.

Newidiadau mawr:

  • Ar gyfer mynegeion testun llawn FTS5, mae'r gorchymyn dileu diogel wedi'i weithredu, sy'n clirio'r holl ddata gweddilliol yn llwyr ar ôl ei ddileu.
  • Mae swyddogaethau ar gyfer prosesu data JSON bellach yn cefnogi estyniadau JSON5.
  • Gwell cynllunydd ymholiad. Yn ddiofyn, mae optimeiddio cyfrif-golwg wedi'i alluogi. Mae prosesu colofnau nas defnyddiwyd mewn subqueries yn cael ei ddileu. Gwell gweithrediad o optimeiddio gwthio i lawr.
  • Ychwanegwyd opsiwn “--anniogel-testing” i'r rhyngwyneb llinell orchymyn, sy'n caniatáu defnyddio rhai gorchmynion peryglus, megis “.testctrl”, y bwriedir eu defnyddio wrth brofi. Yn y modd diogel (“-safe”), caniateir defnyddio'r gorchmynion “.log on” a “.log off”. Ychwanegwyd cefnogaeth i'r amffinydd “—”, ar gyfer dadleuon y mae prosesu opsiynau wedi'i analluogi ar ôl hynny. Ychwanegwyd paramedrau ":inf" a ":nan" sy'n gysylltiedig â'r anfeidredd a gwerthoedd NaN.
  • Caniateir i enwau ffwythiannau SQL a ddiffinnir gan gymhwysiad orgyffwrdd â'r allweddeiriau CROSS, LLAWN, INNER, CHWITH, NATURIOL, ALLANOL, a DDE.
  • Mae galluoedd PRAGMA integrity_check wedi'u hehangu. Ychwanegwyd gwirio ar gyfer pennu gwerthoedd NaN mewn colofnau gyda'r amod NOT NULL. Gwell cynnwys gwybodaeth o negeseuon gwall.
  • Mae'r ychwanegiad sesiwn yn caniatáu rhyng-gipio newidiadau o dablau heb ROWID.
  • Mae'r addasydd “subsec” wedi'i ychwanegu at swyddogaethau ar gyfer gweithio gydag amseroedd a dyddiadau i ddefnyddio ffracsiynau eiliadau.
  • Mae'r dyfnder ailadrodd rhagosodedig ar gyfer araeau a gwrthrychau JSON wedi'i leihau o 2000 i 1000.

Yn ogystal, mae rhyddhau'r DuckDB 0.8.0 DBMS wedi'i greu, sy'n datblygu fersiwn o SQLite, wedi'i ehangu gyda galluoedd ac optimeiddiadau ar gyfer gweithredu ymholiadau dadansoddol sy'n cwmpasu rhan sylweddol o'r data sydd wedi'i storio, er enghraifft, perfformio agregu'r cynnwys cyfan o fyrddau neu uno sawl bwrdd mawr. Yn darparu tafodiaith ddatblygedig o SQL sy'n cynnwys galluoedd ychwanegol ar gyfer prosesu ymholiadau cymhleth iawn sy'n cymryd llawer o amser, a hefyd yn cefnogi mathau cymhleth (araeau, strwythurau, undebau), rhedeg ymholiadau lluosog ar yr un pryd, a rhedeg ymholiadau yn uniongyrchol o ffeiliau CSV, JSON, a Parquet . Mae'n bosibl mewnforio o DBMS PostgreSQL.

Yn ogystal â'r cod cragen o SQLite, mae'r prosiect yn defnyddio parser o PostgreSQL mewn llyfrgell ar wahân, y gydran Date Math o MonetDB, ei weithrediad ei hun o swyddogaethau ffenestr (yn seiliedig ar algorithm Cydgasglu Coed Segment), prosesydd mynegiant rheolaidd yn seiliedig ar y llyfrgell RE2, ei optimeiddiwr ymholiad ei hun, a mecanwaith rheoli MVCC cyflawni tasgau ar yr un pryd (Rheoli Cyfnewid Aml-Fersiwn), yn ogystal â pheiriant gweithredu ymholiad fectoraidd yn seiliedig ar yr algorithm Cyflawni Ymholiad Hyper-Pipelining, sy'n caniatáu setiau mawr o werthoedd i'w brosesu ar unwaith mewn un gweithrediad. Mae cod y prosiect yn cael ei ddosbarthu o dan y drwydded MIT.

Yn y fersiwn newydd o DuckDB:

  • Ychwanegwyd ymadroddion newydd "PIVOT" ac "UNPIVOT" i drawsnewid rhesi yn golofnau ac i'r gwrthwyneb.
  • Gwell cyfochredd wrth fewnforio ac allforio data. Yn ddiofyn, mae darllen aml-edau o ffeiliau CSV ac ysgrifennu aml-edau yn cael eu gweithredu wrth ddefnyddio fformatau Parquet, CSV a JSON.
  • Ychwanegwyd gweithredwr "**" i ailadrodd yn rheolaidd trwy gyfeiriaduron wrth bennu llwybrau ffeil (er enghraifft, O "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Cefnogaeth ychwanegol ar gyfer gweithrediadau uno (JOIN) ar gyfer data ar ffurf cyfres amser (tafelli o werthoedd paramedr ar gyfnodau amser penodol), lle nad yw'r maen prawf ar gyfer uno cofnodion yn gyd-ddigwyddiad union, ond yn fras o werthoedd mewn maes ag amser (er enghraifft, gallwch gyfuno cofnodion, amser sy'n amrywio o ddim mwy nag 1 munud).
  • Wedi gweithredu llwyth diog o fetadata cronfa ddata, a oedd yn ei gwneud hi'n bosibl cyflymu lansiad y DBMS ddegau o weithiau.
  • Cefnogaeth ychwanegol ar gyfer cysylltu swyddogaethau arferiad yn Python.
  • Cefnogaeth ychwanegol i'r ADBC ​​(Arrow Database Connectivity) API ar gyfer trosglwyddo data gan ddefnyddio Apache Arrow.
  • Mae rhwymiad wedi'i roi ar waith ar gyfer integreiddio â chod Swift.
  • Wedi newid ymddygiad gweithredwr yr is-adran ("/") i wneud cyfrifiadau pwynt arnawf yn lle gweithrediadau cyfanrif yn ddiofyn. Cynigir gweithredwr newydd “//” ar gyfer rhaniad cyfanrif. Gellir dychwelyd yr hen ymddygiad trwy osod “SET integer_division=true;”.
  • Mae’r dull o gymryd i ystyriaeth cofnodion sero wrth ddidoli wedi’i newid o “NULLS FIRST” i “NULLS LAST”, h.y. Bydd gwerthoedd NULL nawr yn cael eu hargraffu ar y diwedd yn hytrach na dechrau'r rhestr. Gellir dychwelyd yr hen ymddygiad trwy osod “SET default_null_order='nulls_first';”.

Yn ogystal, gallwn nodi'r prosiect CG/SQL a ddatblygwyd gan Facebook, sy'n darparu generadur cod ar gyfer defnyddio gweithdrefnau storio gyda SQLite. Mae CG/SQL yn caniatáu ichi ysgrifennu gweithdrefnau sydd wedi'u storio mewn tafodiaith arbennig o T-SQL (Transact-SQL), sy'n caniatáu swyddogaethau galw'r llyfrgell C safonol a chyrchu data yn SQLite. Mae'r gweithdrefnau storio a gynhyrchir yn cael eu crynhoi i god C sy'n defnyddio API SQLite C i gyflawni gweithredoedd penodol a phrosesu ymholiadau cymhleth. Gellir cysylltu gweithdrefnau storio wedi'u llunio â rhaglenni C, Java ac Amcan-C. Mae cod y prosiect wedi'i ysgrifennu yn C ac yn cael ei ddosbarthu o dan y drwydded MIT.

Ffynhonnell: opennet.ru

Ychwanegu sylw