MonetDB
Utvecklare | MonetDB BV |
---|---|
Stabil frisättning | Sep2022-SP2 / 31 januari 2023
|
Förvar | |
Skrivet i | C |
Operativ system | Cross-plattform |
Typ |
Kolumnorienterad DBMS RDBMS |
Licens | Mozilla Public License , version 2.0 |
Hemsida |
MonetDB är ett kolumnorienterat relationsdatabashanteringssystem (RDBMS) med öppen källkod som ursprungligen utvecklades vid Centrum Wiskunde & Informatica (CWI) i Nederländerna . Den är utformad för att ge hög prestanda på komplexa frågor mot stora databaser, som att kombinera tabeller med hundratals kolumner och miljontals rader. MonetDB har använts i högpresterande applikationer för analytisk bearbetning online , datautvinning , geografiska informationssystem (GIS), Resource Description Framework (RDF), texthämtning och sekvensjustering .
Historia
Datautvinningsprojekt på 1990-talet krävde förbättrat stöd för analytiska databaser. Detta resulterade i en CWI- spin-off kallad Data Distilleries, som använde tidiga MonetDB-implementationer i sin analytiska svit. Data Distilleries blev så småningom ett dotterbolag till SPSS 2003, som i sin tur förvärvades av IBM 2009.
MonetDB i sin nuvarande form skapades först 2002 av doktoranden Peter Boncz och professor Martin L. Kersten som en del av 1990-talets MAGNUM-forskningsprojekt vid University of Amsterdam . Det kallades ursprungligen helt enkelt Monet, efter den franske impressionistiska målaren Claude Monet . Den första versionen under en mjukvarulicens med öppen källkod (en modifierad version av Mozilla Public License ) släpptes den 30 september 2004. När MonetDB version 4 släpptes till domänen med öppen källkod lades många tillägg till kodbasen till av MonetDB/CWI-teamet, inklusive ett nytt SQL-gränssnitt, som stöder SQL:2003 -standarden.
MonetDB introducerade innovationer i alla lager av DBMS : en lagringsmodell baserad på vertikal fragmentering, en modern CPU -avstämd arkitektur för exekvering av frågor som ofta gav MonetDB en hastighetsfördel jämfört med samma algoritm jämfört med en typisk tolkbaserad RDBMS . Det var ett av de första databassystemen som justerade frågeoptimering för CPU-cacher . MonetDB inkluderar automatiska och självjusterande index, optimering av körtidsfrågor och en modulär mjukvaruarkitektur.
År 2008 startade ett uppföljningsprojekt kallat X100 (MonetDB/X100), som utvecklades till VectorWise -tekniken. VectorWise förvärvades av Actian Corporation , integrerades med Ingres-databasen och såldes som en kommersiell produkt.
Under 2011 påbörjades ett stort arbete för att renovera MonetDB-kodbasen. Som en del av det frystes koden för MonetDB 4-kärnan och dess XQuery-komponenter. I MonetDB 5 trycktes delar av SQL-lagret in i kärnan. De resulterande ändringarna skapade en skillnad i interna API:er , eftersom det övergick från MonetDB Instruction Language (MIL) till MonetDB Assembly Language (MAL). Äldre, inte längre underhållna frågegränssnitt på toppnivå togs också bort. Först var XQuery , som förlitade sig på MonetDB 4 och aldrig portades till version 5. Det experimentella Jaql- gränssnittsstödet togs bort med oktober 2014-utgåvan. Med releasen i juli 2015 fick MonetDB stöd för skrivskyddad datadelning och beständiga index. I den här utgåvan togs även den utfasade strömmande datamodulen DataCell bort från huvudkodbasen i ett försök att effektivisera koden. Dessutom har licensen ändrats till Mozilla Public License, version 2.0 .
Arkitektur
MonetDB-arkitekturen är representerad i tre lager, var och en med sin egen uppsättning optimerare. Gränssnittet är det översta lagret och tillhandahåller frågegränssnitt för SQL , med SciQL- och SPARQL -gränssnitt under utveckling. Frågor analyseras till domänspecifika representationer, som relationalgebra för SQL, och optimeras. De genererade logiska exekveringsplanerna översätts sedan till MonetDB Assembly Language-instruktioner (MAL), som skickas till nästa lager. Mellan- eller back-end-lagret tillhandahåller ett antal kostnadsbaserade optimerare för MAL. Det nedre lagret är databaskärnan, som ger tillgång till data som lagras i Binary Association Tables (BAT). Varje BAT är en tabell som består av en objektidentifierare och värdekolumner, som representerar en enda kolumn i databasen.
MonetDBs interna datarepresentation förlitar sig också på minnesadresseringsområdena för samtida CPU: er som använder efterfrågesökning av minnesmappade filer, och avviker således från traditionella DBMS-designer som involverar komplex hantering av stora datalager i begränsat minne.
Fråga Återvinning
Frågeåtervinning är en arkitektur för att återanvända biprodukterna från paradigmet för operatörer i taget i ett kolumnlager DBMS. Återvinning använder sig av den generiska idén att lagra och återanvända resultaten av dyra beräkningar. Till skillnad från instruktionscacher på låg nivå använder återvinning av frågor en optimerare för att förvälja instruktioner som ska cachelagras. Tekniken är utformad för att förbättra frågors svarstider och genomströmning, samtidigt som den arbetar på ett självorganiserande sätt. Författarna från CWI Database Architectures, som består av Milena Ivanova, Martin Kersten , Niels Nes och Romulo Goncalves, vann "Best Paper Runner Up" på ACM SIGMOD 2009-konferensen för sitt arbete med Query Recycling.
Databassprickning
MonetDB var en av de första databaserna som introducerade Database Cracking. Databascracking är en inkrementell partiell indexering och/eller sortering av data. Den utnyttjar direkt den kolumnära karaktären hos MonetDB. Cracking är en teknik som flyttar kostnaden för indexunderhåll från uppdateringar till frågebehandling. Frågepipeline-optimerarna används för att massera frågeplanerna att spricka och för att sprida denna information. Tekniken möjliggör förbättrade åtkomsttider och självorganiserat beteende. Database Cracking fick ACM SIGMOD 2011 J.Gray pris för bästa avhandling.
Komponenter
Det finns ett antal tillägg för MonetDB som utökar databasmotorns funktionalitet. På grund av arkitekturen med tre lager kan frågegränssnitt på toppnivå dra nytta av optimeringar som görs i backend- och kärnlagren.
SQL
MonetDB/SQL är ett tillägg på toppnivå, som ger komplett stöd för transaktioner i enlighet med SQL:2003- standarden.
GIS
MonetDB/GIS är ett tillägg till MonetDB/SQL med stöd för Simple Features Access- standarden för Open Geospatial Consortium (OGC).
SciQL
SciQL ett SQL-baserat frågespråk för naturvetenskapliga applikationer med arrayer som förstklassiga medborgare. SciQL tillåter MonetDB att effektivt fungera som en arraydatabas . SciQL används i European Union PlanetData och TELEIOS -projektet, tillsammans med Data Vault-tekniken, vilket ger transparent åtkomst till stora vetenskapliga datalager. Datavalv mappar data från de distribuerade arkiven till SciQL-arrayer, vilket möjliggör förbättrad hantering av rums- och tidsdata i MonetDB. SciQL kommer att utökas ytterligare för Human Brain Project .
Datavalv
Data Vault är ett databasbifogat externt filarkiv för MonetDB, liknande SQL/MED- standarden. Data Vault-tekniken möjliggör transparent integration med distribuerade/fjärranslutna filarkiv. Den är designad för utforskning och gruvdrift av vetenskapliga data , speciellt för fjärranalysdata . Det finns stöd för formaten GeoTIFF ( jordobservation ), FITS ( astronomi ), MiniSEED ( seismologi ) och NetCDF . Data lagras i filarkivet i originalformatet och laddas i databasen på ett lat sätt, bara när det behövs. Systemet kan också bearbeta data vid intag, om dataformatet kräver det. Som ett resultat kan även mycket stora filarkiv analyseras effektivt, eftersom endast den data som krävs bearbetas i databasen. Datan kan nås via antingen MonetDB SQL- eller SciQL-gränssnitt. Data Vault-tekniken användes i Europeiska unionens TELEIOS- projekt , som syftade till att bygga ett virtuellt observatorium för jordobservationsdata. Datavalv för FITS-filer har också använts för att bearbeta astronomiska undersökningsdata för INT Photometric H-Alpha Survey ( IPHAS)
SAM/BAM
MonetDB har en SAM/BAM- modul för effektiv bearbetning av sekvensanpassningsdata . Inriktad på bioinformatikforskningen har modulen en SAM/BAM-dataladdare och en uppsättning SQL UDF:er för att arbeta med DNA -data. Modulen använder det populära SAMtools- biblioteket.
RDF/SPARQL
MonetDB/RDF är ett SPARQL -baserat tillägg för att arbeta med länkad data, som lägger till stöd för RDF och tillåter MonetDB att fungera som en trippelbutik . Under utveckling för Linked Open Data 2- projektet.
R integration
MonetDB/R -modulen gör att UDF:er skrivna i R kan exekveras i systemets SQL-lager. Detta görs med det inbyggda R-stödet för att köra inbäddat i en annan applikation, i RDBMS i detta fall. Tidigare MonetDB.R -anslutningen att använda MonetDB-datakällor och bearbeta dem i en R-session. Den nyare R-integreringsfunktionen i MonetDB kräver inte att data överförs mellan RDBMS och R-sessionen, vilket minskar overhead och förbättrar prestandan. Funktionen är avsedd att ge användare tillgång till funktionerna i R statistisk programvara för in-line analys av data lagrad i RDBMS. Det kompletterar det befintliga stödet för C UDF och är avsett att användas för bearbetning i databasen .
Python integration
På samma sätt som de inbäddade R UDF:erna i MonetDB, har databasen nu stöd för UDF:er skrivna i Python / NumPy . Implementeringen använder Numpy-arrayer (själva Python-wrappers för C-arrayer), som ett resultat av det finns begränsad overhead - vilket ger en funktionell Python-integration med hastighetsmatchande inbyggda SQL-funktioner. Embedded Python-funktionerna stöder också mappade operationer, vilket gör att användaren kan utföra Python-funktioner parallellt i SQL-frågor. Den praktiska sidan av funktionen ger användarna tillgång till Python/NumPy/ SciPy -bibliotek, som kan tillhandahålla ett stort urval av statistiska/analytiska funktioner.
MonetDBLite
Efter lanseringen av fjärrdrivrutin för R ( MonetDB.R ) och R UDF i MonetDB (MonetDB/R), skapade författarna en inbäddad version av MonetDB i R som heter MonetDBLite . Det distribueras som ett R-paket, vilket tar bort behovet av att hantera en databasserver, som krävs för de tidigare R-integreringarna. DBMS körs inom själva R-processen, vilket eliminerar socketkommunikation och serialiseringsoverhead - vilket avsevärt förbättrar effektiviteten. Tanken bakom det är att leverera ett SQLite -liknande paket för R, med prestanda av en minnesoptimerad kolumnbutik.
Tidigare förlängningar
Ett antal tidigare tillägg har fasats ut och tagits bort från den stabila kodbasen med tiden. Några anmärkningsvärda exempel inkluderar en XQuery -tillägg borttagen i MonetDB version 5; ett JAQL- tillägg och ett strömmande datatillägg som heter Data Cell .
Se även
- Lista över relationsdatabashanteringssystem
- Jämförelse av relationsdatabashanteringssystem
- Databashanteringssystem
- Kolumnorienterad DBMS
- Array DBMS
Bibliografi
- Boncz, Peter; Manegold, Stefan; Kersten, Martin (1999). Databasarkitektur optimerad för den nya flaskhalsen: Minnesåtkomst . Proceedings of International Conference on Very Large Databases . s. 54–65.
- Schmidt, Albrecht; Kersten, Martin; Windhouwer, Menzo; Waas, Florian (2001). "Effektiv relationslagring och hämtning av XML-dokument" . World Wide Web och databaser . Föreläsningsanteckningar i datavetenskap. Springer. 1997 : 137–150. doi : 10.1007/3-540-45271-0_9 . ISBN 978-3-540-41826-9 .
- Idreos, Stratos; Kersten, Martin L; Manegold, Stefan (2007). Databasknäckning . CIDR:s förfarande .
- Boncz, Peter A; Kersten, Martin L; Manegold, Stefan (2008). "Att bryta minnesväggen i MonetDB" . Kommunikation från ACM . ACM. 51 (12): 77–85. doi : 10.1145/1409360.1409380 . S2CID 5633935 .
- Sidirourgos, Lefteris; Goncalves, Romulo; Kersten, Martin; Nes, Niels; Manegold, Stefan (2008). "Stöd för kolumnlager för RDF-datahantering: alla svanar är inte vita". Handlingar av VLDB-fonden . 1 (2): 1553–1563. doi : 10.14778/1454159.1454227 .
- Ivanova, Milena G.; Kersten, Martin L.; Nes, Niels J.; Goncalves, Romulo AP (2009). "En arkitektur för återvinning av intermediärer i en kolumnbutik". Proceedings of 2009 ACM SIGMOD International Conference on Management of Data . 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. (dec 2000). "Optimera databasarkitektur för den nya flaskhalsen: Minnesåtkomst" . VLDB Journal . Springer-Verlag New York, Inc. 9 (3): 231–246. doi : 10.1007/s007780000031 . ISSN 1066-8888 . S2CID 1688757 .
- Ivanova, Milena G; Kersten, Martin L; Nes, Niels J; Goncalves, Romulo AP (2010). "En arkitektur för återvinning av mellanprodukter i en kolumnbutik" . ACM-transaktioner på databassystem . ACM. 35 (4): 24. doi : 10.1145/1862919.1862921 . S2CID 52811192 .
- Goncalves, Romulo & Kersten, Martin (2011). "Datacyklotronens frågebehandlingsschema" . ACM-transaktioner på databassystem . ACM. 36 (4): 27. doi : 10.1145/2043652.2043660 . S2CID 6707515 .
- Kersten, Martin L; Idreos, Stratos; Manegold, Stefan; Liarou, Erietta (2011). "Forskarens guide till datafloden: Fråga efter en vetenskaplig databas på bara några sekunder". PVLDB utmaningar och visioner .
- Kersten, M; Zhang, Ying; Ivanova, Milena; Nes, Niels (2011). "SciQL, ett frågespråk för naturvetenskapliga tillämpningar". Proceedings of the EDBT/ICDT 2011 Workshop on Array Databases . ACM. s. 1–12.
-
Sidirourgos, Lefteris; Kersten, Martin; Boncz, Peter (2011). "SciBORQ: Vetenskaplig datahantering med gränser för körtid och kvalitet". Creative Commons.
{{ citera journal }}
: Citera journal kräver|journal=
( hjälp ) - Liarou, Erietta; Idreos, Stratos; Manegold, Stefan; Kersten, Martin (2012). "MonetDB/DataCell: onlineanalys i en strömmande kolumnbutik" . Handlingar av VLDB-fonden . 5 (12): 1910–1913. doi : 10.14778/2367502.2367535 . S2CID 545154 .
- Ivanova, Milena; Kersten, Martin; Manegold, Stefan (2012). "Datavalv: en symbios mellan databasteknik och vetenskapliga filarkiv". Vetenskaplig och statistisk databashantering . SSDBM 2012. Springer Berlin Heidelberg. s. 485–494.
- Kargin, Yagiz; Ivanova, Milena; Zhang, Ying; Manegold, Stefan; Kersten, Martin (augusti 2013). "Lazy ETL in Action: ETL Technology Dates Scientific Data" (PDF) . Handlingar av VLDB-fonden . 6 (12): 1286–1289. doi : 10.14778/2536274.2536297 . ISSN 2150-8097 .
- Sidirourgos, Lefteris & Kersten, Martin (2013). "Kolumnavtryck: en sekundär indexstruktur". Proceedings of the 2013 international conference on Management of data . ACM. s. 893–904.
- Ivanova, Milena; Kargin, Yagiz; Kersten, Martin; Manegold, Stefan; Zhang, Ying; Datcu, Mihai; Molina, Daniela Espinoza (2013). "Data Vaults: A Database Welcome to Scientific File Repositories". Proceedings of the 25th International Conference on Scientific and Statistical Database Management . SSDBM. ACM. doi : 10.1145/2484838.2484876 . ISBN 978-1-4503-1921-8 .
externa länkar
- Officiell hemsida för MonetDB
- MonetDB Solutions - MonetDBs professionella tjänsteföretag
- Databasarkitekturgrupp på CWI - de ursprungliga utvecklarna av MonetDB
- Lista över vetenskapliga projekt som använder MonetDB
- MonetDB.R - MonetDB till R Connector
- Big data-produkter
- Databashanteringssystem för klient-server
- Kolumnorienterad DBMS-programvara för Linux
- Gratis programvara för flera plattformar
- Programvara för flera plattformar
- Data warehousing produkter
- Databasmotorer
- Gratis databashanteringssystem
- Gratis programvara programmerad i C
- Produkter som introducerades 2004
- Relationella databashanteringssystem
- Strukturerad förvaring