Kuburitswa kweDBMS SQLite 3.42 uye DuckDB 0.8.0. CG/SQL nekuitwa kwemaitiro akachengetwa eSQLite

Kuburitswa kweSQLite 3.42, isingaremi DBMS yakagadzirwa senge plug-in raibhurari, yakaburitswa. Iyo SQLite kodhi inogoverwa munharaunda yeruzhinji, i.e. inogona kushandiswa pasina zvirambidzo uye pasina muripo kune chero chinangwa. Rutsigiro rwemari rwevagadziri veSQLite rwunopihwa nemubatanidzwa wakanyatsogadzirwa, unosanganisira makambani akadai seAdobe, Oracle, Mozilla, Bentley neBloomberg.

Shanduko huru:

  • Kune FTS5 yakazara-zvinyorwa zvinyorwa, iyo yakachengeteka-yekudzima mirairo inoshandiswa, iyo inochenesa zvachose data rese rakasara mushure mekudzimwa.
  • Mabasa ekugadzirisa data muJSON fomati ikozvino anotsigira JSON5 extensions.
  • Yakavandudzwa query planner. Count-of-view optimization inogoneswa neiyo default. Yakabviswa kubata kwemakoramu asina kushandiswa mune subqueries. Yakanatsiridza push-down optimization kuita.
  • Yakawedzerwa "--unsafe-testing" sarudzo kuCLI kubvumira mimwe mirairo ine ngozi yakadai se ".testctrl" kuti ishandiswe pakuedza. In safe mode ("--safe"), ".log on" uye ".log off" mirairo inobvumirwa. Yakawedzera tsigiro ye "-" separator, yenharo mushure mezvo sarudzo yekugadzirisa inovharwa. Yakawedzerwa ":inf" uye ":nan" zvimiro zvine chekuita nekusingaperi uye NaN kukosha.
  • Mazita e-application-defined SQL mabasa anobvumirwa kupindirana neCROSS, FULL, INNER, LEFT, NATURAL, OUTER, uye RIGHT keywords.
  • Yakawedzera PRAGMA integrity_check kugona. Yakawedzerwa cheki yekutsanangura kukosha kweNaN mumakoramu ane NOT NULL mamiriro. Ruzivo rwakavandudzwa rwemashoko ekukanganisa.
  • Iyo chikamu chekuwedzera inobvumira kubatwa kwekuchinja kubva kumatafura asina ROWIDs.
  • Iyo "subsec" modifier yakawedzerwa kumabasa ekushanda nenguva nemazuva ekushandisa zvikamu zvemasekondi.
  • Yakaderedzwa default recursion kudzika kwearrays uye JSON zvinhu kubva 2000 kusvika 1000.

Pamusoro pezvo, iyo DuckDB 0.8.0 DBMS kuburitswa yakaumbwa, iyo inovandudza iyo SQLite musiyano, inovandudzwa nemaitiro uye optimizations yekuita mibvunzo yekuongorora inovhara chikamu chakakosha che data rakachengetwa, semuenzaniso, kuunganidza zvese zviri mukati mematafura kana kubatanidza akati wandei. matafura makuru. Mutauro wakawedzerwa wemutauro weSQL unopihwa, unosanganisira mamwe masimba ekubata mibvunzo yakaoma uye yakareba-refu, pamwe nerutsigiro rwemhando dzakaomarara (zvirongwa, zvimiro, mibatanidzwa), kuita panguva imwe chete yemibvunzo yakawanda, uye kuitwa kwemibvunzo zvakananga kubva. mafaera muCSV, JSON uye Parquet fomati. Zvinokwanisika kuunza kubva kuPostgreSQL DBMS.

