MonetDB - это система управления базами данных с открытым исходным кодом, ориентированная на столбцы, разработанная в Centrum Wiskunde & Informatica (CWI) в Нидерландах . Он был разработан для обеспечения высокой производительности сложных запросов к большим базам данных, таких как объединение таблиц с сотнями столбцов и миллионами строк. MonetDB применялся в высокопроизводительных приложениях для онлайн-аналитической обработки , интеллектуального анализа данных , географических информационных систем (GIS), [1] Resource Description Framework (RDF), [2] поиска текста и обработки выравнивания последовательностей . [3]
Разработчики) | MonetDB BV |
---|---|
Стабильный выпуск | Oct2020-SP2 / 25 января 2021 г. |
Репозиторий | |
Написано в | C |
Операционная система | Кроссплатформенность |
Тип | Колонно-ориентированная СУБД RDBMS |
Лицензия | Общественная лицензия Mozilla , версия 2.0 |
Веб-сайт | www |
История
Проекты интеллектуального анализа данных в 1990-х годах требовали улучшенной поддержки аналитических баз данных. Это привело к появлению дополнительного продукта CWI под названием Data Distilleries, который использовал ранние реализации MonetDB в своем аналитическом пакете. Data Distilleries в конечном итоге стала дочерней компанией SPSS в 2003 году, которая, в свою очередь, была приобретена IBM в 2009 году [4].
MonetDB в его нынешнем виде был впервые создан в 2002 году докторантом Питером Бонцем и профессором Мартином Л. Керстеном в рамках исследовательского проекта MAGNUM 1990-х годов в Амстердамском университете . [5] Первоначально он назывался просто Моне, в честь французского художника-импрессиониста Клода Моне . Первая версия под лицензией на программное обеспечение с открытым исходным кодом (модифицированная версия Mozilla Public License ) была выпущена 30 сентября 2004 года. Когда MonetDB версии 4 был выпущен в домен с открытым исходным кодом, многие расширения к базе кода были добавлены команда MonetDB / CWI, включая новый интерфейс SQL, поддерживающий стандарт SQL: 2003 . [6]
MonetDB представил инновации на всех уровнях СУБД : модель хранения, основанная на вертикальной фрагментации, современная архитектура выполнения запросов с настройкой ЦП, которая часто давала MonetDB преимущество в скорости по сравнению с тем же алгоритмом над типичной СУБД на основе интерпретатора . Это была одна из первых систем баз данных, настроивших оптимизацию запросов для кешей ЦП . MonetDB включает автоматические и самонастраивающиеся индексы, оптимизацию запросов во время выполнения и модульную архитектуру программного обеспечения. [7] [8]
К 2008 году стартовал следующий проект под названием X100 (MonetDB / X100), который превратился в технологию VectorWise . VectorWise была приобретена Actian Corporation , интегрирована с базой данных Ingres и продана как коммерческий продукт. [9] [10]
В 2011 году была начата серьезная работа по обновлению кодовой базы MonetDB. В рамках него был заморожен код ядра MonetDB 4 и его компонентов XQuery. В MonetDB 5 части уровня SQL были помещены в ядро. [6] Результирующие изменения привели к различиям во внутренних API , поскольку он перешел с языка инструкций MonetDB (MIL) на язык сборки MonetDB (MAL). Также были удалены старые, больше не обслуживаемые интерфейсы запросов верхнего уровня. Первым был XQuery , который полагался на MonetDB 4 и никогда не переносился на версию 5. [11] Экспериментальная поддержка интерфейса Jaql была удалена с выпуском октября 2014 года. [12] С выпуском в июле 2015 года MonetDB получил поддержку сегментирования данных только для чтения и постоянных индексов. В этом выпуске устаревший модуль потоковых данных DataCell также был удален из основной кодовой базы, чтобы упростить код. [13] Кроме того, лицензия была изменена на Общественную лицензию Mozilla версии 2.0 .
Архитектура
Архитектура MonetDB представлена тремя уровнями, каждый со своим собственным набором оптимизаторов. [14] Внешний интерфейс - это верхний уровень, обеспечивающий интерфейс запросов для SQL , причем интерфейсы SciQL и SPARQL находятся в стадии разработки. Запросы разбираются в предметно-ориентированные представления, такие как реляционная алгебра для SQL, и оптимизируются. Сгенерированные логические планы выполнения затем переводятся в инструкции языка сборки MonetDB (MAL), которые передаются на следующий уровень. Средний или внутренний уровень предоставляет ряд оптимизаторов для MAL на основе затрат. Нижний уровень - это ядро базы данных, которое обеспечивает доступ к данным, хранящимся в таблицах двоичных ассоциаций (BAT). Каждая BAT представляет собой таблицу, состоящую из столбцов идентификатора объекта и значения, представляющих один столбец в базе данных. [14]
Внутреннее представление данных MonetDB также опирается на диапазоны адресации памяти современных ЦП с использованием подкачки по требованию файлов с отображением памяти и, таким образом, отходит от традиционных конструкций СУБД, предполагающих сложное управление большими хранилищами данных в ограниченной памяти.
Повторное использование запросов
Повторное использование запросов - это архитектура для повторного использования побочных продуктов парадигмы «оператор за раз» в СУБД колоночного хранилища. При повторном использовании используется общая идея сохранения и повторного использования результатов дорогостоящих вычислений. В отличие от низкоуровневых кешей инструкций, повторное выполнение запросов использует оптимизатор для предварительного выбора инструкций для кеширования. Этот метод разработан для улучшения времени ответа на запросы и увеличения пропускной способности при работе в самоорганизующейся манере. [15] Авторы из группы CWI Database Architectures, в которую входят Милена Иванова, Мартин Керстен , Нильс Нес и Ромуло Гонсалвес, выиграли «Лучшую работу, занявшую второе место» на конференции ACM SIGMOD 2009 за свою работу по повторному использованию запросов. [16] [17]
Взлом базы данных
MonetDB была одной из первых баз данных, внедривших взлом базы данных. Взлом базы данных - это частичное инкрементное индексирование и / или сортировка данных. Он напрямую использует столбчатый характер MonetDB. Взлом - это метод, который переключает стоимость обслуживания индекса с обновлений на обработку запросов. Оптимизаторы конвейера запросов используются для массажа планов запросов с целью взлома и распространения этой информации. Этот метод позволяет сократить время доступа и повысить самоорганизацию. [18] Database Cracking получил награду ACM SIGMOD 2011 J.Gray за лучшую диссертацию. [19]
Составные части
Для MonetDB существует ряд расширений, расширяющих функциональность механизма базы данных. Благодаря трехуровневой архитектуре интерфейсы запросов верхнего уровня могут выиграть от оптимизации, выполненной на уровне бэкэнда и ядра.
SQL
MonetDB / SQL - это расширение верхнего уровня, которое обеспечивает полную поддержку транзакций в соответствии со стандартом SQL: 2003 . [14]
ГИС
MonetDB / GIS - это расширение для MonetDB / SQL с поддержкой стандарта доступа к простым функциям Open Geospatial Consortium (OGC). [1]
SciQL
SciQL - язык запросов на основе SQL для научных приложений с массивами в качестве первоклассных граждан. SciQL позволяет MonetDB эффективно работать как база данных массива . SciQL используется в проектах Европейского Союза PlanetData и TELEIOS вместе с технологией Data Vault, обеспечивая прозрачный доступ к большим хранилищам научных данных. [20] Хранилища данных отображают данные из распределенных репозиториев в массивы SciQL, что позволяет улучшить обработку пространственно-временных данных в MonetDB. [21] SciQL будет дополнительно расширен для проекта Human Brain Project . [22]
Хранилища данных
Data Vault - это внешний репозиторий файлов для MonetDB, подключенный к базе данных, аналогичный стандарту SQL / MED . Технология Data Vault обеспечивает прозрачную интеграцию с распределенными / удаленными файловыми репозиториями. Он разработан для исследования и анализа данных научных данных , особенно для данных дистанционного зондирования . [21] Поддерживаются форматы GeoTIFF ( наблюдение Земли ), FITS ( астрономия ), MiniSEED ( сейсмология ) и NetCDF . [21] [23] Данные хранятся в хранилище файлов в исходном формате и загружаются в базу данных ленивым способом только при необходимости. Система также может обрабатывать данные при приеме, если этого требует формат данных. [24] В результате можно эффективно анализировать даже очень большие файловые репозитории, поскольку в базе данных обрабатываются только необходимые данные. Доступ к данным можно получить через интерфейсы MonetDB SQL или SciQL. Технология Vault данных была использована в Европейском Союзе «s Teleios проекте, который был направлен на построение виртуальной обсерватории для данных наблюдения Земли. [23] Хранилища данных для файлов FITS также использовались для обработки данных астрономической съемки для Фотометрического обзора H-Alpha (IPHAS) [25] [26]
ЗРК / БАМ
MonetDB имеет модуль SAM / BAM для эффективной обработки данных выравнивания последовательностей . Направленный на исследования в области биоинформатики , модуль имеет загрузчик данных SAM / BAM и набор пользовательских функций SQL для работы с данными ДНК . [3] В модуле используется популярная библиотека SAMtools . [27]
RDF / SPARQL
MonetDB / RDF - это расширение на основе SPARQL для работы со связанными данными, которое добавляет поддержку RDF и позволяет MonetDB функционировать как тройное хранилище . В стадии разработки для проекта Linked Open Data 2 . [2]
R интеграция
Модуль MonetDB / R позволяет выполнять UDF, написанные на R, на уровне SQL системы. Это делается с помощью встроенной поддержки R для запуска в другом приложении, в данном случае внутри СУБД. Ранее коннектор MonetDB.R позволял использовать источники данных MonetDB и обрабатывать их в сеансе R. Более новая функция интеграции R в MonetDB не требует передачи данных между СУБД и сеансом R, что снижает накладные расходы и повышает производительность. Эта функция предназначена для предоставления пользователям доступа к функциям статистического программного обеспечения R для оперативного анализа данных, хранящихся в СУБД. Он дополняет существующую поддержку UDF C и предназначен для использования для обработки в базе данных . [28]
Интеграция с Python
Подобно встроенным UDF R в MonetDB, база данных теперь поддерживает UDF, написанные на Python / NumPy . Реализация использует массивы Numpy (сами оболочки Python для массивов C), что приводит к ограниченным накладным расходам, обеспечивая функциональную интеграцию Python с сопоставлением скорости встроенных функций SQL. Встроенные функции Python также поддерживают сопоставленные операции, позволяя пользователю выполнять функции Python параллельно в рамках запросов SQL. Практическая сторона этой функции дает пользователям доступ к библиотекам Python / NumPy / SciPy , которые могут предоставить большой выбор статистических / аналитических функций. [29]
MonetDBLite
После выпуска удаленного драйвера для R ( MonetDB.R ) и R UDF в MonetDB (MonetDB / R) авторы создали встроенную версию MonetDB в R под названием MonetDBLite . Он распространяется как пакет R, что устраняет необходимость в управлении сервером базы данных, необходимом для предыдущих интеграций R. СУБД работает внутри самого процесса R, устраняя накладные расходы на связь через сокеты и сериализацию, что значительно повышает эффективность. Идея состоит в том, чтобы предоставить пакет, подобный SQLite , для R с производительностью столбчатого хранилища, оптимизированного в памяти. [30]
Бывшие пристройки
Ряд прежних расширений устарел и со временем был удален из стабильной базы кода. Некоторые примечательные примеры включают расширение XQuery, удаленное в MonetDB версии 5; JAQL расширение, и данные потоковое расширение под названием ячейку данных . [14] [31] [32]
Смотрите также
- Список систем управления реляционными базами данных
- Сравнение систем управления реляционными базами данных
- Система управления базами данных
- Колонно-ориентированная СУБД
- Массив СУБД
Рекомендации
- ^ a b "GeoSpatial - MonetDB" . 4 марта 2014 г.
- ^ а б «MonetDB - LOD2 - Создание знаний из промежуточных данных» . 6 марта 2014 г.
- ^ а б «Науки о жизни в MonetDB» . 24 ноября 2014 г.
- ^ «Краткая история о нас - MonetDB» . 6 марта 2014 г.
- ^ Monet: ядро СУБД нового поколения для приложений, интенсивно использующих запросы (PDF) . Кандидат наук. Тезис . Universiteit van Amsterdam. Май 2002 г.
- ^ a b Историческая справка о MonetDB
- ^ Стефан Манегольд (июнь 2006 г.). «Эмпирическая оценка процессоров XQuery» (PDF) . Труды международного семинара по производительности и оценке систем управления данными (ExpDB) . ACM. 33 (2): 203–220. DOI : 10.1016 / j.is.2007.05.004 . Проверено 11 декабря 2013 года .
- ^ П.А. Бонц, Т. Груст, М. ван Кеулен, С. Манегольд, Дж. Риттингер, Дж. Тойбнер. MonetDB / XQuery: быстрый процессор XQuery на базе реляционного механизма. Архивировано 19 мая 2008 г. на Wayback Machine . В материалах Международной конференции ACM SIGMOD по управлению данными, Чикаго, Иллинойс, США, июнь 2006 г.
- ^ Марцин Жуковски; Питер Бонч (20 мая 2012 г.). «От x100 к векторному: возможности, проблемы и вещи, о которых не задумывается большинство исследователей, глава: От x100 к векторному» . Материалы Международной конференции ACM SIGMOD 2012 по управлению данными . ACM: 861–862. DOI : 10.1145 / 2213836.2213967 . ISBN 978-1-4503-1247-9. S2CID 9187072 .
- ^ Инкстер, Д .; Жуковски, М .; Бонч, Пенсильвания (20 сентября 2011 г.). «Интеграция VectorWise с Ingres» (PDF) . ACM SIGMOD Запись . ACM. 40 (3): 45. CiteSeerX 10.1.1.297.4985 . DOI : 10.1145 / 2070736.2070747 . S2CID 6372175 .
- ^ «XQuery» . 12 декабря 2014 г.
- ^ «Примечания к выпуску MonetDB за октябрь 2014 г.» . 12 декабря 2014 г.
- ^ «Выпущен MonetDB за июль 2015 года» . 31 августа 2015 г.
- ^ а б в г Idreos, S .; Groffen, FE; Нес, штат Нью-Джерси; Manegold, S .; Mullender, KS; Керстен, М.Л. (март 2012 г.). «MonetDB: два десятилетия исследований в области архитектуры баз данных, ориентированной на столбцы» (PDF) . Бюллетень IEEE Data Engineering . IEEE: 40–45 . Проверено 6 марта 2014 года .
- ^ * Иванова Милена Г; Керстен, Мартин Л; Нес, Нильс Дж; Гонсалвес, Ромуло А.П. (2010). «Архитектура утилизации промежуточных продуктов в колонном магазине» . ACM-транзакции в системах баз данных . ACM. 35 (4): 24. DOI : 10,1145 / 1862919,1862921 . S2CID 52811192 .
- ^ «Команда базы данных CWI выигрывает приз в номинации« Лучшая статья »на SIGMOD 2009» . CWI Амстердам . Проверено 1 июля 2009 .
- ^ «SIGMOD Awards» . ACM SIGMOD . Проверено 1 июля 2014 .
- ^ Идреос, Стратос; Керстен, Мартин Л; Манегольд, Стефан (2007). Взлом базы данных . Труды CIDR .
- ^ «SIGMOD Awards» . ACM SIGMOD . Проверено 12 декабря 2014 .
- ^ Zhang, Y .; Scheers, LHA; Керстен, М.Л .; Иванова, М .; Нес, Нью-Джерси (2011). «Обработка астрономических данных с использованием SciQL, языка запросов на основе SQL для массивов данных». Программное обеспечение и системы анализа астрономических данных .
- ^ а б в Иванова, Милена; Керстен, Мартин; Манегольд, Стефан (2012). Хранилища данных: симбиоз между технологией баз данных и репозиториями научных файлов . Springer Berlin Heidelberg. С. 485–494. Неизвестный параметр
|book-title=
игнорируется ( справка ) - ^ "SCIQL.ORG" . 4 марта 2014 г.
- ^ а б Иванова, Милена; Каргин, Ягиз; Керстен, Мартин; Манегольд, Стефан; Чжан, Инь; Датку, Михай; Молина, Даниэла Эспиноза (2013). «Хранилища данных: база данных - добро пожаловать в научные файловые репозитории». SSDBM. ACM. DOI : 10.1145 / 2484838.2484876 . ISBN 978-1-4503-1921-8. Неизвестный параметр
|book-title=
игнорируется ( справка ) - ^ Каргин, Ягиз; Иванова, Милена; Чжан, Инь; Манегольд, Стефан; Керстен, Мартин (август 2013 г.). «Ленивый ETL в действии: технология ETL датирует научные данные». Труды эндаумента VLDB . 6 (12). С. 1286–1289. DOI : 10.14778 / 2536274.2536297 . ISSN 2150-8097 .
- ^ «Анализ астрономических данных с помощью хранилищ данных MonetDB» . 2015-09-09.
- ^ «Хранилища данных» . 2015-09-09.
- ^ «Установка ЗРК / БАМ» . 24 ноября 2014 г.
- ^ «Встроенный R в MonetDB» . 13 ноября 2014 г.
- ^ «Встроенный Python / NumPy в MonetDB» . 11 января 2015.
- ^ «MonetDBLite для R» . 25 ноября 2015 г.
- ^ «Xquery (устаревший)» . MonetDB . Проверено 26 мая 2015 .
- ^ «Объявление: новый выпуск пакета MonetDB в октябре 2014 года» . MonetDB . Проверено 26 мая 2015 .
Библиография
- Бонц, Питер; Манегольд, Стефан; Керстен, Мартин (1999). Архитектура базы данных оптимизирована для нового узкого места: доступа к памяти . Труды международной конференции по очень большим базам данных . С. 54–65.
- Шмидт, Альбрехт; Керстен, Мартин; Виндхауэр, Мензо; Ваас, Флориан (2001). «Эффективное реляционное хранение и поиск XML-документов» . Всемирная паутина и базы данных . Конспект лекций по информатике. Springer. 1997 : 137–150. DOI : 10.1007 / 3-540-45271-0_9 . ISBN 978-3-540-41826-9.
- Идреос, Стратос; Керстен, Мартин Л; Манегольд, Стефан (2007). Взлом базы данных . Труды CIDR .
- Бонц, Петр А; Керстен, Мартин Л; Манегольд, Стефан (2008). «Разрушая стену памяти в MonetDB» . Коммуникации ACM . ACM. 51 (12): 77–85. DOI : 10.1145 / 1409360.1409380 . S2CID 5633935 .
- Сидирургос, Лефтерис; Гонсалвес, Ромуло; Керстен, Мартин; Нес, Нильс; Манегольд, Стефан (2008). «Поддержка колоночного хранилища для управления данными RDF: не все лебеди белые». Труды эндаумента VLDB . 1 (2): 1553–1563. DOI : 10.14778 / 1454159.1454227 .
- Иванова, Милена Г .; Kersten, Martin L .; Nes, Niels J .; Гонсалвес, Ромуло А.П. (2009). "Архитектура утилизации промежуточных продуктов в магазине-колонне". Труды Международной конференции ACM SIGMOD 2009 по управлению данными . SIGMOD '09. ACM. С. 309–320. DOI : 10.1145 / 1559845.1559879 . ISBN 978-1-60558-551-2.
- Манегольд, Стефан; Boncz, Peter A .; Керстен, Мартин Л. (декабрь 2000 г.). «Оптимизация архитектуры базы данных для нового узкого места: доступ к памяти» . Журнал VLDB . Springer-Verlag New York, Inc. 9 (3): 231–246. DOI : 10.1007 / s007780000031 . ISSN 1066-8888 . S2CID 1688757 .
- Иванова Милена Г; Керстен, Мартин Л; Нес, Нильс Дж; Гонсалвес, Ромуло А.П. (2010). «Архитектура утилизации промежуточных продуктов в колонном магазине» . ACM-транзакции в системах баз данных . ACM. 35 (4): 24. DOI : 10,1145 / 1862919,1862921 . S2CID 52811192 .
- Гонсалвес, Ромуло и Керстен, Мартин (2011). «Схема обработки запросов на циклотроне» . ACM-транзакции в системах баз данных . ACM. 36 (4): 27. DOI : 10,1145 / 2043652,2043660 .
- Керстен, Мартин Л; Идреос, Стратос; Манегольд, Стефан; Лиару, Эриетта (2011). «Руководство исследователя по потоку данных: запрос к научной базе данных всего за несколько секунд». PVLDB: проблемы и перспективы .
- Керстен, М; Чжан, Инь; Иванова, Милена; Нес, Нильс (2011). SciQL, язык запросов для научных приложений . ACM. С. 1–12. Неизвестный параметр
|book-title=
игнорируется ( справка ) - Сидирургос, Лефтерис; Керстен, Мартин; Бонц, Питер (2011). «SciBORQ: Управление научными данными с ограничениями по времени выполнения и качеству». Creative Commons. Цитировать журнал требует
|journal=
( помощь ) - Лиару, Эриетта; Идреос, Стратос; Манегольд, Стефан; Керстен, Мартин (2012). «MonetDB / DataCell: онлайн-аналитика в потоковом хранилище колонок» . Труды эндаумента VLDB . 5 (12): 1910–1913. DOI : 10.14778 / 2367502.2367535 . S2CID 545154 .
- Иванова, Милена; Керстен, Мартин; Манегольд, Стефан (2012). Хранилища данных: симбиоз между технологией баз данных и репозиториями научных файлов . Springer Berlin Heidelberg. С. 485–494. Неизвестный параметр
|book-title=
игнорируется ( справка ) - Каргин, Ягиз; Иванова, Милена; Чжан, Инь; Манегольд, Стефан; Керстен, Мартин (август 2013 г.). «Ленивый ETL в действии: технология ETL датирует научные данные». Труды эндаумента VLDB . 6 (12). С. 1286–1289. DOI : 10.14778 / 2536274.2536297 . ISSN 2150-8097 .
- Сидирургос, Лефтерис и Керстен, Мартин (2013). «Отпечатки столбцов: структура вторичного индекса». Материалы международной конференции 2013 г. по управлению данными . ACM. С. 893–904.
- Иванова, Милена; Каргин, Ягиз; Керстен, Мартин; Манегольд, Стефан; Чжан, Инь; Датку, Михай; Молина, Даниэла Эспиноза (2013). «Хранилища данных: база данных - добро пожаловать в научные файловые репозитории». SSDBM. ACM. DOI : 10.1145 / 2484838.2484876 . ISBN 978-1-4503-1921-8. Неизвестный параметр
|book-title=
игнорируется ( справка )
Внешние ссылки
- Официальная домашняя страница MonetDB
- Группа архитектур баз данных в CWI - основные разработчики MonetDB
- Список научных проектов с использованием MonetDB
- MonetDB.R - Коннектор MonetDB к R
- Решения MonetDB - компания, предоставляющая профессиональные услуги MonetDB
Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.