Udgivelsen af databasen DuckDB 1.2.0

Udgaven er udgivet SDB DuckDB 1.2.0, der er rettet mod udførelse af analytiske forespørgsler og som konceptuelt minder om SQLite. DuckDB kombinerer egenskaberne ved SQLite, såsom kompakthed, indlejret bibliotekstilkobling, opbevaring af databaser i én fil og en CLI-grænseflade, med funktioner og optimeringer til udførelse af analytiske forespørgsler, der dækker en betydelig del af de gemte data, f.eks. ved at aggregere al indholdet af tabeller eller sammenflette flere store tabeller. Projektkoden er skrevet i C++ og distribueres under MIT-licensen.

DuckDB tilbyder en udvidet SQL-dialekt, der inkluderer ekstra funktioner til behandling af meget komplekse og langvarige forespørgsler. Det er muligt at bruge komplekse typer (arrays, strukturer, unioner), samt udføre vilkårlige og indlejrede korrelerede underforespørgsler. Samtidig udførelse af flere forespørgsler er understøttet, ligesom udførelse af forespørgsler direkte fra filer i formaterne CSV og Parquet. Der er også støtte til import fra SDB PostgreSQL.

Projektet bruger en skal fra SQLite, parser fra PostgreSQL, Date Math-komponent fra MonetDB, sin egen implementering af vinduesfunktioner (baseret på Segment Tree Aggregation-algoritmen), en regex-behandler baseret på RE2-biblioteket, sit eget forespørgselsoptimeringssystem, og MVCC-mekanismen til håndtering af samtidige opgaver (Multi-Version Concurrency Control), samt en vektoriseret forespørgselsudførelse motor baseret på Hyper-Pipelining Query Execution-algoritmen, der muliggør behandling af store værdsæt i én operation.

I den nye version:

  • Implementeringen af nye komprimeringsmetoder er blevet tilføjet, som ikke er inkluderet som standard for at bevare kompatibilitet med databaser fra tidligere versioner af DuckDB. For at bruge det forbedrede databaseformat tilbydes muligheden for at binde databasen til et versionsnummer — når en fil åbnes med parameteren "STORAGE_VERSION", kan den mindste understøttede databaseversion nu specificeres ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');"). For at konvertere det nye format til det gamle kan SQL-kommandoen COPY anvendes, f.eks.: ATTACH 'file1.db'; ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0'); COPY FROM DATABASE file1 TO converted_file;
  • SQL-kommandoen "ALTER TABLE … ADD PRIMARY KEY" tilføjet for at tilføje en primærnøgle til en eksisterende tabel.
  • Fjernede begrænsningen, der forhindrede genindsættelse af ID'er, for hvilke der er en unik sporingsindeks, hvis disse ID'er blev slettet i den aktuelle transaktion. For eksempel vil nedenstående SQL-kode nu ikke føre til fejl: 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');
  • Tilføjet support for uploading af CSV-filer i kodningerne Latin-1 og UTF-16 (tidligere blev kun UTF-8 understøttet). FROM read_csv('cities-latin-1.csv', encoding = 'latin-1');
  • Tilføjet support for brug af multibyte afgrænsere (op til 4 byte) i CSV-filer, hvilket gør det muligt at angive emojis som afgrænser til kolonner. a🦆b hello🦆world FROM read_csv('example.dsv', sep = '🦆');
  • Strengt tilstand for parsing CSV-filer er som standard aktiveret ('strict_mode = true'), hvilket kontrollerer overensstemmelse med formatet i RFC 4180-specifikationen. I strengt tilstand er kun én karakter tilladt til at adskille linjer, hvilket vil føre til en fejl, når man forsøger at analysere filer, hvor adskillelsen ikke kun er linjeskift, men også vognretur ('\r\n').
  • En ny algoritme til at bestemme nye linjer er implementeret i CSV-parseren, som understøtter parallelisering af operationer. Brug af den nye algoritme har øget hastigheden på CSV-parsing med cirka 15%.
  • Begrænsningen på strørrelse af linjer i CSV-filer er fjernet (tidligere måtte en linje ikke overstige 8 MB).
  • Når der eksporteres data i Parquet-format, er der nu support for hashes (ordbøger) og indekser baseret på Bloom-filteret. Der er implementeret en komprimeringsmetode, DELTA_BINARY_PACKED, der signifikant reducerer størrelsen af Parquet-filer.
  • Der er tilføjet en sikker tilstand i kommandolinjegrænsefladen, der aktiveres ved hjælp af '-safe' mulighed eller kommandoen '.safe_mode'. I denne tilstand er adgangen kun tilladt til den oprindeligt angivne databasedfil, og forsøg på at åbne andre filer vil resultere i en fejl.
  • Autocompletion input i kommandolinjegrænsefladen er forbedret. Koden for autocompletion er blevet omdannet til at bruge PEG (Parsing Expression Grammar).
  • Ved udførelse af kommandoer i kommandolinjegrænsefladen implementeres en visuel visning af store tal, f.eks. vil når tallet 100000000 vises, blive tilføjet '(100 millioner)'.
  • Der SQL-syntaksen er blevet tilføjet support for, at forkortede tabel- og expressionsnavne kan angives før de værdier, de henviser til (i stedet for at bruge syntaksen "expression AS navn"): 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 "SELECT"-kommandoen er der tilføjet support for operationen "RENAME" til at omdøbe felter, der vises, når man angiver udtrykket "*": SELECT * RENAME (col1 AS new_col1) FROM integers;
  • I "SELECT"-kommandoen er det nu tilladt at bruge operationerne "LIKE" og "SIMILAR TO" med en output gennem "*": SELECT * LIKE ‘val%’ FROM key_val;
  • Kvaliteten af genereringen af pseudorandomtal er forbedret.
  • Optimeringsmotoren er blevet moderniseret. Ydelsen under TPC-H SF100-testen er steget med 13%.
  • En ny C-lignende API til udvikling af plugins er blevet foreslået, som kan bruges til eksempelvis at skabe nye aggregat- eller tabel-funktioner.
  • Support er blevet tilføjet for systemer med standard C-biblioteket Musl.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster