MonetDB - MonetDB - Wikipedia

MonetDB
Логотип MonetDB
Разработчики)MonetDB B.V.
Стабильный выпуск
Oct2020-SP1 / 24 ноября 2020 г. (2020-11-24)
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаКроссплатформенность
ТипКолонно-ориентированная СУБД
СУБД
ЛицензияОбщественная лицензия Mozilla, версия 2.0
Интернет сайтwww.monetdb.org

MonetDB является Открытый исходный код столбчатый база данных система менеджмента разработана на Centrum Wiskunde & Informatica (CWI) в Нидерланды Он был разработан для обеспечения высокой производительности сложных запросов к большим базам данных, таких как объединение столы с сотнями столбцов и миллионами строк. MonetDB применялся в высокопроизводительных приложениях для онлайн-аналитическая обработка, сбор данных, географическая информационная система (ГИС),[1] Структура описания ресурсов (RDF),[2] поиск текста и выравнивание последовательностей обработка.[3]

История

Старый логотип MonetDB

Проекты интеллектуального анализа данных в 1990-х годах требовали улучшенной поддержки аналитических баз данных. Это привело к CWI Дополнительная выгода называется Data Distilleries, которая использовала ранние реализации MonetDB в своем аналитическом пакете. Data Distilleries в конечном итоге стала дочерней компанией SPSS в 2003 году, который, в свою очередь, был приобретен IBM в 2009.[4]

MonetDB в нынешнем виде впервые был создан в 2002 году докторантом. Питер Бонч и профессор Мартин Л. Керстен в рамках исследовательского проекта MAGNUM 1990-х на Амстердамский университет.[5] Первоначально он назывался просто Моне, в честь французского художника-импрессиониста. Клод Моне. Первая версия под программное обеспечение с открытым исходным кодом лицензия (модифицированная версия Общественная лицензия Mozilla ) был выпущен 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] Взлом базы данных получил ACM SIGMOD Премия Дж. Грея за лучшую диссертацию 2011 года.[19]

Составные части

Для MonetDB существует ряд расширений, расширяющих функциональность механизма базы данных. Благодаря трехуровневой архитектуре интерфейсы запросов верхнего уровня могут выиграть от оптимизации, выполненной на уровне бэкэнда и ядра.

SQL

MonetDB / SQL - это расширение верхнего уровня, которое обеспечивает полную поддержку транзакций в соответствии с SQL: 2003 стандарт.[14]

ГИС

MonetDB / GIS - это расширение для MonetDB / SQL с поддержкой Доступ к простым функциям стандарт Открытый геопространственный консорциум (OGC).[1]

SciQL

SciQL - язык запросов на основе SQL для научных приложений с массивами в качестве первоклассных граждан. SciQL позволяет MonetDB эффективно функционировать как база данных массива. SciQL используется в Евросоюз PlanetData и ТЕЛЕИОС проект вместе с технологией Data Vault, обеспечивающий прозрачный доступ к большим хранилищам научных данных.[20] Хранилища данных отображают данные из распределенных репозиториев в массивы SciQL, что позволяет улучшить обработку пространственно-временной данные в MonetDB.[21] SciQL будет расширен для Проект человеческого мозга.[22]

Хранилища данных

Data Vault - это внешний репозиторий файлов для MonetDB, подключенный к базе данных, аналогичный SQL / MED стандарт. Технология Data Vault обеспечивает прозрачную интеграцию с распределенными / удаленными файловыми репозиториями. Он предназначен для научных данных исследование данных и добыча полезных ископаемых специально для дистанционное зондирование данные.[21] Есть поддержка GeoTIFF (Наблюдение Земли ), ПОДХОДИТ (астрономия ), MiniSEED (сейсмология ) и NetCDF форматы.[21][23]Данные хранятся в хранилище файлов в исходном формате и загружаются в базу данных в ленивый мода, только когда это необходимо. Система также может обрабатывать данные при приеме, если этого требует формат данных.[24]В результате можно эффективно анализировать даже очень большие файловые репозитории, поскольку в базе данных обрабатываются только необходимые данные. Доступ к данным можно получить через интерфейсы MonetDB SQL или SciQL. Технология Data Vault использовалась в Евросоюз с ТЕЛЕИОС проект, который был направлен на строительство виртуальная обсерватория для данных наблюдения Земли.[23] Хранилища данных для файлов FITS также использовались для обработки астрономическая съемка данные для Фотометрический обзор H-Alpha, проведенный INT (IPHAS) [25][26]

ЗРК / БАМ

MonetDB имеет ЗРК / БАМ модуль для эффективной обработки выравнивание последовательностей данные. Нацелен на биоинформатика исследования, модуль имеет загрузчик данных SAM / BAM и набор SQL UDF для работы с ДНК данные.[3] В модуле используются популярные SAMtools библиотека.[27]

RDF / SPARQL

MonetDB / RDF - это SPARQL -на основе расширения для работы со связанными данными, которое добавляет поддержку RDF и позволяя MonetDB функционировать как тройной магазин. В стадии разработки для Связанные открытые данные 2 проект.[2]

R интеграция

MonetDB / R модуль позволяет UDF написано в р для выполнения на уровне SQL системы. Это делается с помощью встроенной поддержки R для запуска в другом приложении, в данном случае внутри СУБД. Ранее MonetDB.R коннектор позволял использовать источники данных MonetDB и обрабатывать их в R-сессии. Новая функция интеграции R в MonetDB не требует передачи данных между СУБД и сеансом R, что снижает накладные расходы и повышает производительность. Эта функция предназначена для предоставления пользователям доступа к функциям статистического программного обеспечения R для оперативного анализа данных, хранящихся в СУБД. Он дополняет существующую поддержку C UDF и предназначен для использования обработка в базе данных.[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]

Смотрите также

