Utgivelse av DBMS DuckDB 1.2.0

Utgitt er versjon 1.2.0 av databasesystemet DuckDB, som er designet for å utføre analyser og har konsepter som ligner på SQLite. DuckDB kombinerer egenskapene til SQLite, som kompakthet, tilkobling som en innebygd bibliotek, lagring av databasen i én fil, og en CLI-grensesnitt, med muligheter og optimaliseringer for å utføre spørringer på analyser, som dekker en betydelig del av de lagrede dataene, for eksempel ved å akkumulerer alt innholdet i tabeller eller slå sammen flere store tabeller. Prosjektkoden er skrevet i C++ og distribueres under MIT-lisensen.

DuckDB tilbyr en utvidet dialekt av SQL, som inkluderer ekstra funksjoner for å håndtere svært komplekse og langvarige spørringer. Det er mulig å bruke avanserte datatyper (array, strukturer, unioner), samt å utføre vilkårlige og innkapslede korrelerte under-spørringer. Samtidig kjøring av flere spørringer støttes, sammen med direkte spørring fra filer i CSV- og Parquet-formater. Støtte for import fra PostgreSQL-databaser er også tilgjengelig.

Prosjektet bruker et skall fra SQLite, parser fra PostgreSQL, komponenten Date Math fra MonetDB, sin egen implementering av vindusfunksjoner (basert på Segment Tree Aggregation-algoritmen), en regulær uttrykkshåndterer basert på RE2-biblioteket, egne spørringsoptimalisatorer, MVCC-mekanisme for håndtering av samtidige oppgaver (Multi-Version Concurrency Control), samt en vektorisert spørringsmotor basert på Hyper-Pipelining Query Execution-algoritmen, som gjør det mulig å behandle store sett med verdier i én operasjon.

I den nye versjonen:

  • Støtte for nye komprimeringsmetoder er implementert, som ikke er aktivert som standard for å bevare kompatibiliteten med databasedokumenter fra tidligere versjoner av DuckDB. For å bruke det forbedrede databasedokumentformatet er det nå mulig å knytte databasen til et versjonsnummer — når filen åpnes med parameteren «STORAGE_VERSION» kan den minimal støttede databasen versjonen spesifiseres («ATTACH ‘file.db’ (STORAGE_VERSION ‘v1.2.0’);»). For å konvertere fra det nye formatet til det gamle kan SQL-kommandoen COPY brukes, for eksempel: ATTACH ‘file1.db’; ATTACH ‘converted_file.db’ (STORAGE_VERSION ‘v1.0.0’); COPY FROM DATABASE file1 TO converted_file;
  • Støtte for SQL-kommandoen «ALTER TABLE … ADD PRIMARY KEY» er lagt til for å legge til en primærnøkkel til en eksisterende tabell.
  • Begrensningen som hindret å legge til identifikatorer på nytt, der det finnes en unikhetsindeks, hvis dataene var slettet i den nåværende transaksjonen, er fjernet. For eksempel vil følgende SQL-kode nå ikke føre til en feil: 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’);
  • Støtte for å laste opp CSV-filer i kodene Latin-1 og UTF-16 er lagt til (tidligere støttet kun UTF-8). FROM read_csv(‘cities-latin-1.csv’, encoding = ‘latin-1’);
  • Støtte for bruk av flermengde skilletegn i CSV-filer (opptil 4 byte) er lagt til, noe som gjør det mulig å bruke emojier som kolonneseparator. a🦆b hello🦆world FROM read_csv(‘example.dsv’, sep = ‘🦆’);
  • Som standard er den strenge mode for parsing af CSV-filer aktiveret ("strict_mode = true"), som kontrollerer overensstemmelsen med formatet i RFC 4180. I den strenge tilstand er det kun tilladt at bruge ét tegn til at adskille linjer, hvilket vil føre til en fejl ved forsøg på at parse filer, hvor linjer ikke kun adskilles af linjetilbageføring, men også med vognretur-tegnet (" ").
  • Parseren for CSV anvender en ny algoritme til bestemmelse af nye linjer, som understøtter parallelisering af operationer. Anvendelsen af den nye algoritme har øget hastigheden af CSV-parsingen med cirka 15%.
  • Begrænsningen på størrelsen af en linje i CSV-filer er fjernet (tidligere måtte en linje ikke overstige 8 MB).
  • Når der eksporteres data i Parquet-format, er der implementeret understøttelse af hashes (ordbøger) og indekser baseret på Bloom-filter. Der er implementeret en komprimeringsmetode, DELTA_BINARY_PACKED, der væsentligt reducerer størrelsen af Parquet-filer.
  • Der er tilføjet en sikker tilstand i kommandolinjegrænsefladen, som aktiveres ved hjælp af indstillingen "-safe" eller kommandoen ".safe_mode". I denne tilstand er adgangen kun tilladt til den oprindeligt angivne databasefil, og forsøg på at åbne andre filer vil resultere i en fejlmeddelelse.
  • Autocompletion af input i kommandolinjegrænsefladen er forbedret. Koden til autocompletion er blevet omdannet til at bruge PEG (Parsing Expression Grammar).
  • Ved udførelse af kommandoer i kommandolinjegrænsefladen er der implementeret en visuel repræsentation af store tal, for eksempel, når tallet 100000000 vises, tilføjes "(100 millioner)".
  • I SQL er der tilføjet støtte til en syntaks, hvor forkortede betegnelser for tabeller og udtryk kan angives før de værdier, de peger på (i stedet for at bruge syntaksen "udtryk AS betegnelse"): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long_table_name, t2: short_s.tbl;
  • I kommandoen "SELECT" er der implementeret støtte til operationen "RENAME" til at omdøbe felter, der vises ved angivelse af udtrykket "*": SELECT * RENAME (col1 AS new_col1) FROM integers;
  • I kommandoen "SELECT" er det tilladt at bruge operationerne "LIKE" og "SIMILAR TO", når der vises via "*": SELECT * LIKE 'val%' FROM key_val;
  • Kvaliteten af genereringen af pseudotilfældige tal er blevet forbedret.
  • Optimeringsværktøjet til forespørgsler er blevet moderniseret. Ydelsen ved TPC-H SF100 testen er steget med 13%.
  • Det er foreslått en ny C-liknende API for utvikling av tillegg, som kan brukes for eksempel for å lage nye aggregat- eller tabellfunksjoner.
  • Støtte for systemer med standard C-biblioteket Musl er lagt til.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster