DuckDB 1.2.0 -julkaisu

DuckDB 1.2.0, analyyttisiin kyselyihin keskittyvä ja käsitteellisesti SQLitea muistuttava tietokannanhallintajärjestelmä, on julkaistu. DuckDB yhdistää SQLiten kompaktin koon, kytkettävän kirjaston, yhden tiedoston tietokantatallennustilan ja CLI-rajapinnan ominaisuuksiin ja optimointiin analyyttisten kyselyiden suorittamiseen, jotka kattavat suuren osan tallennetusta tiedosta, kuten taulukoiden koko sisällön yhdistäminen tai useiden suurten taulukoiden yhdistäminen. Projektikoodi on kirjoitettu C++-kielellä ja sitä jaetaan MIT-lisenssillä.

DuckDB tarjoaa laajennetun SQL-kielen murteen, joka sisältää lisäominaisuuksia erittäin monimutkaisten ja pitkäkestoisten kyselyiden käsittelyyn. On mahdollista käyttää monimutkaisia ​​tyyppejä (taulukoita, rakenteita, liittoja) sekä suorittaa mielivaltaisia ​​ja sisäkkäisiä korreloituja alikyselyjä. Useiden kyselyjen samanaikainen suorittaminen, kyselyiden suorittaminen suoraan CSV- ja Parquet-tiedostoista on tuettu. Tuonti PostgreSQL DBMS:stä on saatavilla.

Projektissa käytetään SQLiten komentotulkkia, PostgreSQL:n jäsennintä, MonetDB:n Date Math -komponenttia, omaa ikkunatoimintojen toteutusta (perustuu Segment Tree Aggregation -algoritmiin), RE2-kirjastoon perustuvaa säännöllisten lausekkeiden prosessoria, omaa kyselyn optimoijaa, MVCC-mekanismia tehtävien samanaikaisen suorituksen hallintaan, ohjausmoottoriin perustuvaa Concurry the executor -ohjelmaa per-pipelining Query Execution -algoritmi, jonka avulla voidaan käsitellä suuria arvojoukkoja yhdessä operaatiossa.

Uudessa versiossa:

  • Toteutettu tuki uusille pakkausmenetelmille, jotka eivät ole oletuksena käytössä, jotta DB-tiedostot ovat yhteensopivia DuckDB:n aiempien versioiden kanssa. Parannetun DB-tiedostomuodon käyttämiseksi on nyt mahdollista sitoa tietokanta versionumeroon - kun avaat tiedoston parametrilla "STORAGE_VERSION", voit nyt määrittää tuetun DB-version vähimmäismäärän ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');"). Muuntaaksesi uuden muodon vanhaksi, voit käyttää SQL COPY -komentoa, esimerkiksi: ATTACH 'tiedosto1.db'; LIITTÄ 'muunnettu_tiedosto.db' (STORAGE_VERSION 'v1.0.0'); KOPIOINTI TIEDOSTOSTA tiedosto1 muutettuun_tiedostoon;
  • Lisätty tuki SQL-komennolle "ALTER TABLE … ADD PRIMARY KEY" primääriavaimen lisäämiseksi olemassa olevaan taulukkoon.
  • Poistettu rajoitus, joka esti lisäämästä uudelleen tunnisteita, joilla oli yksilöllisyyden seurantaindeksi, jos kyseiset tunnisteet poistettiin nykyisessä tapahtumassa. Esimerkiksi seuraava SQL-koodi ei enää tuota virhettä: CREATE TABLE opiskelijat (ID INTEGER PRIMARY KEY, nimi VARCHAR); INSERT INTO opiskelijoiden ARVOT (1, 'John Doe'); ALKAA; POISTA opiskelijoista WHERE id = 1; INSERT INTO opiskelijoiden ARVOT (1, 'Jane Doe');
  • Lisätty tuki CSV-tiedostojen lataamiseen Latin-1- ja UTF-16-koodauksilla (aiemmin vain UTF-8-koodausta tuettiin). FROM read_csv('city-latin-1.csv', koodaus = 'latin-1');
  • Lisätty tuki monitavuisten erottimien (enintään 4 tavua) käyttämiselle CSV-tiedostoissa, jolloin voit määrittää emojit sarakeerottimeksi. a🦆b hello🦆world FROM read_csv('example.dsv', sep = '🦆');
  • Oletuksena CSV-tiedostojen jäsentämiseen on käytössä tiukka tila ("tiukka_tila = true"), joka tarkistaa, että muotoilu noudattaa RFC 4180 -spesifikaatiota. Tiukassa tilassa vain yksi merkki saa erottaa rivejä, mikä johtaa virheeseen, kun yritetään jäsentää tiedostoja, jotka käyttävät paitsi rivinsyöttömerkkiä, myös rivinvaihtomerkkiä ("\r").
  • CSV-jäsentäjä käyttää uutta rivinvaihdon tunnistusalgoritmia, joka tukee toimintojen rinnakkaisua. Uuden algoritmin käyttö nopeutti CSV-jäsennystä noin 15 %.
  • Poistettu CSV-tiedostojen rivikoon rajoitus (aiemmin rivi ei saa ylittää 8 Mt).
  • Kun tietoja viedään Parquet-muodossa, tuki Bloom-suodattimeen perustuville tiivisteille (sanakirjoille) ja indekseille on otettu käyttöön. DELTA_BINARY_PACKED-pakkausmenetelmä on otettu käyttöön, mikä mahdollistaa merkittävästi pienentää Parquet-tiedostojen kokoa.
  • Komentorivikäyttöliittymään on lisätty suojattu tila, joka aktivoidaan "-safe"-vaihtoehdolla tai ".safe_mode"-komennolla. Tässä tilassa pääsy on sallittu vain alun perin määritettyyn tietokantatiedostoon, ja yritys avata muita tiedostoja johtaa virheeseen.
  • Komentorivikäyttöliittymässä on parannettu syötteiden automaattista täydennystä. Automaattisen täydennyksen koodi on muutettu käyttämään PEG:tä (Parsing Expression Grammar).
  • Kun komentoja suoritetaan komentorivikäyttöliittymässä, on toteutettu suurten lukujen visuaalinen näyttö, esimerkiksi numeroa 100000000 näytettäessä lisätään "(100 miljoonaa)" lisäksi.
  • SQL tukee nyt syntaksia, jossa lyhennetyt taulukoiden ja lausekkeiden nimet voidaan määrittää ennen arvoja, joihin ne osoittavat ("lausekkeen AS-nimi" -syntaksin käyttämisen sijaan): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.tbl_name;some_long_table.some
  • "SELECT"-komento tukee nyt "RENAME"-toimintoa kenttien uudelleennimeämisessä, kun "*"-lauseke on määritetty: SELECT * RENAME (col1 AS new_col1) FROM kokonaisluvuista;
  • "SELECT"-komento sallii "LIKE"- ja "SIMILAR TO" -toimintojen käytön tulostettaessa "*"-komentoa käyttäen: SELECT * LIKE 'val%' FROM key_val;
  • Parempi pseudosatunnaislukujen luomisen laatu.
  • Kyselyn optimoija on modernisoitu. Suorituskyky TPC-H SF100 -testissä on parantunut 13 %.
  • Lisäosien kehittämiseen ehdotetaan uutta C-tyyppistä API:ta, jota voidaan käyttää esimerkiksi uusien aggregaatti- tai taulukkofunktioiden luomiseen.
  • Lisätty tuki järjestelmille, joissa on vakio C-kirjasto Musl.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster