Izdanje DuckDB 1.2.0

DuckDB 1.2.0, DBMS fokusiran na analitičke upite i konceptualno sličan SQLite-u, ​​je objavljen. DuckDB kombinuje SQLite-ovu kompaktnu veličinu, biblioteku koja se može priključiti, skladištenje baze podataka sa jednom datotekom i CLI interfejs sa mogućnostima i optimizacijama za pokretanje analitičkih upita koji obuhvataju veliki deo pohranjenih podataka, kao što je agregiranje celokupnog sadržaja tabela ili spajanje nekoliko velikih tabela. Kod projekta je napisan u C++ i distribuira se pod MIT licencom.

DuckDB pruža prošireni dijalekt SQL jezika koji uključuje dodatne mogućnosti za rukovanje vrlo složenim i dugotrajnim upitima. Moguće je koristiti složene tipove (nizovi, strukture, unije), kao i izvršavanje proizvoljnih i ugniježđenih koreliranih podupita. Podržano je istovremeno izvršavanje više upita, izvršavanje upita direktno iz CSV i Parket datoteka. Dostupna je podrška za uvoz iz PostgreSQL DBMS-a.

Projekat koristi ljusku iz SQLite-a, parser iz PostgreSQL-a, komponentu Date Math iz MonetDB-a, vlastitu implementaciju prozorskih funkcija (zasnovanu na algoritmu agregacije stabla segmenta), procesor regularnih izraza baziran na RE2 biblioteci, vlastiti optimizator upita, MVCC mehanizam za upravljanje simultanim simultanim izvođenjem zadataka i optimizacijom zadatka tion engine baziran na algoritmu Hyper-Pipelining Query Execution, koji omogućava obradu velikih skupova vrijednosti u jednoj operaciji.

U novoj verziji:

  • Implementirana podrška za nove metode kompresije koje nisu omogućene po defaultu za održavanje kompatibilnosti DB datoteka s prethodnim verzijama DuckDB-a. Da biste koristili poboljšani format DB datoteke, sada je moguće vezati DB za broj verzije - kada otvarate datoteku pomoću parametra "STORAGE_VERSION", sada možete odrediti minimalnu podržanu verziju DB-a ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');"). Za konvertovanje novog formata u stari, možete koristiti SQL COPY naredbu, na primjer: ATTACH 'file1.db'; ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0'); KOPIRAJ IZ BAZE PODATAKA file1 U konvertovanu_datoteku;
  • Dodata podrška za SQL naredbu "ALTER TABLE ... ADD PRIMARY KEY" za dodavanje primarnog ključa postojećoj tablici.
  • Uklonjeno je ograničenje koje je sprečavalo ponovno dodavanje identifikatora koji su imali indeks praćenja jedinstvenosti ako su ti identifikatori izbrisani u trenutnoj transakciji. Na primjer, sljedeći SQL kod više ne proizvodi grešku: CREATE TABLE učenici (id INTEGER PRIMARY KEY, ime VARCHAR); UMETNI U VRIJEDNOSTI učenika (1, 'John Doe'); BEGIN; IZBRIŠI IZ učenika GDJE id = 1; UMETNI U VRIJEDNOSTI učenika (1, 'Jane Doe');
  • Dodata podrška za učitavanje CSV datoteka u kodovima Latin-1 i UTF-16 (ranije je podržavano samo UTF-8 kodiranje). FROM read_csv('cities-latin-1.csv', encoding = 'latin-1');
  • Dodata podrška za korištenje višebajtnih separatora (do 4 bajta) u CSV datotekama, što vam omogućava da navedete emoji kao separator stupaca. a🦆b hello🦆world FROM read_csv('example.dsv', sep = '🦆');
  • Podrazumevano, strogi način rada je omogućen za raščlanjivanje CSV datoteka ("strict_mode = true"), koji provjerava da li je formatiranje u skladu sa specifikacijom RFC 4180. U strogom načinu rada, samo jedan znak može odvojiti redove, što će rezultirati greškom pri pokušaju raščlanjivanja datoteka koje koriste ne samo znak za unos reda, već i znak za vraćanje reda ("\r\n".
  • CSV parser koristi novi algoritam za otkrivanje novog reda koji podržava paralelizaciju operacija. Korištenje novog algoritma ubrzalo je CSV raščlanjivanje za približno 15%.
  • Uklonjeno je ograničenje veličine linije u CSV datotekama (prethodno linija ne bi trebala prelaziti 8 MB).
  • Prilikom izvoza podataka u Parket formatu implementirana je podrška za hešove (rječnice) i indekse bazirane na Bloom filteru. Implementirana je metoda kompresije DELTA_BINARY_PACKED koja omogućava značajno smanjenje veličine Parket fajlova.
  • Dodan je siguran način rada sučelju komandne linije, aktiviran pomoću opcije "-safe" ili naredbe ".safe_mode". U ovom načinu rada, pristup je dozvoljen samo inicijalno navedenoj datoteci baze podataka, a pokušaj otvaranja drugih datoteka rezultirat će greškom.
  • Interfejs komandne linije je poboljšao automatsko dovršavanje unosa. Kod za automatsko dovršavanje je pretvoren da koristi PEG (Parsing Expression Grammar).
  • Prilikom izvršavanja komandi u interfejsu komandne linije implementiran je vizuelni prikaz velikih brojeva, na primer, kada se prikazuje broj 100000000, biće dodatno dodat „(100 miliona)“.
  • SQL sada podržava sintaksu u kojoj se skraćena imena tablica i izraza mogu specificirati prije vrijednosti na koje ukazuju (umjesto korištenja sintakse "ime izraza AS"): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long.tbl_name;
  • Komanda "SELECT" sada podržava operaciju "RENAME" za preimenovanje izlaznih polja kada je naveden izraz "*": SELECT * RENAME (col1 AS new_col1) FROM integers;
  • Naredba "SELECT" dozvoljava korištenje operacija "LIKE" i "SIMILAR TO" pri izlazu preko "*": SELECT * LIKE 'val%' FROM key_val;
  • Poboljšan kvalitet generisanja pseudoslučajnih brojeva.
  • Optimizator upita je moderniziran. Performanse na TPC-H SF100 testu su povećane za 13%.
  • Predložen je novi API sličan C-u za razvoj dodataka, koji se može koristiti, na primjer, za kreiranje novih agregatnih ili tabličnih funkcija.
  • Dodata podrška za sisteme sa standardnom C bibliotekom Musl.

izvor: opennet.ru

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster