Lançimi i DBMS DuckDB 1.2.0

Lëshohet versioni i DBMS DuckDB 1.2.0, i fokusuar në ekzekutimin e kërkesave analitike dhe konceptualisht i ngjashëm me SQLite. DuckDB bashkon veçoritë si kompaktësia, lidhja në formën e një biblioteke të integruar, ruajtja e databazës në një skedar të vetëm dhe ndërfaqja CLI, me mundësitë dhe optimizimet për ekzekutimin e kërkesave analitike që mbulojnë një pjesë të konsiderueshme të të dhënave të ruajtura, për shembull, duke kryer agregimin e të gjithë përmbajtjes së tabelave ose bashkimin e disa tabelave të mëdha. Kodi i projektit është shkruar në gjuhën C++ dhe shpërndahet nën licencën MIT.

DuckDB ofron njĂ« dialekt tĂ« zgjeruar tĂ« gjuhĂ«s SQL, i cili pĂ«rfshin mundĂ«si shtesĂ« pĂ«r pĂ«rpunimin e kĂ«rkesave shumĂ« komplekse dhe afatgjata. ËshtĂ« e mundur tĂ« pĂ«rdoren tipe tĂ« komplikuara (array, struktura, bashkime), si dhe tĂ« ekzekutohen nĂ«nkĂ«rkesa tĂ« rastĂ«sishme dhe tĂ« ngulitura. MbĂ«shtetet ekzekutimi paralel i kĂ«rkesave tĂ« shumta, ekzekutimi i kĂ«rkesave drejtpĂ«rdrejt nga skedarĂ«t nĂ« formatet CSV dhe Parquet. MbĂ«shtetja e importit nga DBMS PostgreSQL Ă«shtĂ« gjithashtu e disponueshme.

Projekti përdor një shell nga SQLite, parser nga PostgreSQL, komponentin Date Math nga MonetDB, implementimin e tij të funksioneve dritare (baze në algoritmin e Segment Tree Aggregation), një përpunues regex-i të bazuar në bibliotekën RE2, optimizatorë të veçantë pyetjesh, mekanizmin MVCC për menaxhimin e konkurencës (Kontrolli i Konkurrencës me Versione të Shumta), si dhe një motor të vectorizuar për ekzekutimin e pyetjeve të bazuar në algoritmin Hyper-Pipelining Query Execution, që lejon përpunimin e grupeve të mëdha të vlerave në një operacion të vetëm.

