MonetDB
Deweloperzy | MonetDB BV |
---|---|
Wersja stabilna | wrzesień 2022-SP2 / 31 stycznia 2023
|
Magazyn | |
Napisane w | C |
System operacyjny | Międzyplatformowe |
Typ |
Zorientowany na kolumny DBMS RDBMS |
Licencja | Licencja publiczna Mozilli , wersja 2.0 |
Strona internetowa |
MonetDB to oparty na kolumnach system zarządzania relacyjnymi bazami danych (RDBMS) o otwartym kodzie źródłowym, pierwotnie opracowany w Centrum Wiskunde & Informatica (CWI) w Holandii . Został zaprojektowany w celu zapewnienia wysokiej wydajności złożonych zapytań w dużych bazach danych, takich jak łączenie tabel z setkami kolumn i milionami wierszy. MonetDB został zastosowany w wysokowydajnych aplikacjach do przetwarzania analitycznego online , eksploracji danych , systemu informacji geograficznej (GIS), Struktura opisu zasobów (RDF), wyszukiwanie tekstu i przetwarzanie dopasowywania sekwencji .
Historia
Projekty eksploracji danych w latach 90. wymagały ulepszonej obsługi analitycznych baz danych. Doprowadziło to do powstania spin-offu CWI o nazwie Data Distilleries, który wykorzystywał wczesne implementacje MonetDB w swoim pakiecie analitycznym. Data Distilleries ostatecznie stała się spółką zależną SPSS w 2003 roku, która z kolei została przejęta przez IBM w 2009 roku.
MonetDB w obecnej postaci został po raz pierwszy stworzony w 2002 roku przez doktoranta Petera Boncza i profesora Martina L. Kerstena w ramach projektu badawczego MAGNUM z lat 90. na Uniwersytecie w Amsterdamie . Początkowo nazywano go po prostu Monet, na cześć francuskiego malarza impresjonisty Claude'a Moneta . Pierwsza wersja na oprogramowania open source (zmodyfikowana wersja licencji Mozilla Public License ) został wydany 30 września 2004 r. Kiedy MonetDB w wersji 4 został wydany w domenie open source, zespół MonetDB / CWI dodał wiele rozszerzeń do bazy kodu, w tym nowy interfejs SQL, obsługujący standard SQL : 2003 .
MonetDB wprowadził innowacje we wszystkich warstwach DBMS : model przechowywania oparty na fragmentacji pionowej, nowoczesną architekturę wykonywania zapytań dostosowaną do procesora , która często dawała MonetDB przewagę szybkości nad tym samym algorytmem w porównaniu z typowym RDBMS opartym na interpretatorze . Był to jeden z pierwszych systemów bazodanowych, który dostroił optymalizację zapytań pod kątem pamięci podręcznych procesora . MonetDB zawiera automatyczne i samodostrajające się indeksy, optymalizację zapytań w czasie wykonywania oraz modułową architekturę oprogramowania.
Do 2008 roku rozpoczął się kolejny projekt o nazwie X100 (MonetDB/X100), który przekształcił się w technologię VectorWise . VectorWise został przejęty przez Actian Corporation , zintegrowany z bazą danych Ingres i sprzedawany jako produkt komercyjny.
W 2011 roku rozpoczęto poważny wysiłek mający na celu odnowienie bazy kodu MonetDB. W jej ramach zamrożony został kod jądra MonetDB 4 oraz jego komponenty XQuery. W MonetDB 5 części warstwy SQL zostały wepchnięte do jądra. Wynikające z tego zmiany spowodowały różnicę w wewnętrznych interfejsach API , ponieważ przejście z języka instrukcji MonetDB (MIL) do języka asemblera MonetDB (MAL). Usunięto również starsze, nieobsługiwane już interfejsy zapytań najwyższego poziomu. Pierwszym był XQuery , który opierał się na MonetDB 4 i nigdy nie został przeniesiony do wersji 5. Eksperymentalny Jaql obsługa interfejsu została usunięta wraz z wydaniem z października 2014 r. Wraz z wydaniem z lipca 2015 r. MonetDB zyskał wsparcie dla dzielenia danych tylko do odczytu i trwałych indeksów. W tej wersji przestarzały moduł danych strumieniowych DataCell został również usunięty z głównej bazy kodu w celu usprawnienia kodu. Dodatkowo licencja została zmieniona na Mozilla Public License w wersji 2.0 .
Architektura
Architektura MonetDB jest reprezentowana w trzech warstwach, z których każda ma własny zestaw optymalizatorów. Front-end to warstwa wierzchnia, zapewniająca interfejs zapytań dla SQL , z interfejsami SciQL i SPARQL w fazie rozwoju. Zapytania są przetwarzane na reprezentacje specyficzne dla domeny, takie jak algebra relacyjna dla języka SQL, i optymalizowane. Wygenerowane logiczne plany wykonania są następnie tłumaczone na instrukcje MonetDB Assembly Language (MAL), które są przekazywane do następnej warstwy. Warstwa środkowa lub zaplecza zapewnia szereg optymalizatorów opartych na kosztach dla MAL. Dolna warstwa to jądro bazy danych, które zapewnia dostęp do danych przechowywanych w Binary Association Tables (BAT). Każdy BAT jest tabelą składającą się z kolumny Identyfikator obiektu i wartości, reprezentujących pojedynczą kolumnę w bazie danych.
Wewnętrzna reprezentacja danych MonetDB opiera się również na zakresach adresowania pamięci współczesnych procesorów wykorzystujących stronicowanie na żądanie plików mapowanych w pamięci, a tym samym odchodząc od tradycyjnych projektów DBMS obejmujących kompleksowe zarządzanie dużymi magazynami danych w ograniczonej pamięci.
Recykling zapytań
Recykling zapytań to architektura służąca do ponownego wykorzystania produktów ubocznych paradygmatu operator-at-a-time w systemie DBMS magazynu kolumn. Recykling wykorzystuje ogólną ideę przechowywania i ponownego wykorzystywania wyników kosztownych obliczeń. W przeciwieństwie do pamięci podręcznych instrukcji niskiego poziomu, recykling zapytań wykorzystuje optymalizator do wstępnego wyboru instrukcji do buforowania. Technika ta ma na celu skrócenie czasu odpowiedzi na zapytanie i przepustowość, a jednocześnie działa w sposób samoorganizujący się. Autorzy z CWI Database Architectures, w skład której wchodzą Milena Ivanova, Martin Kersten , Niels Nes i Romulo Goncalves, zdobyli tytuł „Best Paper runner Up” na Konferencja ACM SIGMOD 2009 za ich pracę nad Query Recycling.
Łamanie bazy danych
MonetDB była jedną z pierwszych baz danych, która wprowadziła łamanie baz danych. Łamanie bazy danych to przyrostowe częściowe indeksowanie i/lub sortowanie danych. Bezpośrednio wykorzystuje kolumnowy charakter MonetDB. Cracking to technika, która przenosi koszty utrzymania indeksu z aktualizacji na przetwarzanie zapytań. Optymalizatory potoku zapytań służą do masowania planów zapytań w celu złamania i propagowania tych informacji. Technika ta pozwala na poprawę czasów dostępu i zachowanie samoorganizacji. Database Cracking otrzymał ACM SIGMOD 2011 J.Gray za najlepszą pracę doktorską.
składniki
Istnieje wiele rozszerzeń dla MonetDB, które rozszerzają funkcjonalność silnika bazy danych. Ze względu na trójwarstwową architekturę interfejsy zapytań najwyższego poziomu mogą korzystać z optymalizacji dokonanych w warstwach zaplecza i jądra.
SQL
MonetDB/SQL to rozszerzenie najwyższego poziomu, które zapewnia pełną obsługę transakcji zgodnie ze standardem SQL:2003 .
GIS
MonetDB/GIS jest rozszerzeniem MonetDB/SQL z obsługą standardu Simple Features Access firmy Open Geospatial Consortium (OGC).
SciQL
SciQL oparty na SQL język zapytań do zastosowań naukowych z tablicami jako obywatelami pierwszej klasy. SciQL pozwala MonetDB skutecznie funkcjonować jako macierzowa baza danych . SciQL jest wykorzystywany w Unii Europejskiej PlanetData i TELEIOS wraz z technologią Data Vault, zapewniając przejrzysty dostęp do dużych repozytoriów danych naukowych. Magazyny danych odwzorowują dane z rozproszonych repozytoriów na tablice SciQL, umożliwiając lepszą obsługę czasoprzestrzennych w MonetDB. SciQL będzie dalej rozszerzany dla Human Brain Project .
Magazyny danych
Data Vault to dołączone do bazy danych zewnętrzne repozytorium plików dla MonetDB, podobne do standardu SQL/MED . Technologia Data Vault pozwala na przejrzystą integrację z rozproszonymi/zdalnymi repozytoriami plików. Jest przeznaczony do eksploracji i eksploracji danych naukowych , w szczególności danych teledetekcyjnych . Istnieje wsparcie dla GeoTIFF ( obserwacja Ziemi ), FITS ( astronomia ), MiniSEED ( sejsmologia ) i NetCDF formaty. Dane są przechowywane w repozytorium plików w oryginalnym formacie i ładowane do bazy danych w sposób leniwy , tylko w razie potrzeby. System może również przetwarzać dane po ich spożyciu, jeśli wymaga tego format danych. Dzięki temu nawet bardzo duże repozytoria plików mogą być efektywnie analizowane, ponieważ w bazie danych przetwarzane są tylko wymagane dane. Dostęp do danych można uzyskać za pośrednictwem interfejsów MonetDB SQL lub SciQL. Technologia Data Vault została wykorzystana w unijnym projekcie TELEIOS , którego celem była budowa wirtualnego obserwatorium dla danych z obserwacji Ziemi. Magazyny danych dla plików FITS zostały również wykorzystane do przetwarzania z badań astronomicznych dla The INT Photometric H-Alpha Survey (IPHAS)
SAM/BAM
MonetDB posiada moduł SAM/BAM do wydajnego przetwarzania danych dotyczących dopasowania sekwencji . Przeznaczony do bioinformatycznych moduł posiada moduł ładujący dane SAM/BAM oraz zestaw UDF SQL do pracy z danymi DNA . Moduł wykorzystuje popularną SAMtools .
RDF/SPARQL
MonetDB/RDF to oparte na SPARQL rozszerzenie do pracy z połączonymi danymi, które dodaje obsługę RDF i umożliwia MonetDB działanie jako triplestore . W trakcie opracowywania dla Linked Open Data 2 .
Integracja języka R
MonetDB/R pozwala na wykonywanie funkcji UDF napisanych w języku R w warstwie SQL systemu. Odbywa się to przy użyciu natywnej obsługi R do uruchamiania osadzonego w innej aplikacji, w tym przypadku wewnątrz RDBMS. Wcześniej MonetDB.R umożliwiało korzystanie ze źródeł danych MonetDB i przetwarzanie ich w sesji R. Nowsza funkcja integracji R w MonetDB nie wymaga przesyłania danych między RDBMS a sesją R, co zmniejsza obciążenie i poprawia wydajność. Funkcjonalność ma na celu zapewnienie użytkownikom dostępu do funkcji oprogramowania statystycznego R w celu analizy in-line danych przechowywanych w RDBMS. Uzupełnia istniejące wsparcie dla C UDF i jest przeznaczony do przetwarzania w bazie danych .
Integracja z Pythonem
Podobnie jak wbudowane R UDF w MonetDB, baza danych obsługuje teraz UDF napisane w Pythonie / NumPy . Implementacja wykorzystuje tablice Numpy (same opakowania Pythona dla tablic C), w wyniku czego istnieje ograniczony narzut - zapewniając funkcjonalną integrację Pythona z natywnymi funkcjami SQL dopasowującymi prędkość. Funkcje Embedded Python obsługują również operacje mapowane, umożliwiając użytkownikowi równoległe wykonywanie funkcji Pythona w ramach zapytań SQL. Praktyczna strona tej funkcji daje użytkownikom dostęp do bibliotek Python/NumPy/ SciPy , które mogą zapewnić duży wybór funkcji statystycznych/analitycznych.
MonetDBLite
Po wydaniu zdalnego sterownika dla R ( MonetDB.R ) i R UDF w MonetDB (MonetDB/R), autorzy stworzyli osadzoną wersję MonetDB w R o nazwie MonetDBLite . Jest dystrybuowany jako pakiet R, co eliminuje konieczność zarządzania serwerem bazy danych, wymaganym do poprzednich integracji R. DBMS działa w ramach samego procesu R, eliminując narzut związany z komunikacją gniazd i serializacją - znacznie poprawiając wydajność. Ideą jest dostarczenie SQLite dla R, z wydajnością zoptymalizowanego magazynu kolumnowego w pamięci.
Dawne rozszerzenia
Z biegiem czasu wiele wcześniejszych rozszerzeń zostało wycofanych i usuniętych ze stabilnej bazy kodu. Niektóre godne uwagi przykłady obejmują XQuery usunięte w wersji 5 MonetDB; rozszerzenie JAQL i rozszerzenie danych strumieniowych o nazwie Data Cell .
Zobacz też
- Lista systemów zarządzania relacyjnymi bazami danych
- Porównanie systemów zarządzania relacyjnymi bazami danych
- System zarządzania bazą danych
- DBMS zorientowany na kolumny
- Tablicowy DBMS
Bibliografia
- Boncz, Piotr; Manegold, Stefan; Kersten, Martin (1999). Architektura bazy danych zoptymalizowana pod kątem nowego wąskiego gardła: dostęp do pamięci . Materiały z Międzynarodowej Konferencji na temat bardzo dużych baz danych . s. 54–65.
- Schmidt, Albrecht; Kersten, Martin; Windhouwer, Menzo; Waas, Florian (2001). „Wydajne relacyjne przechowywanie i pobieranie dokumentów XML” . World Wide Web i bazy danych . Notatki z wykładów z informatyki. Skoczek. 1997 : 137–150. doi : 10.1007/3-540-45271-0_9 . ISBN 978-3-540-41826-9 .
- Idreos, Stratos; Kersten, Martin L.; Manegogold, Stefan (2007). Łamanie bazy danych . Postępowanie CIDR .
- Boncz, Piotr A; Kersten, Martin L; Manegogold, Stefan (2008). „Przełamywanie ściany pamięci w MonetDB” . Komunikaty ACM . ACM. 51 (12): 77–85. doi : 10.1145/1409360.1409380 . S2CID 5633935 .
- Sidirourgos, Lefteris; Goncalves, Romulo; Kersten, Martin; Nes, Niels; Manegogold, Stefan (2008). „Obsługa magazynu kolumn do zarządzania danymi RDF: nie wszystkie łabędzie są białe” . Postępowanie fundacji VLDB . 1 (2): 1553–1563. doi : 10.14778/1454159.1454227 .
- Iwanowa, Milena G.; Kersten, Martin L.; Nes, Niels J.; Goncalves, Romulo AP (2009). „Architektura recyklingu półproduktów w sklepie kolumnowym”. Materiały z Międzynarodowej Konferencji ACM SIGMOD 2009 na temat zarządzania danymi . SIGMOD '09. ACM. s. 309–320. doi : 10.1145/1559845.1559879 . ISBN 978-1-60558-551-2 .
- Manegold, Stefan; Boncz, Peter A.; Kersten, Martin L. (grudzień 2000). „Optymalizacja architektury bazy danych pod kątem nowego wąskiego gardła: dostęp do pamięci” . Dziennik VLDB . Springer-Verlag Nowy Jork, Inc. 9 (3): 231–246. doi : 10.1007/s007780000031 . ISSN 1066-8888 . S2CID 1688757 .
- Iwanowa, Milena G; Kersten, Martin L.; Nes, Niels J; Goncalves, Romulo AP (2010). „Architektura recyklingu półproduktów w magazynie kolumnowym” . Transakcje ACM w systemach baz danych . ACM. 35 (4): 24. doi : 10.1145/1862919.1862921 . S2CID 52811192 .
- Goncalves, Romulo i Kersten, Martin (2011). „Schemat przetwarzania zapytań cyklotronowych danych” . Transakcje ACM w systemach baz danych . ACM. 36 (4): 27. doi : 10.1145/2043652.2043660 . S2CID 6707515 .
- Kersten, Martin L.; Idreos, Stratos; Manegold, Stefan; Liarou, Erietta (2011). „Przewodnik naukowca po zalewu danych: przeszukiwanie naukowej bazy danych w zaledwie kilka sekund” . Wyzwania i wizje PVLDB .
- Kersten, M; Zhang, Ying; Iwanowa, Milena; Nes, Niels (2011). „SciQL, język zapytań do zastosowań naukowych”. Materiały z warsztatów EDBT/ICDT 2011 na temat baz danych macierzowych . ACM. s. 1–12.
-
Sidirourgos, Lefteris; Kersten, Martin; Boncz, Piotr (2011). „SciBORQ: zarządzanie danymi naukowymi z ograniczeniami czasu działania i jakości” . Creative Commons.
{{ cite journal }}
: Cite journal wymaga|journal=
( pomoc ) - Liarou, Erietta; Idreos, Stratos; Manegold, Stefan; Kersten, Martin (2012). „MonetDB/DataCell: analityka online w strumieniowym sklepie z kolumnami” . Postępowanie fundacji VLDB . 5 (12): 1910–1913. doi : 10.14778/2367502.2367535 . S2CID 545154 .
- Iwanowa, Milena; Kersten, Martin; Manegogold, Stefan (2012). „Skarbce danych: symbioza między technologią baz danych a repozytoriami plików naukowych”. Zarządzanie naukowymi i statystycznymi bazami danych . SSDBM 2012. Springer Berlin Heidelberg. s. 485–494.
- Kargin, Yagiz; Iwanowa, Milena; Zhang, Ying; Manegold, Stefan; Kersten, Martin (sierpień 2013). „Leniwy ETL w akcji: Daty technologii ETL Dane naukowe” (PDF) . Postępowanie fundacji VLDB . 6 (12): 1286–1289. doi : 10.14778/2536274.2536297 . ISSN 2150-8097 .
- Sidirourgos, Lefteris i Kersten, Martin (2013). „Odciski kolumn: drugorzędna struktura indeksu”. Materiały z międzynarodowej konferencji poświęconej zarządzaniu danymi w 2013 roku . ACM. s. 893–904.
- Iwanowa, Milena; Kargin, Yagiz; Kersten, Martin; Manegold, Stefan; Zhang, Ying; Datcu, Mihai; Molina, Daniela Espinoza (2013). „Skarbce danych: baza danych Witamy w repozytoriach plików naukowych” . Materiały z 25. Międzynarodowej Konferencji Naukowego i Statystycznego Zarządzania Bazami Danych . SSDBM. ACM. doi : 10.1145/2484838.2484876 . ISBN 978-1-4503-1921-8 .
Linki zewnętrzne
- Oficjalna strona główna MonetDB
- MonetDB Solutions - firma świadcząca profesjonalne usługi MonetDB
- Grupa Architektury Baz Danych w CWI - pierwotni twórcy MonetDB
- Lista projektów naukowych wykorzystujących MonetDB
- MonetDB.R — łącznik MonetDB do R
- Produkty z dużymi danymi
- Systemy zarządzania bazami danych klient-serwer
- Zorientowane na kolumny oprogramowanie DBMS dla systemu Linux
- Bezpłatne oprogramowanie międzyplatformowe
- Oprogramowanie wieloplatformowe
- Produkty do przechowywania danych
- Silniki baz danych
- Darmowe systemy zarządzania bazami danych
- Wolne oprogramowanie zaprogramowane w C
- Produkty wprowadzone w 2004 roku
- Systemy zarządzania relacyjnymi bazami danych
- Ustrukturyzowane przechowywanie