Кіріспе
Ашық кодты бағандық бағытталған реляциялық деректерді басқару жүйесі
MonetDB – бастапқыда Нидерландыдағы Centrum Wiskunde & Informatica (CWI) орталығында әзірленген ашық кодты бағандық бағытталған реляциялық деректерді басқару жүйесі (RDBMS). Ол үлкен деректер қорына қатысты күрделі сұраныстарды өңдеуде жоғары өнімділікті қамтамасыз ету үшін жасалған, мысалы, жүздеген бағаны мен миллиондаған қатары бар кестелерді біріктіру сияқты. MonetDB онлайн-талдау өңдеу, деректерді өндіру, географиялық ақпараттық жүйе (GIS), ресурстарды сипаттау тізбегі (RDF), мәтінді іздеу және тізбектерді салыстыру өңдеу салаларындағы жоғары өнімділік қолданбаларында қолданылған.
Тарих
1990 жылдары деректерді өндіру жобалары жақсырақ аналитикалық деректер базасы қолдауын қажет етті. Бұл CWI-нің Data Distilleries деп аталатын еншілес компаниясының құрылуына әкелді, ол өз аналитикалық құралдарында MonetDB-нің алғашқы нұсқаларын пайдаланды. 2003 жылы Data Distilleries компаниясы SPSS-тің еншілес компаниясына айналды, ал 2009 жылы SPSS IBM компаниясымен сатып алынды. MonetDB қазіргі түрінде алғаш рет 2002 жылы докторлық студент Питер Бонч және профессор Мартин Л. Керстен Амстердам университетіндегі 1990 жылдардағы MAGNUM зерттеу жобасы аясында жасалды. Бастапқыда ол француз импрессионист суретшісі Клод Моне атымен Моне деп аталды. Ашық бастапқы кодты бағдарламалық қамтамасы лицензиясы бойынша (Mozilla Public License-тің өңделген нұсқасы) алғашқы нұсқасы 2004 жылдың 30 қыркүйегінде жарияланды. MonetDB 4 нұсқасы ашық кодтық доменге шығарылғанда, MonetDB/CWI тобы код базасына көптеген кеңейтімдер қосты, соның ішінде SQL:2003 стандартын қолдайтын жаңа SQL интерфейсі. MonetDB деректерді басқару жүйесінің (DBMS) барлық деңгейлерінде инновациялар енгізді: тік фрагментацияға негізделген сақтау моделі, заманауи процессорға бағытталған сұранысты орындау архитектурасы, бұл MonetDB-ге әдетте интерпретаторға негізделген деректерді басқару жүйесімен (RDBMS) салыстырғанда бірдей алгоритм үшін жылдамдық артықшылығын берді. Бұл процессор кэшін сұранысты оңтайландыру үшін баптауды жүзеге асырған алғашқы деректер базасының бірі болды. MonetDB автоматты және өзін-өзі баптау индекстерін, орындалу кезінде сұранысты оңтайландыруды және модулдік бағдарламалық қамтамасын қамтиды. 2008 жылы X100 (MonetDB/X100) деп аталатын ілеспе жоба басталды, ол VectorWise технологиясына айналды. VectorWise Actian Corporation компаниясымен сатып алынды, Ingres деректер базасымен біріктірілді және коммерциялық өнім ретінде сатылды. 2011 жылы MonetDB код базасын жаңартуға бағытталған үлкен жұмыс жүргізілді. Оның аясында MonetDB 4 ядросының коды және оның XQuery компоненттері тоқтатылды. MonetDB 5 нұсқасында SQL қабатының бөліктері ядроға көшірілді. Эксперименттік Jaql интерфейсі 2014 жылғы қазан айындағы шығарылымнан алынып тасталды. 2015 жылғы шілдеде MonetDB тек оқуға арналған деректерді бөлу және тұрақты индекстерді қолдау мүмкіндігіне ие болды. Бұл шығарылымда кодты оңтайландыру мақсатында негізгі код базасынан ескірген DataCell ағынды деректер модулі алынып тасталды. Сонымен қатар, лицензия Mozilla Public License 2.0 нұсқасына өзгертілді.
Сәулет
MonetDB архитектурасы үш қабаттан тұрады, әрқайсысының өзіндік оптимизаторлар жиынтығы бар. Алдыңғы қабат – SQL сұрау интерфейсін ұсынатын жоғарғы қабат, SciQL және SPARQL интерфейстері дамытылуда. Сұраулар SQL үшін реляциялық алгебра сияқты салаға тән түрлерге жіктеліп, оңтайландырылады. Дайындалған логикалық орындалу жоспарлары келесі қабатқа жіберілетін MonetDB Ассемблер тіліндегі (MAL) нұсқауларға аударылады. Ортаңғы немесе артқы қабат MAL үшін құнға негізделген бірнеше оптимизаторларды ұсынады. Төменгі қабат – деректер базасы ядросы, ол бинарлық қатар кестелерінде (BAT) сақталған деректерге қол жеткізуді қамтамасыз етеді. Әрбір ҚҚК – деректер базасындағы бір бағанды көрсететін объекті идентификаторы мен мән бағандарынан тұратын кесте. Милена Иванова, Мартин Керстен, Нильс Нес және Ромуло Гонкалвес құрамындағы CWI деректер базасы архитектуралары тобының авторлары Query Recycling жұмысы үшін ACM SIGMOD 2009 конференциясында "Ең үздік мақаланың иегері" атағын жеңіп алды.
Деректер қорын бұзып алу
MonetDB – деректер қорын «бұзу» (Database Cracking) әдісін енгізген алғашқы деректер қорының бірі болды. Деректер қорын бұзу – деректерді кезең-кезеңмен жартылай индекстеу және/немесе сұрыптау. Бұл MonetDB-нің бағаналық табиғатын тікелей пайдаланады. «Бұзу» – индексті күтіп ұстау шығындарын жаңартулардан сұранысты өңдеуге ауыстыратын техника. Сұраныс өңдеу құбырларының оңтайландырушылары сұраныс жоспарларын «бұзу» үшін және осы ақпаратты тарату үшін пайдаланылады. Бұл техника деректерге кіру жылдамдығын арттыруға және өзін-өзі ұйымдастыруға мүмкіндік береді. Деректер қорын бұзу әдісі ACM SIGMOD 2011 J. Gray ең үздік диссертациялық жұмыс сыйлығына ие болды.
Құралымдары
MonetDB дерекқорының қозғалтқышының мүмкіндіктерін кеңейтетін бірнеше қосымшалар бар. Үш қабатты архитектураның арқасында жоғары деңгейдегі сұраныс интерфейстері, артқы және ядролық қабаттарда жасалған оңтайландырулардан пайда көре алады.
SQL- тің
MonetDB/SQL — SQL:2003 стандартына сәйкес транзакцияларды толық қолдайтын жоғарғы деңгейдегі кеңейтім. Деректер қоймалары шашыраңқы репозиторийлерден деректерді SciQL массивтеріне бейімдейді, бұл MonetDB-де кеңістіктік-уақыттық деректерді тиімдірек басқаруға мүмкіндік береді. SciQL Адам миы жобасы үшін одан әрі дамытылатын болады.
Деректер қорлары
Data Vault – MonetDB дерекқорына қосылатын, SQL/MED стандартына ұқсас сыртқы файл қоймасы. Data Vault технологиясы таратылған/алыс файл қоймаларымен түсінікті интеграцияға мүмкіндік береді. Ол ғылыми деректерді зерттеу және өңдеу үшін, әсіресе қашықтан сезіктеу деректері үшін арналған. Деректер файл қоймасында бастапқы форматта сақталады және қажет болған жағдайда ғана дерекқорға кешіктіріліп жүктеледі. Дерек форматы талап етсе, жүйе оларды қабылдау кезінде де өңдей алады. Нәтижесінде, тіпті өте үлкен файл қоймаларын да тиімді талдауға болады, себебі дерекқорда тек қажетті деректер өңделеді. Деректерге MonetDB SQL немесе SciQL интерфейстері арқылы қол жеткізуге болады. Data Vault технологиясы Еуропалық Одақтың TELEIOS жобасында қолданылды, оның мақсаты Жерді бақылау деректері үшін виртуалды обсерватория құру болды.
SAM/BAM
MonetDB тізбектерді сәйкестендіру деректерін тиімді өңдеу үшін SAM/BAM модуліне ие. Биоинформатикалық зерттеулерге бағытталған бұл модуль SAM/BAM деректерін жүктеуге арналған және ДНК деректерімен жұмыс жасау үшін SQL UDF жиынтығын қамтиды.
RDF/SPARQL
MonetDB/RDF – байланысты деректермен жұмыс істеуге арналған SPARQL негізіндегі кеңейтім, RDF қолдауын қосады және MonetDB-ге үштік сақтау ретінде жұмыс істеуге мүмкіндік береді. Linked Open Data 2 жобасы аясында әзірленуде.
Python интеграциясы
MonetDB-дегі кіріктірілген R UDF-теріне ұқсас, деректер қоры енді Python/NumPy тілінде жазылған UDF-терді қолдайды. Іске асыру Numpy массивтерін (өзі C массивтеріне арналған Python орамалары) пайдаланады, нәтижесінде, жылдамдығы жергілікті SQL функцияларымен шайқасқан функционалды Python интеграциясын қамтамасыз ететін шектеулі қосымша шығындар туындайды. Кіріктірілген Python функциялары сонымен қатар карталық операцияларды қолдайды, бұл пайдаланушыларға SQL сұраныштары ішінде Python функцияларын параллель түрде орындауға мүмкіндік береді. Бұл мүмкіндіктің практикалық тұсы пайдаланушыларға Python/NumPy/SciPy кітапханаларына қол жеткізуді ұсынады, олар статистикалық/талдау функцияларының кең ауқымын ұсынуы мүмкін.
Монеттiк
R үшін қашықтан басқарушы (MonetDB. R) және MonetDB-дегі (MonetDB/R) R UDF-тері шығарылғаннан кейін, авторлар R-де MonetDBLite деп аталатын MonetDB-нің кіріктірілген нұсқасын жасады. Ол R пакеті ретінде таратылады, бұл бұрынғы R интеграциялары үшін қажет болған деректер қоры серверін басқару қажеттілігін жояды. ДБСМ (DBMS) R процесінің ішінде жұмыс істейді, сокет байланысын және серияландыруды болдырмай, тиімділікті едәуір арттырады. Бұл идея R үшін SQLite сияқты пакет ұсыну, бірақ жадта оңтайландырылған бағандық сақтаудың жылдамдығымен.
Бұрынғы кеңейтулер
Бірқатар бұрынғы кеңейтімдер уақыт өте келе ескіріп, тұрақты код базасынан алынып тасталды. Назар аударуға лайық мысалдардың ішінде MonetDB нұсқасы 5-те алынып тасталған XQuery кеңейтімі, JAQL кеңейтімі және Data Cell деп аталатын ағынмен келетін дерек кеңейтімі бар.