Рекомендации

  1. ^ а б «GeoSpatial - MonetDB». 4 марта 2014 г.
  2. ^ а б «MonetDB - LOD2 - Создание знаний из промежуточных данных». 6 марта 2014 г.
  3. ^ а б «Науки о жизни в MonetDB». 24 ноября 2014 г.
  4. ^ «Краткая история о нас - MonetDB». 6 марта 2014 г.
  5. ^ Monet: ядро ​​СУБД нового поколения для приложений, интенсивно использующих запросы (PDF). Кандидат наук. Тезис. Universiteit van Amsterdam. Май 2002 г.
  6. ^ а б История MonetDB
  7. ^ Стефан Манегольд (июнь 2006 г.). «Эмпирическая оценка процессоров XQuery» (PDF). Труды международного семинара по производительности и оценке систем управления данными (ExpDB). ACM. 33 (2): 203–220. Дои:10.1016 / j.is.2007.05.004. Получено 11 декабря, 2013.
  8. ^ П. А. Бонц, Т. Груст, М. ван Кёлен, С. Манегольд, Дж. Риттингер, Дж. Тойбнер. MonetDB / XQuery: быстрый процессор XQuery на основе реляционного механизма В архиве 2008-05-19 на Wayback Machine. В материалах Международной конференции ACM SIGMOD по управлению данными, Чикаго, Иллинойс, США, июнь 2006 г.
  9. ^ Марцин Жуковски; Питер Бонч (20 мая 2012 г.). «От x100 к векторному: возможности, проблемы и вещи, о которых не задумывается большинство исследователей, глава: От x100 к векторному». Материалы Международной конференции ACM SIGMOD 2012 по управлению данными. ACM: 861–862. Дои:10.1145/2213836.2213967. ISBN  978-1-4503-1247-9. S2CID  9187072.
  10. ^ Инкстер, Д .; Жуковски, М .; Бонч П.А. (20 сентября 2011 г.). «Интеграция VectorWise с Ingres» (PDF). Запись ACM SIGMOD. ACM. 40 (3): 45. CiteSeerX  10.1.1.297.4985. Дои:10.1145/2070736.2070747. S2CID  6372175.
  11. ^ "XQuery". 12 декабря 2014 г.
  12. ^ «Примечания к выпуску MonetDB за октябрь 2014 г.». 12 декабря 2014 г.
  13. ^ «Выпущен MonetDB за июль 2015 г.». 31 августа 2015 г.
  14. ^ а б c d Idreos, S .; Groffen, F.E .; Nes, N.J .; Manegold, S .; Mullender, K. S .; Керстен, М. Л. (март 2012 г.). «MonetDB: два десятилетия исследований в области архитектуры баз данных, ориентированной на столбцы» (PDF). Бюллетень IEEE Data Engineering. IEEE: 40–45. Получено 6 марта, 2014.
  15. ^ * Иванова Милена Г; Керстен, Мартин Л; Нес, Нильс Дж; Гонсалвес, Ромуло А.П. (2010). «Архитектура утилизации полупродуктов в колонном магазине». Транзакции ACM в системах баз данных. ACM. 35 (4): 24. Дои:10.1145/1862919.1862921. S2CID  52811192.
  16. ^ «Команда базы данных CWI выигрывает приз в номинации« Лучшая работа на бумаге »на SIGMOD 2009». CWI Amsterdam. Получено 2009-07-01.
  17. ^ "SIGMOD Awards". ACM SIGMOD. Получено 2014-07-01.
  18. ^ Идреос, Стратос; Керстен, Мартин Л; Манегольд, Стефан (2007). Взлом базы данных. Труды CIDR.
  19. ^ "SIGMOD Awards". ACM SIGMOD. Получено 2014-12-12.
  20. ^ Zhang, Y .; Scheers, L.H.A .; Kersten, M. L .; Иванова, М .; Нес, Н. Дж. (2011). «Обработка астрономических данных с использованием SciQL, языка запросов на основе SQL для массивов данных». Программное обеспечение и системы для анализа астрономических данных.
  21. ^ а б c Иванова, Милена; Керстен, Мартин; Манегольд, Стефан (2012). Хранилища данных: симбиоз между технологией баз данных и репозиториями научных файлов. Springer Berlin Heidelberg. С. 485–494.
  22. ^ "SCIQL.ORG". 4 марта 2014 г.
  23. ^ а б Иванова, Милена; Каргин, Ягиз; Керстен, Мартин; Манегольд, Стефан; Чжан, Инь; Датку, Михай; Молина, Даниэла Эспиноза (2013). "Хранилища данных: база данных Добро пожаловать в научные файловые репозитории". SSDBM. ACM. Дои:10.1145/2484838.2484876. ISBN  978-1-4503-1921-8.
  24. ^ Каргин, Ягиз; Иванова, Милена; Чжан, Инь; Манегольд, Стефан; Керстен, Мартин (август 2013 г.). «Ленивый ETL в действии: технология ETL датирует научные данные». Труды эндаумента VLDB. 6 (12). С. 1286–1289. Дои:10.14778/2536274.2536297. ISSN  2150-8097.
  25. ^ «Анализ астрономических данных с помощью хранилищ данных MonetDB». 2015-09-09.
  26. ^ «Хранилища данных». 2015-09-09.
  27. ^ «Установка ЗРК / БАМ». 24 ноября 2014 г.
  28. ^ «Встроенный R в MonetDB». 13 ноября 2014 г.
  29. ^ «Встроенный Python / NumPy в MonetDB». 11 января 2015.
  30. ^ "MonetDBLite для R". 25 ноября 2015 г.
  31. ^ «Xquery (устаревший)». MonetDB. Получено 2015-05-26.
  32. ^ «Объявление: новый выпуск пакета MonetDB в октябре 2014 года». MonetDB. Получено 2015-05-26.

