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

Udgivelsen af DBMS DuckDB 0.10.0 præsenterer en kombination af egenskaber fra SQLite, såsom kompakthed, mulighed for at tilslutte som en indlejret biblioteksfil, lagring af databasen i én fil og en brugervenlig CLI-grænseflade, med værktøjer og optimeringer til udførelse af analytiske forespørgsler, der dækker en betydelig del af de gemte data, for eksempel ved at aggregere alt indholdet i tabeller eller ved at slå flere store tabeller sammen. Projektets kode distribueres under MIT-licensen. Udviklingen er stadig i en eksperimentel fase, da lagerformatet endnu ikke er stabiliseret og ændrer sig fra version til version.

I DuckDB tilbydes en udvidet SQL-dialekt, der inkluderer ekstra funktioner til håndtering af meget komplekse og langvarige forespørgsler. Der understøttes brugen af komplekse typer (arrays, strukturer, unions) og mulighed for udførelse af vilkårlige og nestede korrelerede underforespørgsler. Der kan køres flere forespørgsler samtidig, og forespørgsler kan udføres direkte fra filer i CSV- og Parquet-format. Der er også mulighed for import fra PostgreSQL-databaser.

Udover SQLite-shell-koden anvender projektet en separat bibliotek-parser fra PostgreSQL, komponenten Date Math fra MonetDB, sin egen implementering af vinduesfunktioner (basi i Segment Tree Aggregation-algoritmen), en regulær udtryksbehandler baseret på biblioteket RE2, en egen forespørgselsoptimerer, MVCC-mekanismen til kontrol af samtidige opgaver (Multi-Version Concurrency Control), samt en vektoriseret forespørgselsudførelsesmotor baseret på Hyper-Pipelining Query Execution-algoritmen, der muliggør samtidig behandling af store værdimængder i én operation.

Blandt ændringerne i den nye udgave:

  • Ydelsen til parsing af data i CSV-format er i betydelig grad forbedret. For eksempel er læsningen af en CSV-fil med 11 millioner linjer i den nye version reduceret fra 2,6 sekunder til 1,15 sekunder, og udførelsen af "SELECT COUNT(*)" på en CSV-fil er reduceret fra 1,8 sekunder til 0,3 sekunder.
  • Understøttelse af arrays med fast størrelse er tilføjet, som ligner lister, der indeholder et fast antal elementer ("CREATE TABLE vectors(v DOUBLE[3]);").
  • Der er tilføjet støtte til forbindelser til DBMS MySQL, PostgreSQL og SQLite, hvilket gør det muligt at indlæse data fra eksterne DBMS til DuckDB og flytte dem mellem forskellige systemer. Adgang til eksterne databaser sker ved hjælp af typiske tabeller. ATTACH 'postgres:dbname=postgresscanner' AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
  • Der er tilføjet støtte til udtrykket 'COMMENT ON' for at gemme en kommentar om objektet i databasen.
  • Der er tilføjet støtte til udtrykket 'COPY FROM DATABASE' til at kopiere alt indhold fra én database til en anden.
  • Der er tilføjet støtte til modifikatoren 'ALL' i udtrykkene EXCEPT og INTERSECT.
  • Typen er implementeret »

    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