Pamusoro peiyo shell kodhi kubva kuSQLite, purojekiti inoshandisa parser kubva kuPostgreSQL, yakatamira kune imwe raibhurari yakaparadzana, iyo Date Math chikamu kubva kuMonetDB, kwayo kuita kwayo kwemahwindo mabasa (zvichienderana neSegment Tree Aggregation algorithm), inogara ichitaura processor. zvichibva paraibhurari yeRE2, yayo yekubvunza optimizer, MVCC yekudzora nzira panguva imwe chete yekuitwa kwemabasa (Multi-Version Concurrency Control), pamwe nevectorized query execution injini yakavakirwa paHyper-Pipelining Query Execution algorithm, iyo inobvumira kugadzirisa mahombe e values ​​kamwechete mukushanda kumwe. Iyo kodhi yeprojekiti yakagoverwa pasi peMIT rezinesi.

Mune shanduro itsva yeDuckDB:

  • Yakawedzera mazwi matsva "PIVOT" uye "UNPIVOT" kushandura mitsetse kuita makoramu uye zvichipesana.
  • Yakavandudzwa parallelization kana uchipinza uye kutumira kunze data. Nekumisikidza, kuverenga kubva kumafaira ari CSV fomati kuita nzizi dzakawanda uye akawanda-ane tambo kunyora kunoitwa kana uchishandisa Parquet, CSV uye JSON mafomati.
  • Yakawedzerwa "**" mushandisi kuti adzokorore achidzokorodza pamadhairekitori pakutsanangura makwara efaira (semuenzaniso KUBVA "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Yakawedzerwa tsigiro yekubatanidza mashandiro (JOIN) yedata muchimiro chenguva yakatevedzana (zvimedu zveparameter tsika panguva yakatarwa), umo chiyero chekubatanidza marekodhi chisiri chaicho, asi chiyero chakafanana chehunhu. mumunda uine nguva (semuenzaniso, unogona kusanganisa marekodhi, nguva inosiyana neinopfuura miniti 1).
  • Iko kudzoserwa kurodha kwedatabase metadata kwaitwa, izvo zvakaita kuti zvikwanise kukurumidza kutangwa kweDBMS kakapetwa kagumi.
  • Yakawedzera rutsigiro rwekubatanidza tsika mabasa muPython.
  • Yakawedzerwa rutsigiro rweADBC ​​(Arrow Database Connectivity) API yekufambisa data uchishandisa Apache Arrow.
  • Yakaitwa inosunga yekubatanidzwa ne Swift kodhi.
  • Yakachinja maitiro ekupatsanurwa ("/") mushandisi, uyo ave kuita maverengero anoyangarara nzvimbo nekusarudzika panzvimbo pekuita zvidimbu. Mushandi mutsva "//" apihwa kupatsanurwa kwakazara. Maitiro ekare anogona kudzoserwa nekuisa "SET integer_division=true;".
  • Iyo nzira yekuverengera kune null marekodhi kana kuronga kwakashandurwa kubva ku "NULLS FIRST" kuenda ku "NULLS LAST", i.e. NULL tsika ikozvino icharatidzwa kumagumo panzvimbo pekutanga kwerondedzero. Maitiro echinyakare anogona kudzoreredzwa nekuseta "SET default_null_order='nulls_first';".

Pamusoro pezvo, chirongwa cheCG/SQL chakagadzirwa neFacebook, chinopa kodhi jenareta yekushandisa yakachengetwa maitiro neSQLite, inogona kucherechedzwa. CG/SQL inokutendera kuti unyore maitiro akachengetwa mumutauro unokosha weT-SQL (Transact-SQL), iyo inobvumidza iwe kudaidza mabasa eiyo standard C raibhurari uye kuwana data muSQLite. Iyo yakagadzirwa yakachengetwa maitiro inounganidzwa muC kodhi inoshandisa iyo SQLite C API kuita zviito zvakatemwa uye kugadzirisa mibvunzo yakaoma. Akaunganidzwa akachengetwa maitiro anogona kubatanidzwa neC, Java, uye Objective-C zvirongwa. Iyo kodhi yeprojekiti yakanyorwa muC uye yakagoverwa pasi peMIT rezinesi.

Source: opennet.ru

Voeg