Библиография

  • Бонц, Питер; Манегольд, Стефан; Керстен, Мартин (1999). Архитектура базы данных оптимизирована для нового узкого места: доступ к памяти. Труды Международной конференции по очень большим базам данных. С. 54–65.
  • Шмидт, Альбрехт; Керстен, Мартин; Виндхауэр, Мензо; Ваас, Флориан (2001). «Эффективное реляционное хранение и поиск XML-документов». Всемирная паутина и базы данных. Конспект лекций по информатике. Springer. 1997: 137–150. Дои:10.1007/3-540-45271-0_9. ISBN  978-3-540-41826-9.
  • Идреос, Стратос; Керстен, Мартин Л; Манегольд, Стефан (2007). Взлом базы данных. Труды CIDR.
  • Бонц, Петр А; Керстен, Мартин Л; Манегольд, Стефан (2008). «Разрушая стену памяти в MonetDB». Коммуникации ACM. ACM. 51 (12): 77–85. Дои:10.1145/1409360.1409380. S2CID  5633935.
  • Сидирургос, Лефтерис; Гонсалвес, Ромуло; Керстен, Мартин; Нес, Нильс; Манегольд, Стефан (2008). «Поддержка колоночного хранилища для управления данными RDF: не все лебеди белые». Труды эндаумента VLDB. 1 (2): 1553–1563. Дои:10.14778/1454159.1454227.
  • Иванова, Милена Г .; Kersten, Martin L .; Nes, Niels J .; Гонсалвес, Ромуло А.П. (2009). «Архитектура утилизации промежуточных продуктов в магазине-колонне». Материалы Международной конференции ACM SIGMOD по управлению данными 2009 г.. SIGMOD '09. ACM. С. 309–320. Дои:10.1145/1559845.1559879. ISBN  978-1-60558-551-2.
  • Манегольд, Стефан; Boncz, Peter A .; Керстен, Мартин Л. (декабрь 2000 г.). «Оптимизация архитектуры базы данных для устранения нового узкого места: доступ к памяти». Журнал VLDB. Springer-Verlag New York, Inc. 9 (3): 231–246. Дои:10.1007 / s007780000031. ISSN  1066-8888. S2CID  1688757.
  • Иванова Милена Г; Керстен, Мартин Л; Нес, Нильс Дж; Гонсалвес, Ромуло А.П. (2010). «Архитектура утилизации полупродуктов в колонном магазине». Транзакции ACM в системах баз данных. ACM. 35 (4): 24. Дои:10.1145/1862919.1862921. S2CID  52811192.
  • Гонсалвес, Ромуло и Керстен, Мартин (2011). «Схема обработки запроса циклотрона данных». Транзакции ACM в системах баз данных. ACM. 36 (4): 27. Дои:10.1145/2043652.2043660.
  • Керстен, Мартин Л; Идреос, Стратос; Манегольд, Стефан; Лиару, Эриетта (2011). «Руководство исследователя по потоку данных: запрос к научной базе данных всего за несколько секунд». PVLDB: проблемы и перспективы.
  • Керстен, М; Чжан, Инь; Иванова, Милена; Нес, Нильс (2011). SciQL, язык запросов для научных приложений. ACM. С. 1–12.
  • Сидирургос, Лефтерис; Керстен, Мартин; Бонц, Питер (2011). «SciBORQ: Управление научными данными с ограничениями по времени выполнения и качеству». Creative Commons. Цитировать журнал требует | журнал = (помощь)
  • Лиару, Эриетта; Идреос, Стратос; Манегольд, Стефан; Керстен, Мартин (2012). «MonetDB / DataCell: онлайн-аналитика в потоковом хранилище столбцов». Труды эндаумента VLDB. 5 (12): 1910–1913. Дои:10.14778/2367502.2367535. S2CID  545154.
  • Иванова, Милена; Керстен, Мартин; Манегольд, Стефан (2012). Хранилища данных: симбиоз между технологией баз данных и репозиториями научных файлов. Springer Berlin Heidelberg. С. 485–494.
  • Каргин, Ягиз; Иванова, Милена; Чжан, Инь; Манегольд, Стефан; Керстен, Мартин (август 2013 г.). «Ленивый ETL в действии: технология ETL датирует научные данные». Труды эндаумента VLDB. 6 (12). С. 1286–1289. Дои:10.14778/2536274.2536297. ISSN  2150-8097.
  • Сидирургос, Лефтерис и Керстен, Мартин (2013). «Отпечатки столбцов: структура вторичного индекса». Материалы международной конференции 2013 г. по управлению данными. ACM. С. 893–904.
  • Иванова, Милена; Каргин, Ягиз; Керстен, Мартин; Манегольд, Стефан; Чжан, Инь; Датку, Михай; Молина, Даниэла Эспиноза (2013). «Хранилища данных: база данных - добро пожаловать в хранилища научных файлов». SSDBM. ACM. Дои:10.1145/2484838.2484876. ISBN  978-1-4503-1921-8.

внешняя ссылка

Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.