Paglabas ng DuckDB 0.10.0, isang variant ng SQLite para sa mga analytical na query

Ang paglabas ng DuckDB 0.10.0 DBMS ay ipinakita, pinagsasama ang mga katangian ng SQLite bilang compactness, ang kakayahang kumonekta sa anyo ng isang naka-embed na library, pag-iimbak ng database sa isang file at isang maginhawang interface ng CLI, na may mga tool at pag-optimize para sa pagpapatupad. mga analytical na query na sumasaklaw sa isang mahalagang bahagi ng nakaimbak na data, halimbawa na pinagsama-sama ang buong nilalaman ng mga talahanayan o pinagsama ang ilang malalaking talahanayan. Ang code ng proyekto ay ipinamahagi sa ilalim ng lisensya ng MIT. Ang pag-unlad ay nasa yugto pa rin ng pagbuo ng mga pang-eksperimentong paglabas, dahil ang format ng imbakan ay hindi pa nagpapatatag at nagbabago mula sa bersyon patungo sa bersyon.

Nagbibigay ang DuckDB ng advanced na SQL dialect na may kasamang mga karagdagang kakayahan para sa paghawak ng napakakumplikado at nakakaubos ng oras na mga query. Sinusuportahan ang paggamit ng mga kumplikadong uri (mga array, istruktura, unyon) at ang kakayahang magsagawa ng arbitrary at nested correlated na mga subquery. Sinusuportahan nito ang pagpapatakbo ng maraming query nang sabay-sabay, direktang pagpapatakbo ng mga query mula sa CSV at Parquet file. Posibleng mag-import mula sa PostgreSQL DBMS.

Bilang karagdagan sa shell code mula sa SQLite, ang proyekto ay gumagamit ng parser mula sa PostgreSQL sa isang hiwalay na library, ang Date Math component mula sa MonetDB, ang sarili nitong pagpapatupad ng mga function ng window (batay sa Segment Tree Aggregation algorithm), isang regular na expression processor batay sa ang RE2 library, sarili nitong query optimizer, at MVCC control mechanism na sabay-sabay na pagpapatupad ng mga gawain (Multi-Version Concurrency Control), pati na rin ang vectorized na query execution engine batay sa Hyper-Pipelining Query Execution algorithm, na nagbibigay-daan sa malalaking hanay ng mga value upang maiproseso nang sabay-sabay sa isang operasyon.

Kabilang sa mga pagbabago sa bagong release:

  • Ang pagganap ng pag-parse ng data sa CSV na format ay lubos na napabuti. Halimbawa, ang pagbabasa ng CSV file na may 11 milyong row sa bagong bersyon ay binawasan mula sa 2.6 segundo. hanggang 1.15 segundo, at ginagawa ang operasyong β€œSELECT COUNT(*)” sa ibabaw ng isang CSV file mula sa 1.8 segundo. hanggang 0.3 seg.
  • Nagdagdag ng suporta para sa mga nakapirming laki ng array, na kahawig ng mga listahang naglalaman ng nakapirming bilang ng mga elemento ("GUMAWA ng mga vector ng TABLE(v DOUBLE[3]);").
  • Nagdagdag ng suporta para sa pagkonekta sa MySQL, PostgreSQL at SQLite DBMS, na nagbibigay-daan sa iyong mag-load ng data mula sa panlabas na DBMS papunta sa DuckDB at ilipat ito sa pagitan ng iba't ibang mga system. Ang mga panlabas na database ay ina-access gamit ang karaniwang mga talahanayan. ATTACH 'postgres:dbname=postgresscanner' BILANG postgres; PUMILI ng pamagat, release_year, haba MULA sa postgres.film LIMIT 5;
  • Nagdagdag ng suporta para sa expression na "COMMENT ON" para sa pag-save ng komento tungkol sa isang bagay sa database.
  • Nagdagdag ng suporta para sa expression na "KOPYA MULA SA DATABASE" para sa pagkopya ng lahat ng nilalaman mula sa isang database patungo sa isa pa.
  • Nagdagdag ng suporta para sa "ALL" modifier sa EXCEPT at INTERSECT na mga expression.
  • Uri ng ipinatupad Β»

    Pinagmulan: opennet.ru

Magdagdag ng komento