Efter sex Ärs utveckling har version 1.0 av databashanteraren DuckDB lanserats, som positioneras som ett alternativ till SQLite för analytiska frÄgor. DuckDB kombinerar funktioner frÄn SQLite, sÄsom kompakthet, möjlighet att integreras som ett inbÀddat bibliotek, lagring av databaser i en fil och en anvÀndarvÀnlig CLI, med verktyg och optimeringar för att utföra analytiska frÄgor som omfattar en betydande del av den lagrade datan, till exempel genom att aggregera hela tabellers innehÄll eller slÄ samman flera stora tabeller. Projektets kod Àr skriven i C++ och distribueras under MIT-licensen.
Version 1.0 markeras som den första stabila utgÄvan av projektet, dÀr fokus har lagts pÄ att öka stabiliteten snarare Àn att utöka funktionalitet. I den nya versionen har formatet för datalagring faststÀllts, vilket sÀkerstÀller bakÄtkompatibilitet frÄn och med den senaste utgÄvan. I kommande versioner avser utvecklarna att vara mer försiktiga med att lÀgga till nya funktioner och att ta hÀnsyn till att bevara kompatibiliteten mellan versioner, liksom att stabilisera SQL-dialekten och C API. Om det i framtiden behövs Àndringar i SQL-semantiken kommer utvecklarna i förvÀg att publicera en varning om kommande förÀndringar och ge alternativ för att bevara befintlig kods funktionalitet.
DuckDB stöder en utvidgad dialekt av SQL som inkluderar ytterligare funktioner för att hantera mycket komplexa och lÄngvariga frÄgor. Till exempel möjliggör det anvÀndningen av komplexa typer (arrayer, strukturer, föreningar) samt att köra godtyckliga och inbÀddade korrelerande underfrÄgor. Samtidig körning av flera frÄgor stöds, tillsammans med möjligheten att köra frÄgor direkt frÄn filer i CSV- och Parquet-format. Stöd för import frÄn databasystemet PostgreSQL finns ocksÄ.
Förutom skalprogrammet frÄn SQLite anvÀnds en parser frÄn PostgreSQL som har flyttats till ett eget bibliotek, komponenten Date Math frÄn MonetDB, en egen implementering av fönsterfunktioner (baserat pÄ algoritmen Segment Tree Aggregation), en regeluttrycksbehandlare baserad pÄ biblioteket RE2, egna frÄgeoptimerare, MVCC-mekanismen för hantering av samtidig uppgiftsutförande (Multi-Version Concurrency Control), samt en vektoriserad frÄgaexecutionsmotor baserad pÄ algoritmen Hyper-Pipelining Query Execution, som möjliggör bearbetning av stora datamÀngder i en enda operation.
KĂ€lla: opennet.ru
