Veröffentlichung von DuckDB 0.10.0, einer SQLite-Variante für analytische Abfragen

Es wird die Veröffentlichung des DBMS DuckDB 0.10.0 vorgestellt, das Eigenschaften von SQLite wie Kompaktheit, die Möglichkeit zur Verbindung in Form einer eingebetteten Bibliothek, die Speicherung der Datenbank in einer Datei und eine praktische CLI-Schnittstelle mit Tools und Optimierungen für die Ausführung kombiniert analytische Abfragen, die einen erheblichen Teil der gespeicherten Daten abdecken, beispielsweise die Gesamtinhalte von Tabellen aggregieren oder mehrere große Tabellen zusammenführen. Der Projektcode wird unter der MIT-Lizenz vertrieben. Die Entwicklung befindet sich noch im Stadium der Bildung experimenteller Releases, da das Speicherformat noch nicht stabilisiert ist und sich von Version zu Version ändert.

DuckDB bietet einen erweiterten SQL-Dialekt, der zusätzliche Funktionen für die Bearbeitung sehr komplexer und zeitaufwändiger Abfragen umfasst. Die Verwendung komplexer Typen (Arrays, Strukturen, Unions) und die Möglichkeit, beliebige und verschachtelte korrelierende Unterabfragen auszuführen, werden unterstützt. Es unterstützt die gleichzeitige Ausführung mehrerer Abfragen und die direkte Ausführung von Abfragen aus CSV- und Parquet-Dateien. Es ist möglich, aus dem PostgreSQL-DBMS zu importieren.

Zusätzlich zum Shell-Code von SQLite verwendet das Projekt einen Parser von PostgreSQL in einer separaten Bibliothek, die Date Math-Komponente von MonetDB, eine eigene Implementierung von Fensterfunktionen (basierend auf dem Segment Tree Aggregation-Algorithmus) und einen Prozessor für reguläre Ausdrücke, der darauf basiert die RE2-Bibliothek, ein eigener Abfrageoptimierer und ein MVCC-Kontrollmechanismus für die gleichzeitige Ausführung von Aufgaben (Multi-Version Concurrency Control) sowie eine vektorisierte Abfrageausführungs-Engine basierend auf dem Hyper-Pipelining Query Execution-Algorithmus, der große Wertemengen ermöglicht ​​auf einmal in einem Arbeitsgang verarbeitet werden.

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

  • Die Leistung beim Parsen von Daten im CSV-Format wurde deutlich verbessert. Beispielsweise wurde das Lesen einer CSV-Datei mit 11 Millionen Zeilen in der neuen Version von 2.6 Sekunden auf 1.15 Sekunden reduziert. bis zu 1.8 Sekunden und die Ausführung des Vorgangs „SELECT COUNT(*)“ über einer CSV-Datei ab 0.3 Sekunden. bis zu XNUMX Sek.
  • Unterstützung für Arrays mit fester Größe hinzugefügt, die Listen ähneln, die eine feste Anzahl von Elementen enthalten („CREATE TABLE vectors(v DOUBLE[3]);“).
  • Unterstützung für die Verbindung zu MySQL-, PostgreSQL- und SQLite-DBMS hinzugefügt, wodurch Sie Daten von externen DBMS in DuckDB laden und zwischen verschiedenen Systemen verschieben können. Der Zugriff auf externe Datenbanken erfolgt über Standardtabellen. ATTACH 'postgres:dbname=postgresscanner' AS postgres; SELECT Titel, Erscheinungsjahr, Länge FROM postgres.film LIMIT 5;
  • Unterstützung für den Ausdruck „COMMENT ON“ zum Speichern eines Kommentars zu einem Objekt in der Datenbank hinzugefügt.
  • Unterstützung für den Ausdruck „COPY FROM DATABASE“ zum Kopieren aller Inhalte von einer Datenbank in eine andere hinzugefügt.
  • Unterstützung für den Modifikator „ALL“ in EXCEPT- und INTERSECT-Ausdrücken hinzugefügt.
  • Implementierter Typ »

    Source: opennet.ru

Kommentar hinzufügen