Die erste stabile Version der Datenbank DuckDB

Nach sechs Jahren Entwicklung wurde die Version 1.0 von DuckDB vorgestellt, einer Datenbank, die als SQLite-Alternative für analytische Anfragen positioniert ist. DuckDB kombiniert Eigenschaften von SQLite, wie Kompaktheit, die Möglichkeit, als eingebettete Bibliothek verwendet zu werden, die Speicherung der Datenbank in einer einzigen Datei und eine benutzerfreundliche CLI-Oberfläche, mit Funktionen und Optimierungen für die Durchführung analytischer Abfragen, die einen signifikanten Teil der gespeicherten Daten abdecken, beispielsweise durch die Aggregation des gesamten Inhalts von Tabellen oder das Zusammenführen mehrerer großer Tabellen. Der Code des Projekts wurde in C++ geschrieben und wird unter der MIT-Lizenz verbreitet.

Version 1.0 wurde als erste stabile Veröffentlichung des Projekts gekennzeichnet, wobei der Schwerpunkt auf der Stabilität und nicht auf der Funktionserweiterung lag. In der neuen Version wurde auch das Format der Datenspeicherung festgelegt, für das seit der letzten Ausgabe die Rückwärtskompatibilität gewährleistet ist. In zukünftigen Versionen haben sich die Entwickler vorgenommen, beim Hinzufügen neuer Funktionen vorsichtiger vorzugehen und die Kompatibilität zwischen den Versionen zu wahren, sowie die Stabilität des SQL-Dialekts und der C-API zu verbessern. Sollte in Zukunft eine Änderung der SQL-Semantik notwendig sein, werden die Entwickler im Voraus eine Warnung über bevorstehende Änderungen veröffentlichen und Umgehungsmöglichkeiten bereitstellen, um die Funktionsfähigkeit des bestehenden Codes zu gewährleisten.

DuckDB unterstützt einen erweiterten SQL-Dialekt, der zusätzliche Funktionen zur Verarbeitung sehr komplexer und zeitaufwändiger Abfragen umfasst. Beispielsweise können komplexe Typen (Arrays, Strukturen, Vereinigungen) verwendet werden, sowie beliebige und verschachtelte korrelierte Unterabfragen ausgeführt werden. Die gleichzeitige Ausführung mehrerer Anfragen, das Ausführen von Anfragen direkt aus Dateien im CSV- und Parquet-Format wird unterstützt. Ein Import aus der Datenbank PostgreSQL ist ebenfalls möglich.

Neben dem Shell-Code von SQLite verwendet das Projekt einen ausgelagerten PostgreSQL-Parser, das Date Math-Komponenten von MonetDB, eine eigene Implementierung von Fensterfunktionen (basierend auf dem Segment Tree Aggregation-Algorithmus), einen regulären Ausdrucks-Processor auf Basis der RE2-Bibliothek, eigene Optimierer für Abfragen, ein MVCC-Verfahren zur Verwaltung der gleichzeitigen Ausführung von Aufgaben (Multi-Version Concurrency Control) sowie eine vektorisierte Abfrageausführungs-Engine, die auf dem Hyper-Pipelining Query Execution-Algorithmus basiert und es ermöglicht, große Datenmengen in einem einzigen Vorgang zu verarbeiten.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster