Version 0.10.0 von DuckDB, einer SQLite-Alternative für analytische Abfragen

Die Veröffentlichung der Datenbank-Managementsystem DuckDB 0.10.0 wurde vorgestellt. Sie 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 zur Ausführung analytischer Abfragen, die einen signifikanten Teil der gespeicherten Daten abdecken. Dazu zählen unter anderem die Aggregation des gesamten Inhalts von Tabellen oder das Zusammenführen mehrerer großer Tabellen. Der Code des Projekts wird unter der MIT-Lizenz veröffentlicht. Die Entwicklung befindet sich weiterhin in der Phase der experimentellen Veröffentlichungen, da das Speicherformat noch nicht stabilisiert ist und sich von Version zu Version ändert.

DuckDB bietet einen erweiterten SQL-Dialekt mit zusätzlichen Möglichkeiten zur Verarbeitung sehr komplexer und lang laufender Abfragen. Es werden komplexe Typen (Arrays, Strukturen, Vereinigungen) und die Ausführung beliebiger sowie geschachtelter korrelierender Unterabfragen unterstützt. Mehrere Abfragen können gleichzeitig ausgeführt werden, und Abfragen können direkt aus CSV- und Parquet-Dateien ausgeführt werden. Zudem besteht die Möglichkeit, Daten aus PostgreSQL-Datenbanken zu importieren.

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.

Zu den Änderungen in der neuen Version gehören:

  • Die Leistung beim Parsen von Daten im CSV-Format wurde erheblich verbessert. So hat sich beispielsweise die Lesezeit eines CSV-Datei mit 11 Millionen Zeilen in der neuen Version von 2,6 Sekunden auf 1,15 Sekunden verkürzt, und die Ausführung der Operation „SELECT COUNT(*)“ auf einer CSV-Datei von 1,8 Sekunden auf 0,3 Sekunden.
  • Die Unterstützung für Arrays fester Größe wurde hinzugefügt, die Listen ähneln, die eine feste Anzahl von Elementen enthalten („CREATE TABLE vectors(v DOUBLE[3]);“).
  • Die Unterstützung für die Verbindung zu den Datenbanken MySQL, PostgreSQL und SQLite wurde hinzugefügt, was das Laden von Daten aus externen DBs in DuckDB und das Verschieben zwischen verschiedenen Systemen ermöglicht. Der Zugriff auf externe DBs erfolgt unter Verwendung von Typ-Tabellen. ATTACH ‘postgres:dbname=postgresscanner’ AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
  • Die Unterstützung für den Ausdruck „COMMENT ON“ wurde hinzugefügt, um Komplikationen über Objekte in der DB zu speichern.
  • Die Unterstützung für den Ausdruck „COPY FROM DATABASE“ wurde hinzugefügt, um den gesamten Inhalt von einer DB in eine andere zu kopieren.
  • Die Unterstützung des Modifikators „ALL“ in den Ausdrücken EXCEPT und INTERSECT wurde umgesetzt.
  • Der Typ wurde implementiert »

    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