Në këtë version të ri:

  • ËshtĂ« realizuar mbĂ«shtetje pĂ«r metodat e reja tĂ« kompresimit, tĂ« cilat nuk janĂ« tĂ« aktivizuara si parazgjedhje pĂ«r tĂ« ruajtur kompatibilitetin e skedarĂ«ve tĂ« DB me versionet e mĂ«parshme tĂ« DuckDB. PĂ«r tĂ« pĂ«rdorur formatin e pĂ«rmirĂ«suar tĂ« skedarĂ«ve DB, Ă«shtĂ« ofruar mundĂ«sia pĂ«r tĂ« lidhur DB me numrin e versionit — kur hapni skedarin duke pĂ«rdorur parametrin "STORAGE_VERSION", tani mund tĂ« pĂ«rcaktoni versionin minimal tĂ« mbĂ«shtetur tĂ« DB ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');"). PĂ«r tĂ« konvertuar formatin e ri nĂ« atĂ« tĂ« vjetĂ«r, mund tĂ« pĂ«rdorni komandĂ«n SQL COPY, pĂ«r shembull: ATTACH 'file1.db'; ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0'); COPY FROM DATABASE file1 TO converted_file;
  • Shtohet mbĂ«shtetje pĂ«r komandĂ«n SQL "ALTER TABLE 
 ADD PRIMARY KEY" pĂ«r tĂ« shtuar njĂ« çelĂ«s primar nĂ« njĂ« tabelĂ« ekzistuese.
  • Eliminohet kufizimi qĂ« nuk lejonte rishqyrtimin e identifikuesve pĂ«r tĂ« cilĂ«t ka njĂ« indeks gjurmimi unik, nĂ«se kĂ«ta identifikues ishin fshirĂ« nĂ« transaksionin aktual. PĂ«r shembull, kodi SQL mĂ« poshtĂ« tani nuk sjell njĂ« gabim: 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’);
  • Shtohet mbĂ«shtetje pĂ«r ngarkimin e skedarĂ«ve CSV nĂ« kodimet Latin-1 dhe UTF-16 (mĂ« parĂ« mbĂ«shtetej vetĂ«m kodimi UTF-8). FROM read_csv(‘cities-latin-1.csv’, encoding = ‘latin-1’);
  • Shtohet mbĂ«shtetje pĂ«r pĂ«rdorimin e ndarĂ«sve shumĂ«-bajt nĂ« skedarĂ«t CSV (deri nĂ« 4 byte), qĂ« lejon specifikimin e emoji si ndarĂ«s kolumnash. a🩆b hello🩆world FROM read_csv(‘example.dsv’, sep = ‘🩆’);
  • Nga e dhĂ«nĂ« si standart, modaliteti i rreptĂ« i analizĂ«s sĂ« skedarĂ«ve CSV («strict_mode = true») Ă«shtĂ« aktiv, duke kontrolluar pĂ«rputhshmĂ«rinĂ« me specifikimin RFC 4180. NĂ« modalitetin e rreptĂ« lejohen vetĂ«m njĂ« simbol pĂ«r ndarjen e rreshtave, qĂ« do tĂ« shkaktojĂ« njĂ« gabim kur pĂ«rpiqeni tĂ« analizoni skedarĂ«, ku ndarja e rreshtave pĂ«rdor jo vetĂ«m simbolin e rikthimit tĂ« rreshtit, por edhe simbolin e rikthimit tĂ« kartecit («\r\n»).
  • NĂ« parserin CSV Ă«shtĂ« pĂ«rdorur njĂ« algoritĂ«m i ri pĂ«r pĂ«rcaktimin e rreshtit tĂ« ri, duke mbĂ«shtetur ndarjen e operacioneve. PĂ«rdorimi i algoritmit tĂ« ri ka pĂ«rshpejtuar analizimin e CSV-tĂ« rreth 15%.
  • ËshtĂ« hequr kufizimi mbi madhĂ«sinĂ« e rreshtit nĂ« skedarĂ«t CSV (mĂ« parĂ« rreshti nuk duhej tĂ« kalonte 8 MB).
  • Kur eksportohet tĂ« dhĂ«nat nĂ« formatin Parquet Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r hash-e (fjalorĂ«) dhe indekse tĂ« bazuara nĂ« filtrin Bloom. ËshtĂ« realizuar njĂ« metodĂ« kompresimi DELTA_BINARY_PACKED, qĂ« lejon tĂ« reduktohet ndjeshĂ«m madhĂ«sia e skedarĂ«ve Parquet.
  • NĂ« ndĂ«rfaqen e linjĂ«s sĂ« komandave Ă«shtĂ« shtuar njĂ« modalitet i sigurt, i aktivizuar me opsionin «-safe» ose komandĂ«n «.safe_mode». NĂ« kĂ«tĂ« modalitet, lejohet vetĂ«m qasja nĂ« skedarin origjinal tĂ« DB, dhe njĂ« pĂ«rpjekje pĂ«r tĂ« hapur skedarĂ« tĂ« tjerĂ« do tĂ« rezultojĂ« nĂ« njĂ« gabim.
  • NĂ« ndĂ«rfaqen e linjĂ«s sĂ« komandave, Ă«shtĂ« pĂ«rmirĂ«suar plotĂ«simi automatik i hyrjes. Kodi pĂ«r plotĂ«simin automatik Ă«shtĂ« kthyer nĂ« pĂ«rdorimin e PEG (Gramatika e Shprehjeve tĂ« Parse-imit).
  • Kur ekzekutoni komandat nĂ« ndĂ«rfaqen e linjĂ«s sĂ« komandave, Ă«shtĂ« realizuar njĂ« paraqitje e qartĂ« e numrave tĂ« mĂ«dhenj, pĂ«r shembull, kur shfaqet numri 100000000, do tĂ« shtohet gjithashtu «(100 milionĂ«)».
  • NĂ« SQL Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r njĂ« sintaksĂ« ku emrat e shkurtuar tĂ« tabelave dhe shprehjeve mund tĂ« tregohen para vlerave nĂ« tĂ« cilat ato i referohen (nĂ« vend qĂ« tĂ« pĂ«rdorin sintaksĂ«n «shprehje AS emĂ«r»): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long_table_name, t2: short_s.tbl;
  • NĂ« komandĂ«n «SELECT» Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r operacionin «RENAME» pĂ«r rinaming-un e fushave qĂ« paraqiten kur thuhet shprehja «*»: SELECT * RENAME (col1 AS new_col1) FROM integers;
  • NĂ« ekipin "SELECT" lejohet pĂ«rdorimi i operacioneve "LIKE" dhe "SIMILAR TO" gjatĂ« daljes pĂ«rmes "*" : SELECT * LIKE 'val%' FROM key_val;
  • CilĂ«sia e gjenerimit tĂ« numrave pseudo-rasor Ă«shtĂ« pĂ«rmirĂ«suar.
  • Optimizuesi i kĂ«rkesave Ă«shtĂ« modernizuar. Performanca gjatĂ« testit TPC-H SF100 Ă«shtĂ« rritur me 13%.
  • NjĂ« API e re e ngjashme me C Ă«shtĂ« propozuar pĂ«r zhvillimin e shtesave, e cila mund tĂ« pĂ«rdoret, pĂ«r shembull, pĂ«r krijimin e funksioneve tĂ« reja agreguese ose tabulare.
  • MbĂ«shtetje Ă«shtĂ« shtuar pĂ«r sistemet me bibliotekĂ«n standarde C Musl.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster