ДуцкДБ 0.6.0 Објављен, СКЛите опција за аналитичке упите

Доступно је издање ДуцкДБ 0.6.0 ДБМС, комбинујући својства СКЛите-а као што су компактност, могућност повезивања у облику уграђене библиотеке, складиштење базе података у једној датотеци и погодан ЦЛИ интерфејс, са алатима и оптимизацијама за извршавање аналитички упити који покривају значајан део ускладиштених података, на пример који обједињују цео садржај табела или спајају неколико великих табела. Шифра пројекта се дистрибуира под лиценцом МИТ. Развој је још увек у фази формирања експерименталних издања, пошто формат складиштења још није стабилизован и мења се од верзије до верзије.

ДуцкДБ пружа напредни СКЛ дијалект који укључује додатне могућности за руковање веома сложеним и дуготрајним упитима. Подржана је употреба сложених типова (низови, структуре, уније) и могућност извршавања произвољних и угнежђених корелирајућих потупита. Подржава истовремено покретање више упита, покретање упита директно из ЦСВ и Паркет датотека. Могућ је увоз из ПостгреСКЛ ДБМС.

Поред схелл кода из СКЛите-а, пројекат користи парсер из ПостгреСКЛ-а у засебној библиотеци, компоненту Дате Матх из МонетДБ-а, сопствену имплементацију прозорских функција (засновану на алгоритму Сегмент Трее Аггрегатион), процесор регуларних израза заснован на РЕ2 библиотеку, сопствени оптимизатор упита и МВЦЦ контролни механизам за истовремено извршавање задатака (Мулти-Версион Цонцурренци Цонтрол), као и векторизовани механизам за извршавање упита заснован на алгоритму Хипер-Пипелининг Куери Екецутион, који омогућава велике скупове вредности да се обрађују одједном у једној операцији.

Међу променама у новом издању:

  • Настављен је рад на побољшању формата складиштења. Имплементиран је оптимистичан режим писања диска, у којем се приликом учитавања великог скупа података у једној трансакцији, подаци компримују и уписују у датотеку из базе података у режиму стримовања, без чекања да се трансакција потврди командом ЦОММИТ. . Када се прими команда ЦОММИТ, подаци су већ уписани на диск, а када се изврши РОЛЛБАЦК, они се одбацују. Раније су подаци у почетку били у потпуности сачувани у меморији, а када су урезани, сачувани су на диску.
  • Додата подршка за паралелно учитавање података у засебне табеле, што вам омогућава да значајно повећате брзину учитавања на системима са више језгара. На пример, у претходном издању, учитавање базе података са 150 милиона редова на ЦПУ са 10 језгара трајало је 91 секунду, али у новој верзији ова операција се завршава за 17 секунди. Постоје два режима паралелног учитавања - са очувањем редоследа записа и без очувања реда.
  • За компресију података користи се алгоритам ФССТ (Фаст Статиц Симбол Табле), који вам омогућава да спакујете податке унутар низова користећи заједнички речник типичних подударања. Употреба новог алгоритма омогућила је смањење величине тестне базе података са 761МБ на 251МБ.
  • Предложени су алгоритми Шимпанзе и Патас за компримовање бројева са плутајућим зарезом (ДОУБЛЕ и ФЛОАТ). У поређењу са претходним алгоритмом Гориллас, Цхимп пружа више нивое компресије и бржу декомпресију. Патас алгоритам заостаје за Цхимп-ом у односу компресије, али је много бржи у брзини декомпресије, што се готово не разликује од читања некомпримованих података.
  • Додата је експериментална могућност учитавања података из ЦСВ датотека у више паралелних токова (СЕТ екпериментал_параллел_цсв=труе), што значајно смањује време потребно за учитавање великих ЦСВ датотека. На пример, када је ова опција омогућена, време преузимања ЦСВ датотеке од 720 МБ смањено је са 3.5 на 0.6 секунди.
  • Имплементирана је могућност паралелног извршавања операција креирања индекса и управљања. На пример, операција ЦРЕАТЕ ИНДЕКС на колони са 16 милиона записа смањена је са 5.92 на 1.38 секунди.
  • Омогућена је паралелизација операција агрегације у упитима који садрже израз „ЦОУНТ(ДИСТИНЦТ цол)“.
  • СКЛ је додао подршку за тип УНИОН, који омогућава везивање више типова за један елемент (на пример, „УНИОН(број ИНТ, грешка ВАРЦХАР))“).
  • СКЛ пружа могућност формирања упита који почињу речју „ФРОМ“ уместо „СЕЛЕЦТ“. У овом случају, претпоставља се да упит почиње са "СЕЛЕЦТ *".
  • СКЛ је додао подршку за израз ЦОЛУМНС, који вам омогућава да извршите операцију на више колона без дуплирања израза. На пример, „ИЗАБИР МИН(ЦОЛУМНС(*)) из обс;“ ће изазвати извршавање функције МИН за сваку колону у табели обс, а "СЕЛЕЦТ ЦОЛУМНС('вал[0-9]+') фром обс;" за колоне са именом које се састоји од "вал" и бројева.
  • Додата подршка за операције на листама, на пример, „СЕЛЕЦТ [к + 1 фор к ин [1, 2, 3]] АС л;“.
  • Потрошња меморије је оптимизована. Подразумевано, Линук платформа користи јемаллоц библиотеку за управљање меморијом. Значајно побољшане перформансе операција спајања хешова када је меморија ограничена.
  • Додан режим излаза „.моде дуцкбок“ у интерфејс командне линије, који одбацује средње колоне узимајући у обзир ширину прозора терминала (погодно за брзо визуелно процењивање резултата упита са великим бројем колона, као што је „СЕЛЕЦТ * ФРОМ тбл”, који су у нормалном режиму распоређени у неколико редова). Користећи параметар “.макровс Кс”, можете додатно ограничити број приказаних редова.
  • ЦЛИ обезбеђује аутоматско довршавање уноса узимајући у обзир контекст (унос кључних речи, имена табела, функција, назива колона и имена датотека је завршен).
  • ЦЛИ има подразумевано омогућен индикатор напредовања упита.

Извор: опеннет.ру

Додај коментар