DuckDB andmebaasi vÀljaanne 1.2.0

VĂ€lja on antud DuckDB 1.2.0, mis on suunatud analĂŒĂŒtiliste pĂ€ringute tĂ€itmisele ja mille kontseptsioon sarnaneb SQLite'iga. DuckDB ĂŒhendab sellised SQLite omadused nagu kompaktne suurus, integreeritav raamatukoguna, andmebaasi salvestamine ĂŒhte faili ja CLI-liides, koos analĂŒĂŒtiliste pĂ€ringute tĂ€itmisvĂ”imaluste ja optimeerimisega, mis katab mĂ€rkimisvÀÀrse osa salvestatud andmetest, nĂ€iteks kiiret andmete agregatsiooni vĂ”i suuremate tabelite ĂŒhendamist. Projekti kood on kirjutatud C++ keeles ja jagatakse MIT litsentsi alusel.

DuckDB pakub ulatuslikku SQL keele dialekti, mis sisaldab tĂ€iendavaid vĂ”imalusi keerukate ja pikaajaliste pĂ€ringute töötlemiseks. Toetatakse keeruliste tĂŒĂŒpide (massiv, struktuurid, liidendid) kasutamist ja vĂ”imalust tĂ€ita omavahel seotud alampĂ€ringuid. Samuti on toetatud mitme pĂ€ringu samanaegne tĂ€itmine, pĂ€ringute otsefailidest, nagu CSV ja Parquet. On olemas ka toimetamine PostgreSQL andmebaasidest.

Projekt kasutab SQLite'i kestat, PostgreSQL'i parset, MonetDB Date Math komponenti, oma aknafunktsioonide rakendust (Segment Tree Aggregation alusel), regulaaravalduste töötlejat RE2 raamatukogu pĂ”hjal, oma pĂ€ringu optimeerijat, MVCC mehhanismi (Multi-Version Concurrency Control) ja vektori mootori pĂ€ringutĂ€itmiseks, mis pĂ”hineb hĂŒpertorustuse pĂ€ringute tĂ€itmise algoritmil, vĂ”imaldades ĂŒhes tegevuses korraga kĂ€sitleda suuri vÀÀrtuste kogumeid.

