DuckDB 1.2.0 udgivelse

DuckDB 1.2.0, et DBMS fokuseret på analytiske forespørgsler og konceptuelt ligner SQLite, er blevet frigivet. DuckDB kombinerer SQLites kompakte størrelse, pluggbare bibliotek, enkeltfils databaselagring og CLI-grænseflade med muligheder og optimeringer til at køre analytiske forespørgsler, der spænder over en stor del af de lagrede data, såsom aggregering af hele indholdet af tabeller eller sammenlægning af flere store tabeller. Projektkoden er skrevet i C++ og distribueres under MIT-licensen.

DuckDB giver en udvidet dialekt af SQL-sproget, der inkluderer yderligere muligheder for at håndtere meget komplekse og langvarige forespørgsler. Det er muligt at bruge komplekse typer (arrays, strukturer, fagforeninger) samt at udføre vilkårlige og indlejrede korrelerede underforespørgsler. Samtidig udførelse af flere forespørgsler, udførelse af forespørgsler direkte fra CSV- og Parket-filer er understøttet. Support til import fra PostgreSQL DBMS er tilgængelig.

Projektet bruger en shell fra SQLite, en parser fra PostgreSQL, en Date Math-komponent fra MonetDB, dets egen implementering af vinduesfunktioner (baseret på Segment Tree Aggregation-algoritmen), en regulært udtryksprocessor baseret på RE2-biblioteket, dens egen forespørgselsoptimering, en MVCC-mekanisme til styring af den simultane kørsel af opgaver (Multry-udførelse) (Multry-udførelse). ionmotor baseret på Hyper-Pipelining Query Execution-algoritmen, som gør det muligt at behandle store sæt værdier i én operation.

I den nye version:

  • Implementeret understøttelse af nye komprimeringsmetoder, der ikke er aktiveret som standard for at opretholde kompatibilitet af DB-filer med tidligere versioner af DuckDB. For at bruge det forbedrede DB-filformat er det nu muligt at binde DB'en til versionsnummeret - når du åbner en fil med parameteren "STORAGE_VERSION", kan du nu angive den mindste understøttede DB-version ("ATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');"). For at konvertere det nye format til det gamle, kan du bruge kommandoen SQL COPY, for eksempel: ATTACH 'fil1.db'; ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0'); KOPIER FRA DATABASE fil1 TIL konverteret_fil;
  • Tilføjet understøttelse af SQL-kommandoen "ALTER TABLE ... ADD PRIMARY KEY" for at tilføje en primær nøgle til en eksisterende tabel.
  • Fjernede en begrænsning, der forhindrede gentilføjelse af identifikatorer, der havde et unikhedssporingsindeks, hvis disse identifikatorer blev slettet i den aktuelle transaktion. For eksempel producerer følgende SQL-kode ikke længere en fejl: CREATE TABLE-elever (id INTEGER PRIMARY KEY, navn VARCHAR); INDSÆT I elevernes VÆRDIER (1, 'John Doe'); BEGYNDE; SLET FRA elever HVOR id = 1; INDSÆT I elevernes VÆRDIER (1, 'Jane Doe');
  • Tilføjet understøttelse af indlæsning af CSV-filer i Latin-1 og UTF-16-kodning (tidligere var kun UTF-8-kodning understøttet). FROM read_csv('cities-latin-1.csv', encoding = 'latin-1');
  • Tilføjet understøttelse af brug af multi-byte-separatorer (op til 4 bytes) i CSV-filer, så du kan angive emoji som en kolonneseparator. a🦆b hej🦆world FROM read_csv('example.dsv', sep = '🦆');
  • Som standard er streng tilstand aktiveret til at analysere CSV-filer ("strict_mode = true"), som kontrollerer, at formateringen overholder RFC 4180-specifikationen. I streng tilstand har kun ét tegn lov til at adskille linjer, hvilket vil resultere i en fejl, når du forsøger at parse filer, der ikke kun bruger linjeskift-tegnet, men også vognreturtegnet til at adskille ("\r\n").
  • CSV-parseren bruger en ny algoritme til registrering af nye linjer, der understøtter parallelisering af operationer. Ved at bruge den nye algoritme accelererede CSV-parsing med cirka 15 %.
  • Fjernede begrænsningen på linjestørrelsen i CSV-filer (tidligere måtte linjen ikke overstige 8 MB).
  • Ved eksport af data i Parquet-format implementeres understøttelse af hashes (ordbøger) og indekser baseret på Bloom-filteret. DELTA_BINARY_PACKED komprimeringsmetoden er blevet implementeret, hvilket gør det muligt at reducere størrelsen på Parket-filer markant.
  • En sikker tilstand er blevet tilføjet til kommandolinjegrænsefladen, aktiveret ved hjælp af "-safe"-indstillingen eller ".safe_mode"-kommandoen. I denne tilstand tillades kun adgang til den oprindeligt specificerede databasefil, og et forsøg på at åbne andre filer vil resultere i en fejl.
  • Kommandolinjegrænsefladen har forbedret input autofuldførelse. Autofuldførelseskoden er blevet konverteret til at bruge PEG (Parsing Expression Grammar).
  • Ved udførelse af kommandoer i kommandolinjegrænsefladen er der implementeret en visuel visning af store tal, for eksempel ved visning af tallet 100000000 vil "(100 millioner)" blive tilføjet yderligere.
  • SQL understøtter nu en syntaks, hvor forkortede tabel- og udtryksnavne kan angives før de værdier, de peger på (i stedet for at bruge syntaksen "ekspression AS-navn"): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long_tbl_name: shorts_long_tbl_name;
  • "SELECT"-kommandoen understøtter nu "RENAME"-operationen til at omdøbe felter, når "*"-udtrykket er specificeret: SELECT * RENAME (col1 AS new_col1) FROM heltal;
  • "SELECT"-kommandoen tillader brugen af ​​"LIKE" og "SIMILAR TO"-operationer, når der udsendes via "*": SELECT * LIKE 'val%' FROM key_val;
  • Forbedret kvalitet af generering af pseudo-tilfældige tal.
  • Forespørgselsoptimeringsværktøjet er blevet moderniseret. Ydeevnen i TPC-H SF100-testen er steget med 13 %.
  • Der foreslås en ny C-lignende API til udvikling af tilføjelser, som for eksempel kan bruges til at skabe nye aggregat- eller tabelfunktioner.
  • Tilføjet understøttelse af systemer med standard C-biblioteket Musl.

Kilde: opennet.ru

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