DuckDB 0.6.0 Verëffentlecht, SQLite Optioun fir analytesch Ufroen

D'Verëffentlechung vum DuckDB 0.6.0 DBMS ass verfügbar, kombinéiert sou Eegeschafte vu SQLite wéi Kompaktheet, d'Fäegkeet fir a Form vun enger embedded Bibliothéik ze verbannen, d'Datebank an enger Datei ze späicheren an eng praktesch CLI Interface, mat Tools an Optimisatiounen fir auszeféieren. analytesch Ufroen déi e wesentlechen Deel vun de gespäicherten Donnéeën ofdecken, zum Beispill déi de ganzen Inhalt vun den Dëscher aggregéiert oder e puer grouss Dëscher fusionéieren. De Projet Code gëtt ënner der MIT Lizenz verdeelt. D'Entwécklung ass nach ëmmer an der Bühn fir experimentell Verëffentlechungen ze bilden, well d'Späicherformat nach net stabiliséiert gouf a sech vu Versioun zu Versioun ännert.

DuckDB bitt en fortgeschratt SQL Dialekt deen zousätzlech Fäegkeeten enthält fir ganz komplex an Zäitopwendeg Ufroen ze handhaben. D'Benotzung vu komplexe Typen (Arrays, Strukturen, Gewerkschaften) an d'Fäegkeet fir arbiträr an nestéiert korreléierend Ënnerufroen auszeféieren ginn ënnerstëtzt. Et ënnerstëtzt verschidde Ufroen gläichzäiteg ze lafen, Ufroen direkt aus CSV a Parquet Dateien ze lafen. Et ass méiglech aus dem PostgreSQL DBMS z'importéieren.

Zousätzlech zum Shellcode vu SQLite benotzt de Projet e Parser vu PostgreSQL an enger separater Bibliothéik, den Date Math Komponent vu MonetDB, seng eege Implementatioun vu Fënsterfunktiounen (baséiert op dem Segment Tree Aggregation Algorithmus), e reguläre Ausdrockprozessor baséiert op d'RE2 Bibliothéik, säin eegene Query Optimizer, an e MVCC Kontrollmechanismus gläichzäiteg Ausféierung vun Aufgaben (Multi-Version Concurrency Control), souwéi e vektoriséierte Query Ausféierungsmotor baséiert op dem Hyper-Pipelining Query Execution Algorithmus, wat grouss Sätz vu Wäerter erlaabt op eemol an enger Operatioun veraarbecht ze ginn.

Ënnert den Ännerungen an der neier Verëffentlechung:

  • D'Aarbecht ass weidergaang fir de Späicherformat ze verbesseren. En optimisteschen Disk Schreifmodus gouf implementéiert, an deem wann Dir e grousse Satz vun Daten an enger Transaktioun lued, d'Donnéeën kompriméiert a geschriwwe ginn an eng Datei aus der Datebank am Streaming Modus, ouni ze waarden op d'Transaktioun mat dem COMMIT Kommando bestätegt ze ginn. . Wann e COMMIT Kommando kritt ass, sinn d'Donnéeën schonn op Disk geschriwwe ginn, a wann e ROLLBACK ausgefouert gëtt, ginn se verworf. Virdrun goufen d'Donnéeën am Ufank komplett an d'Erënnerung gespäichert, a wann se engagéiert goufen, goufen se op Disk gespäichert.
  • Zousätzlech Ënnerstëtzung fir parallel Luede vun Daten an getrennten Dëscher, wat Iech erlaabt d'Laaschtgeschwindegkeet op Multi-Core Systemer wesentlech ze erhéijen. Zum Beispill, an der viregter Verëffentlechung huet d'Laascht vun enger Datebank mat 150 Millioune Reihen op enger 10-Kär CPU 91 Sekonnen gedauert, awer an der neier Versioun ass dës Operatioun an 17 Sekonnen ofgeschloss. Et ginn zwee parallel Luede Modi - mat Erhaalung vun der Uerdnung vun records an ouni Erhaalung vun Uerdnung.
  • Fir Datekompressioun gëtt den FSST (Fast Static Symbol Table) Algorithmus benotzt, deen Iech erlaabt Daten a Strings mat engem gemeinsame Wierderbuch vun typesche Matcher ze packen. D'Benotzung vum neie Algorithmus huet et méiglech gemaach d'Gréisst vun der Testdatenbank vu 761MB op 251MB ze reduzéieren.
  • Chimp a Patas Algorithmen goufen proposéiert fir Floating Point Zuelen (DOUBLE a FLOAT) ze kompriméieren. Am Verglach mam fréiere Gorillas Algorithmus bitt Chimp méi héich Kompressiounsniveauen a méi séier Dekompressioun. De Patas Algorithmus bleift hannert dem Chimp am Kompressiounsverhältnis, awer ass vill méi séier an der Dekompressiounsgeschwindegkeet, wat bal net anescht ass wéi onkompriméiert Daten ze liesen.
  • Eng experimentell Fäegkeet bäigefüügt fir Daten aus CSV Dateien a multiple parallele Streamen ze lueden (SET experimental_parallel_csv=true), wat d'Zäit wesentlech reduzéiert fir grouss CSV Dateien ze lueden. Zum Beispill, wann dës Optioun aktivéiert war, gouf d'Downloadzäit fir eng 720 MB CSV Datei vun 3.5 op 0.6 Sekonnen reduzéiert.
  • D'Méiglechkeet vun parallel Ausféierung vun Index Kreatioun a Gestioun Operatiounen gouf ëmgesat. Zum Beispill gouf d'CREATE INDEX Operatioun op enger Kolonn mat 16 Millioune Rekorder vun 5.92 op 1.38 Sekonnen reduzéiert.
  • Aktivéiert Paralleliséierung vun Aggregatiounsoperatioune bei Ufroen, déi den Ausdrock "COUNT(DISTINCT col)" enthalen.
  • SQL huet Ënnerstëtzung fir den UNION Typ bäigefüügt, wat et erlaabt datt verschidde Typen un engem Element gebonnen kënne ginn (zum Beispill "UNION (num INT, Feeler VARCHAR))").
  • SQL bitt d'Fäegkeet Ufroen ze bilden déi mam Wuert "FROM" ufänken anstatt "SELECT". An dësem Fall gëtt ugeholl datt d'Ufro mat "SELECT *" ufänkt.
  • SQL huet Ënnerstëtzung fir de COLUMNS Ausdrock bäigefüügt, wat Iech erlaabt eng Operatioun op verschidde Kolonnen ze maachen ouni den Ausdrock ze duplizéieren. Zum Beispill, "SELECT MIN(COLUMNS(*)) from obs;" wäert d'MIN Funktioun fir all Kolonn an der obs Tabelle ausféieren, an "SELECT COLUMNS('val[0-9]+') aus obs;" fir Saile mat engem Numm besteet aus "val" an Zuelen.
  • Zousätzlech Ënnerstëtzung fir Operatiounen op Lëschten, zum Beispill, "SELECT [x + 1 fir x an [1, 2, 3]] AS l;".
  • Erënnerung Konsum gouf optimiséiert. Par défaut benotzt d'Linux Plattform d'Jemalloc Bibliothéik fir Erënnerungsmanagement. Däitlech verbessert Leeschtung vun Hash Fusioun Operatiounen wann Erënnerung limitéiert ass.
  • ".mode Duckbox" Ausgangsmodus op d'Command Line Interface bäigefüügt, deen d'Mëttsäulen ewechgeet andeems d'Breet vun der Terminalfenster berücksichtegt gëtt (gëeegent fir séier visuell d'Resultater vun Ufroen mat enger grousser Zuel vu Kolonnen ze bewäerten, wéi "SELECT * FROM tbl", déi am normale Modus iwwer e puer Zeilen verdeelt sinn). Mat dem ".maxrows X" Parameter kënnt Dir zousätzlech d'Zuel vun ugewisen Zeile limitéieren.
  • De CLI liwwert d'Autokomplementéierung vum Input ënner Beuechtung vum Kontext (Input vu Schlësselwieder, Tabellennimm, Funktiounen, Spaltennimm an Dateinumm ass ofgeschloss).
  • De CLI huet e Query Fortschrëtt Indikator als Standard aktivéiert.

Source: opennet.ru

Setzt e Commentaire