Uues versioonis:

  • Uute tihendusmeetodite tugi, mis ei ole vaikimisi aktiveeritud, et sĂ€ilitada andmebaasifailide ĂŒhilduvus DuckDB varasemate versioonidega, on realiseeritud. Uue andmebaasifaili formaadi kasutamiseks on pakutud vĂ”imalust siduda andmebaas versiooninumbriga — faili avamisel parameetri „STORAGE_VERSION” abil on nĂŒĂŒd vĂ”imalik mÀÀrata minimaalne toetatav andmebaasiversioon (‘ATTACH ‘file.db’ (STORAGE_VERSION ‘v1.2.0’);’). Uue formaadi vana vastu konverteerimiseks saab kasutada SQL kĂ€sku COPY, nĂ€iteks: ATTACH ‘file1.db’; ATTACH ‘converted_file.db’ (STORAGE_VERSION ‘v1.0.0’); COPY FROM DATABASE file1 TO converted_file;
  • Lisatud on SQL-kĂ€sk „ALTER TABLE 
 ADD PRIMARY KEY”, et lisada olemasolevale tabelile peamine vĂ”ti.
  • Eemaldatud on piirang, mis ei lubanud uuesti lisada identifikaatoreid, millel oli unikaalsuse jĂ€lgimise indeks, kui need andmeid olid hetkel tehingust kustutatud. NĂ€iteks allolev SQL-kood ei tekita enam viga: CREATE TABLE students (id INTEGER PRIMARY KEY, name VARCHAR); INSERT INTO students VALUES (1, ‘John Doe’); BEGIN; DELETE FROM students WHERE id = 1; INSERT INTO students VALUES (1, ‘Jane Doe’);
  • CSV-failide toetamine Latin-1 ja UTF-16 kodeeringutes (varem toetas vaid UTF-8 kodeeringut) on lisatud. FROM read_csv(‘cities-latin-1.csv’, encoding = ‘latin-1’);
  • CSV-failides on lisatud toetus mitme baitide eraldajatele (kuni 4 baiti), mis vĂ”imaldab kasutada emoji'd veergude eraldajana. a🩆b hello🩆world FROM read_csv(‘example.dsv’, sep = ‘🩆’);
  • CSV-failide parsimiseks on vaikimisi lubatud range reĆŸiim ('strict_mode = true'), mis kontrollib, kas vorming vastab RFC 4180 spetsifikatsioonile. Range reĆŸiimis on lubatud kasutada vaid ĂŒht sĂŒmbolit ridade eraldamiseks, mis pĂ”hjustab vea, kui ridade eraldamiseks kasutatakse mitte ainult reavahetus sĂŒmbolit, vaid ka tagasiĂŒhenduse sĂŒmbolit (‘\r\n’).
  • CSV-parsijasse on rakendatud uus uue rea mÀÀramise algoritm, mis toetab operatsioonide paralleesimist. Uue algoritmi kasutamine on kiirendanud CSV parsimist umbes 15%.
  • CSV-failide ridade suuruse piirang on eemaldatud (varem ei tohtinud rida ĂŒletada 8 MB).
  • Parquet-formaadis andmete eksportimisel on rakendatud toetus hĂ€shtemarkide (sĂ”nastike) ja Bloom-filtril pĂ”hinevate indeksite jaoks. Rakendatud on DELTA_BINARY_PACKED tihendusmeetod, mis vĂ”imaldab oluliselt vĂ€hendada Parquet-failide suurust.
  • KĂ€skude rea liidesesse on lisatud turvareĆŸiim, mille aktiveerimiseks kasutatakse valikut ‘-safe’ vĂ”i kĂ€sku ‘.safe_mode’. Selles reĆŸiimis on lubatud juurdepÀÀs ainult algselt mÀÀratud andmebaasi failile, ja katse avada teisi faile toob kaasa vea.
  • KĂ€skude rea liidese automaatne tĂ€iendamine on paranenud. Automaatse tĂ€iendamise kood on muudetud PEG (Parsing Expression Grammar) kasutamiseks.
  • KĂ€skude rea liideses on suurte numbrite visualiseerimine, nĂ€iteks numbrit 100000000 kuvatakse tĂ€iendava mĂ€rkusega '(100 miljonit)'.
  • SQL-is on lisatud toetus sĂŒntaksile, kus lĂŒhendatud tabelite ja vĂ€ljendite nimed saab mÀÀrata enne vÀÀrtusi, millele nad viitavad (asemel, et kasutada sĂŒntaksit ‘vĂ€ljend AS nimetus’): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long_table_name, t2: short_s.tbl;
  • Selekti kĂ€su toetamine on realiseeritud „RENAME“ operatsiooni jaoks, et ĂŒmber nimetada veerge, mis kuvatakse vĂ€ljendi „*“ nĂ€itamisel: SELECT * RENAME (col1 AS new_col1) FROM integers;
  • Selekti kĂ€sus on lubatud kasutada operatsioone „LIKE“ ja „SIMILAR TO“ vĂ€ljundi kaudu „*“: SELECT * LIKE ‘val%’ FROM key_val;
  • Pseudojuhuslike arvude genereerimise kvaliteet on tĂ”usnud.
  • KĂŒsimuste optimeerijat on moderniseeritud. TPC-H SF100 testi lĂ€bimise tulemuslikkus on tĂ”usnud 13%.
  • Pakutakse uut C-laadset API-d tĂ€ienduste loomiseks, mida saab kasutada nĂ€iteks uute agregaat- vĂ”i tabelifunktsioonide loomiseks.
  • Lisatud tugi sĂŒsteemidele, kus on standardne C-biblioteek Musl.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster