Выпуск DuckDB 0.10.0, варыянта SQLite для аналітычных запытаў

Прадстаўлены выпуск СКБД DuckDB 0.10.0, якая спалучае такія ўласцівасці SQLite, як кампактнасць, магчымасць падлучэння ў форме ўбудаванай бібліятэкі, захоўванне БД у адным файле і зручны CLI-інтэрфейс, са сродкамі і аптымізацыямі для выканання аналітычных запытаў, якія ахопліваюць значную частку захоўваемых дадзеных, напрыклад , якія выконваюць агрэгавання за ўсё змесціва табліц або зліццё некалькіх вялікіх табліц. Код праекту распаўсюджваецца пад ліцэнзіяй MIT. Распрацоўка пакуль знаходзіцца на стадыі фармавання эксперыментальных выпускаў, бо фармат сховішчы пакуль не стабілізаваны і змяняецца ад версіі да версіі.

У DuckDB падаецца пашыраны дыялект мовы SQL, улучальны дадатковыя магчымасці для апрацоўкі вельмі складаных і доўга выкананых запытаў. Падтрымліваецца выкарыстанне складаных тыпаў (масівы, структуры, аб'яднанні) і магчымасць выканання адвольных і ўкладзеных карэлюючых подзапросов. Падтрымліваецца адначасовае выкананне некалькіх запытаў, выкананне запытаў напрамую з файлаў у фармаце CSV і Parquet. Маецца магчымасць імпарту з СКБД PostgreSQL.

Апроч кода абалонкі з SQLite праектам выкарыстоўваецца вынесены ў асобную бібліятэку парсер з PostgreSQL, кампанент Date Math з MonetDB, свая рэалізацыя аконных функцый (на базе алгарытму Segment Tree Aggregation), апрацоўшчык рэгулярных выразаў на аснове бібліятэкі RE2, уласныя аптымізатар запытаў, MVCC-механізм кіравання адначасовым выкананнем заданняў (Multi-Version Concurrency Control), а таксама вектарызаваны рухавічок выканання запытаў на базе алгарытму Hyper-Pipelining Query Execution, які дазваляе ў адной аперацыі зараз апрацоўваць вялікія наборы значэнняў.

Сярод змен у новым выпуску:

  • Значна павялічана прадукцыйнасць разбору дадзеных у фармаце CSV. Напрыклад, чытанне CSV-файла з 11 млн радкоў у новай версіі скарацілася з 2.6/1.15 сек. да 1.8 сек., а выкананне аперацыі "SELECT COUNT(*)" па-над CSV-файла з 0.3 сек. да XNUMX сек.
  • Дададзена падтрымка масіваў фіксаванага памеру, якія нагадваюць спісы, утрымоўвальныя фіксаваны лік элементаў («CREATE TABLE vectors(v DOUBLE[3]);»).
  • Дададзена падтрымка падлучэння да СКБД MySQL, PostgreSQL і SQLite, што дазваляе загружаць у DuckDB дадзеныя са знешніх СКБД і перамяшчаць іх паміж рознымі сістэмамі. Зварот да вонкавых БД ажыццяўляецца з выкарыстаннем тыпавых табліц. ATTACH 'postgres:dbname=postgresscanner' AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
  • Дададзена падтрымка выраза «COMMENT ON» для захавання каментара аб аб'екце ў БД.
  • Дададзена падтрымка выраза "COPY FROM DATABASE" для капіявання ўсяго змесціва з адной БД у іншую.
  • Дададзена падтрымка мадыфікатара "ALL" у выразах EXCEPT і INTERSECT.
  • Рэалізаваны тып »

    Крыніца: opennet.ru

Дадаць каментар