Frigivelse af DuckDB 0.10.0, en SQLite-variant til analytiske forespørgsler

Udgivelsen af ​​DuckDB 0.10.0 DBMS er præsenteret, der kombinerer sådanne egenskaber ved SQLite som kompakthed, evnen til at oprette forbindelse i form af et indlejret bibliotek, lagring af databasen i én fil og en praktisk CLI-grænseflade med værktøjer og optimeringer til eksekvering analytiske forespørgsler, der dækker en væsentlig del af de lagrede data, f.eks. som samler hele indholdet af tabeller eller fusionerer flere store tabeller. Projektkoden distribueres under MIT-licensen. Udviklingen er stadig på stadiet med at danne eksperimentelle udgivelser, da lagerformatet endnu ikke er stabiliseret og skifter fra version til version.

DuckDB leverer en avanceret SQL-dialekt, der inkluderer yderligere muligheder for at håndtere meget komplekse og tidskrævende forespørgsler. Brugen af ​​komplekse typer (arrays, strukturer, fagforeninger) og evnen til at udføre vilkårlige og indlejrede korrelerende underforespørgsler understøttes. Det understøtter at køre flere forespørgsler samtidigt, køre forespørgsler direkte fra CSV- og Parket-filer. Det er muligt at importere fra PostgreSQL DBMS.

Udover shell-koden fra SQLite bruger projektet en parser fra PostgreSQL i et separat bibliotek, Date Math-komponenten fra MonetDB, sin egen implementering af vinduesfunktioner (baseret på Segment Tree Aggregation-algoritmen), en regulært udtryksprocessor baseret på RE2-biblioteket, dets egen forespørgselsoptimering og en MVCC-kontrolmekanisme samtidig udførelse af opgaver (Multi-Version Concurrency Control), samt en vektoriseret forespørgselsudførelsesmotor baseret på Hyper-Pipelining Query Execution-algoritmen, som tillader store sæt værdier skal behandles på én gang i én operation.

Blandt ændringerne i den nye udgivelse:

  • Ydeevnen for parsing af data i CSV-format er blevet væsentligt forbedret. For eksempel blev læsning af en CSV-fil med 11 millioner rækker i den nye version reduceret fra 2.6 sekunder. op til 1.15 sekunder, og udførelse af "SELECT COUNT(*)"-operationen oven på en CSV-fil fra 1.8 sekunder. op til 0.3 sek.
  • Tilføjet understøttelse af arrays med fast størrelse, som ligner lister, der indeholder et fast antal elementer ("CREATE TABLE vectors(v DOUBLE[3]);").
  • Tilføjet understøttelse for tilslutning til MySQL, PostgreSQL og SQLite DBMS, som giver dig mulighed for at indlæse data fra eksternt DBMS til DuckDB og flytte det mellem forskellige systemer. Eksterne databaser tilgås ved hjælp af standardtabeller. ATTACH 'postgres:dbname=postgresscanner' AS postgres; VÆLG titel, udgivelsesår, længde FRA postgres.film LIMIT 5;
  • Tilføjet understøttelse af udtrykket "COMMENT ON" for at gemme en kommentar om et objekt i databasen.
  • Tilføjet understøttelse af udtrykket "COPY FROM DATABASE" til kopiering af alt indhold fra en database til en anden.
  • Tilføjet understøttelse af "ALL" modifikator i EXCEPT og INTERSECT udtryk.
  • Implementeret type »

    Kilde: opennet.ru

Tilføj en kommentar