MonetDB - MonetDB

MonetDB
MonetDB logosu
Geliştirici(ler) MonetDB BV
kararlı sürüm
Tem2021-SP1 / 5 Ekim 2021 ( 2021-10-05 )
depo
Yazılmış C
İşletim sistemi Çapraz platform
Tip Sütun odaklı DBMS
RDBMS
Lisans Mozilla Kamu Lisansı , sürüm 2.0
İnternet sitesi www .monetdb .org

MonetDB , orijinal olarak Hollanda'daki Centrum Wiskunde & Informatica'da (CWI) geliştirilen açık kaynaklı bir sütun odaklı ilişkisel veritabanı yönetim sistemidir (RDBMS) . Yüzlerce sütun ve milyonlarca satır içeren tabloları birleştirmek gibi büyük veritabanlarına karşı karmaşık sorgularda yüksek performans sağlamak üzere tasarlanmıştır . MonetDB, çevrimiçi analitik işleme , veri madenciliği , coğrafi bilgi sistemi (GIS), Kaynak Tanımlama Çerçevesi (RDF), metin alma ve sıra hizalama işleme için yüksek performanslı uygulamalarda uygulanmıştır .

Tarih

Eski MonetDB logosu

1990'lardaki veri madenciliği projeleri, geliştirilmiş analitik veritabanı desteği gerektiriyordu. Bu , analitik paketinde erken MonetDB uygulamalarını kullanan Data Distilleries adlı bir CWI yan ürünü ile sonuçlandı . Data Distilleries sonunda 2003 yılında SPSS'nin bir yan kuruluşu oldu ve 2009'da IBM tarafından satın alındı .

Mevcut haliyle MonetDB ilk olarak 2002 yılında doktora öğrencisi Peter Boncz ve profesör Martin L. Kersten tarafından 1990'ların Amsterdam Üniversitesi'ndeki MAGNUM araştırma projesinin bir parçası olarak oluşturuldu . Başlangıçta Fransız empresyonist ressam Claude Monet'ten sonra basitçe Monet olarak adlandırıldı . Açık kaynak yazılım lisansı kapsamındaki ilk sürüm ( Mozilla Public License'ın değiştirilmiş bir sürümü ) 30 Eylül 2004'te yayınlandı. MonetDB sürüm 4 açık kaynak alanına yayınlandığında, kod tabanına birçok uzantı eklendi. SQL:2003 standardını destekleyen yeni bir SQL ön ucu dahil MonetDB/CWI ekibi .

MonetDB tüm katmanları yenilikler ortaya DBMS : dikey parçalanma dayalı bir depolama modeli, modern bir işlemci genellikle aynı üzerinde MonetDB bir hız avantaj sağladığını sorgu yürütme mimarisi -tuned algoritması tipik fazla yorumlayıcı tabanlı RDBMS . CPU önbellekleri için sorgu optimizasyonunu ayarlayan ilk veritabanı sistemlerinden biriydi . MonetDB, otomatik ve kendi kendini ayarlayan dizinler, çalışma zamanı sorgu optimizasyonu ve modüler bir yazılım mimarisi içerir.

2008 yılına gelindiğinde, VectorWise teknolojisine dönüşen X100 (MonetDB/X100) adlı bir devam projesi başladı . VectorWise, Actian Corporation tarafından satın alındı , Ingres veritabanına entegre edildi ve ticari bir ürün olarak satıldı.

2011 yılında MonetDB kod tabanını yenilemek için büyük bir çaba başlatıldı. Bunun bir parçası olarak, MonetDB 4 çekirdeğinin kodu ve XQuery bileşenleri donduruldu. MonetDB 5'te SQL katmanının bazı bölümleri çekirdeğe itiliyordu. Ortaya çıkan değişiklikler , MonetDB Talimat Dili'nden (MIL) MonetDB Montaj Dili'ne (MAL) geçtiği için dahili API'lerde bir fark yarattı . Daha eski, artık bakımı yapılmayan üst düzey sorgu arabirimleri de kaldırıldı. Birincisi, MonetDB 4'e dayanan ve hiçbir zaman sürüm 5'e taşınmayan XQuery idi. Deneysel Jaql arayüz desteği Ekim 2014 sürümüyle kaldırıldı. Temmuz 2015 sürümüyle birlikte MonetDB, salt okunur veri paylaşımı ve kalıcı dizinler için destek kazandı . Bu sürümde, kullanımdan kaldırılan akış veri modülü DataCell, kodu düzene sokmak amacıyla ana kod tabanından da kaldırıldı. Ayrıca, lisans Mozilla Public License, sürüm 2.0 olarak değiştirilmiştir .

Mimari

MonetDB mimarisi, her biri kendi optimize edici grubuna sahip üç katmanda temsil edilir. Ön uç, SQL için sorgu arabirimi sağlayan , SciQL ve SPARQL arabirimleri geliştirilmekte olan en üst katmandır . Sorgular, SQL için ilişkisel cebir gibi etki alanına özgü temsillere ayrıştırılır ve optimize edilir. Oluşturulan mantıksal yürütme planları daha sonra bir sonraki katmana geçirilen MonetDB Assembly Language (MAL) talimatlarına çevrilir. Orta veya arka uç katmanı, MAL için bir dizi maliyet tabanlı optimize edici sağlar. Alt katman, Binary Association Tables'ta (BAT'ler) depolanan verilere erişim sağlayan veritabanı çekirdeğidir. Her BAT, veritabanında tek bir sütunu temsil eden bir Nesne tanımlayıcısı ve değer sütunlarından oluşan bir tablodur.

MonetDB dahili veri gösterimi aynı zamanda bellek eşlemeli dosyaların talep sayfalamasını kullanan çağdaş CPU'ların bellek adresleme aralıklarına dayanır ve böylece sınırlı bellekteki büyük veri depolarının karmaşık yönetimini içeren geleneksel DBMS tasarımlarından ayrılır.

Sorgu Geri Dönüşümü

Sorgu geri dönüşümü, bir sütun deposu VTYS'sinde bir seferde operatör paradigmasının yan ürünlerini yeniden kullanmaya yönelik bir mimaridir. Geri dönüşüm, pahalı hesaplamaların sonuçlarını depolamak ve yeniden kullanmak şeklindeki genel fikri kullanır. Düşük seviyeli talimat önbelleklerinden farklı olarak, sorgu geri dönüşümü, önbelleğe alınacak talimatları önceden seçmek için bir iyileştirici kullanır. Teknik, kendi kendini organize eden bir şekilde çalışırken, sorgu yanıt sürelerini ve çıktıyı iyileştirmek için tasarlanmıştır. Milena Ivanova, Martin Kersten , Niels Nes ve Romulo Goncalves'ten oluşan CWI Veritabanı Mimarileri grubundan yazarlar , Sorgu Geri Dönüşümü konusundaki çalışmaları nedeniyle ACM SIGMOD 2009 konferansında "En İyi Kağıt İkinciliği" ödülünü kazandı .

Veritabanı Kırma

MonetDB, Database Cracking'i tanıtan ilk veritabanlarından biriydi. Veritabanı Kırma, verilerin artımlı bir kısmi indekslenmesi ve/veya sıralamasıdır. MonetDB'nin sütunlu yapısını doğrudan kullanır. Kırma, dizin bakım maliyetini güncellemelerden sorgu işlemeye kaydıran bir tekniktir. Sorgu hattı optimize edicileri, sorgu planlarını çatlatmak ve bu bilgiyi yaymak için masaj yapmak için kullanılır. Teknik, daha iyi erişim süreleri ve kendi kendine organize davranışa izin verir. Database Cracking, ACM SIGMOD 2011 J.Gray en iyi tez ödülünü aldı.

Bileşenler

MonetDB için veritabanı motorunun işlevselliğini artıran bir dizi uzantı mevcuttur. Üç katmanlı mimari sayesinde, üst düzey sorgu arayüzleri, arka uç ve çekirdek katmanlarında yapılan optimizasyonlardan yararlanabilir.

SQL

MonetDB/SQL, SQL:2003 standardına uygun işlemler için tam destek sağlayan üst düzey bir uzantıdır .

CBS

MonetDB/GIS, Open Geospatial Consortium'un (OGC) Simple Features Access standardını destekleyen MonetDB/SQL'in bir uzantısıdır .

SciQL

SciQL, birinci sınıf vatandaşlar olarak dizilere sahip bilim uygulamaları için SQL tabanlı bir sorgu dili. SciQL, MonetDB'nin bir dizi veritabanı olarak etkin bir şekilde çalışmasına izin verir . SciQL, Avrupa Birliği PlanetData ve TELEIOS projesinde Data Vault teknolojisi ile birlikte kullanılmakta ve büyük bilimsel veri havuzlarına şeffaf erişim sağlamaktadır. Veri Kasaları, dağıtılmış depolardan gelen verileri SciQL dizilerine eşleyerek MonetDB'de uzaysal-zamansal verilerin daha iyi işlenmesine olanak tanır. SciQL, İnsan Beyni Projesi için daha da genişletilecektir .

Veri Kasaları

Data Vault, SQL/MED standardına benzer şekilde MonetDB için veritabanına bağlı bir harici dosya deposudur . Data Vault teknolojisi, dağıtılmış/uzak dosya havuzlarıyla şeffaf entegrasyona izin verir. Bilimsel veriler için tasarlanmıştır veri araştırma ve madencilik için özel olarak, uzaktan algılama verileri. İçin destek var GeoTIFF ( Dünya gözlem ), uyan ( astronomi ), MiniSEED ( sismoloji ) ve NetCDF formatları. Veriler, dosya deposunda orijinal biçiminde saklanır ve veri tabanına yalnızca gerektiğinde tembel bir şekilde yüklenir . Sistem ayrıca, veri formatı gerektiriyorsa, verileri alındıktan sonra da işleyebilir. Sonuç olarak, veritabanında yalnızca gerekli veriler işlendiğinden, çok büyük dosya havuzları bile verimli bir şekilde analiz edilebilir. Verilere MonetDB SQL veya SciQL arayüzlerinden erişilebilir. Veri Vault teknolojisi kullanılmıştır Avrupa Birliği 'nin TELEIOS bir bina amaçlı olarak proje, sanal gözlemevi Yer gözlem verileri için. FITS dosyaları için Veri Kasaları, INT Fotometrik H-Alfa Araştırması (IPHAS) için astronomik araştırma verilerinin işlenmesi için de kullanılmıştır.

SAM/BAM

MonetDB, dizi hizalama verilerinin verimli işlenmesi için bir SAM/BAM modülüne sahiptir . Biyoinformatik araştırmasını hedefleyen modül, bir SAM/BAM veri yükleyicisine ve DNA verileriyle çalışmak için bir dizi SQL UDF'ye sahiptir . Modül, popüler SAMtools kitaplığını kullanır .

RDF/SPARQL

MonetDB / RDF olan SPARQL için destek ekler, bağlı veri ile çalışmak için merkezli uzantısı RDF bir şekilde işlev MonetDB ve izin TripleStore . Bağlantılı Açık Veri 2 projesi için geliştirme aşamasındadır .

R entegrasyonu

MonetDB/R modülü, R ile yazılan UDF'lerin sistemin SQL katmanında yürütülmesine izin verir . Bu, başka bir uygulamada, bu durumda RDBMS içinde gömülü çalıştırma için yerel R desteği kullanılarak yapılır. Daha önce MonetDB.R bağlayıcısı, MonetDB veri kaynaklarının kullanılmasına ve bunları bir R oturumunda işlemesine izin veriyordu. MonetDB'nin daha yeni R entegrasyon özelliği, RDBMS ile R oturumu arasında veri aktarımı gerektirmez, bu da ek yükü azaltır ve performansı artırır. Bu özellik, kullanıcılara RDBMS'de depolanan verilerin hat içi analizi için R istatistik yazılımının işlevlerine erişim sağlamayı amaçlamaktadır. C UDF'leri için mevcut desteği tamamlar ve veritabanı içi işleme için kullanılması amaçlanmıştır .

Python entegrasyonu

MonetDB'deki gömülü R UDF'lere benzer şekilde, veritabanı artık Python / NumPy ile yazılmış UDF'leri destekliyor . Uygulama, Numpy dizilerini (kendileri C dizileri için Python sarmalayıcıları) kullanır, sonuç olarak sınırlı ek yük vardır - yerel SQL işlevleriyle eşleşen hız ile işlevsel bir Python entegrasyonu sağlar. Gömülü Python işlevleri, eşlenmiş işlemleri de destekleyerek, kullanıcının Python işlevlerini SQL sorguları içinde paralel olarak yürütmesine olanak tanır. Özelliğinin pratik tarafı Python / NumPy / için kullanıcılara erişim verir scipy istatistiksel / analitik fonksiyonlar yelpazesi sağlayabilir kütüphaneler,.

MonetDBlite

MonetDB'de (MonetDB/R) R ( MonetDB.R ) ve R UDF'leri için uzak sürücünün yayınlanmasının ardından yazarlar, MonetDBlite adlı R'de MonetDB'nin gömülü bir sürümünü oluşturdular . Bir R paketi olarak dağıtılır, önceki R entegrasyonları için gerekli olan bir veritabanı sunucusunu yönetme ihtiyacını ortadan kaldırır. DBMS, R işleminin kendi içinde çalışarak soket iletişimini ve serileştirme ek yükünü ortadan kaldırarak verimliliği büyük ölçüde artırır. Bunun arkasındaki fikir , bellek içi optimize edilmiş sütunlu bir mağazanın performansıyla R için SQLite benzeri bir paket sunmaktır .

Eski uzantılar

Bir dizi eski uzantı, zaman içinde kullanımdan kaldırıldı ve kararlı kod tabanından kaldırıldı. Bazı dikkate değer örnekler , MonetDB sürüm 5'te kaldırılan bir XQuery uzantısını içerir ; bir JAQL uzantısı ve Data Cell adlı bir akış veri uzantısı .

Ayrıca bakınız

Referanslar

bibliyografya

  • Boncz, Peter; Manegold, Stefan; Kersten, Martin (1999). Yeni darboğaz için optimize edilmiş veritabanı mimarisi: Bellek erişimi . Uluslararası Çok Büyük Veri Tabanları Konferansı Tutanakları . s. 54–65.
  • Schmidt, Albrecht; Kersten, Martin; Windhouwer, Menzo; Waas, Florian (2001). "Verimli ilişkisel depolama ve XML belgelerinin alınması" . World Wide Web ve Veritabanları . Bilgisayar Bilimleri Ders Notları. Springer. 1997 : 137-150. doi : 10.1007/3-540-45271-0_9 . ISBN'si 978-3-540-41826-9.
  • İdreos, Stratos; Kersten, Martin L; Manegold, Stefan (2007). Veritabanı kırma . CIDR'nin Bildirileri .
  • Boncz, Peter A; Kersten, Martin L; Manegold, Stefan (2008). "MonetDB'de bellek duvarını kırmak" . ACM'nin İletişimi . ACM. 51 (12): 77-85. doi : 10.1145/1409360.1409380 . S2CID  5633935 .
  • Sidirourgos, Lefteris; Goncalves, Romulo; Kersten, Martin; Nes, Niels; Manegold, Stefan (2008). "RDF veri yönetimi için sütun deposu desteği: tüm kuğular beyaz değildir". VLDB Bağışının Bildirileri . 1 (2): 1553–1563. doi : 10.14778/1454159.1454227 .
  • Ivanova, Milena G.; Kersten, Martin L.; Nes, Niels J.; Goncalves, Romulo AP (2009). "Bir Sütun-mağazada Geri Dönüşüm Ara Maddeleri için Bir Mimari". 2009 ACM SIGMOD Uluslararası Veri Yönetimi Konferansı Tutanakları . SIGMOD '09. ACM. s. 309–320. doi : 10.1145/1559845.1559879 . ISBN'si 978-1-60558-551-2.
  • Manegold, Stefan; Boncz, Peter A.; Kersten, Martin L. (Aralık 2000). "Yeni Darboğaz için Veritabanı Mimarisini Optimize Etme: Bellek Erişimi" . VLDB Dergisi . 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). "Bir sütun deposunda ara maddelerin geri dönüşümü için bir mimari" . Veritabanı Sistemlerinde ACM İşlemleri . ACM. 35 (4): 24. doi : 10.1145/1862919.1862921 . S2CID  52811192 .
  • Goncalves, Romulo & Kersten, Martin (2011). "Veri siklotron sorgu işleme şeması" . Veritabanı Sistemlerinde ACM İşlemleri . ACM. 36 (4): 27. doi : 10.1145/2043652.2043660 .
  • Kersten, Martin L; İdreos, Stratos; Manegold, Stefan; Liarou, Erietta (2011). "Veri tufanı için araştırmacının kılavuzu: Bilimsel bir veritabanını sadece birkaç saniyede sorgulama". PVLDB Zorlukları ve Vizyonları .
  • Kersten, M; Zhang, Ying; Ivanova, Milena; Nes, Niels (2011). "SciQL, bilim uygulamaları için bir sorgulama dili". Dizi Veritabanları üzerine EDBT/ICDT 2011 Çalıştayının Tutanakları . ACM. s. 1–12.
  • Sidirourgos, Lefteris; Kersten, Martin; Boncz, Peter (2011). "SciBORQ: Çalışma Zamanı ve Kalite Sınırları ile Bilimsel veri yönetimi". Genel yaratıcı. Alıntı günlüğü gerektirir |journal=( yardım )
  • Liarou, Erietta; İdreos, Stratos; Manegold, Stefan; Kersten, Martin (2012). "MonetDB/DataCell: bir akış sütun deposunda çevrimiçi analitik" . VLDB Bağışının Bildirileri . 5 (12): 1910–1913. doi : 10.14778/2367502.2367535 . S2CID  545154 .
  • Ivanova, Milena; Kersten, Martin; Manegold, Stefan (2012). "Veri kasaları: veritabanı teknolojisi ve bilimsel dosya depoları arasında bir simbiyoz". Bilimsel ve İstatistiksel Veritabanı Yönetimi . SSDBM 2012. Springer Berlin Heidelberg. s. 485–494.
  • Kargın, Yağız; Ivanova, Milena; Zhang, Ying; Manegold, Stefan; Kersten, Martin (Ağustos 2013). "Tembel ETL İş Başında: ETL Teknolojisi Bilimsel Verileri Tarihlendiriyor". VLDB Bağış Tutanakları . 6 (12). s. 1286–1289. doi : 10.14778/2536274.2536297 . ISSN  2150-8097 .
  • Sidirourgos, Lefteris & Kersten, Martin (2013). "Sütun baskıları: ikincil bir dizin yapısı". 2013 uluslararası veri yönetimi konferansının bildirileri . ACM. s. 893–904.
  • Ivanova, Milena; Kargın, Yağız; Kersten, Martin; Manegold, Stefan; Zhang, Ying; Datçu, Mihai; Molina, Daniela Espinoza (2013). "Veri Kasaları: Bilimsel Dosya Depolarına Bir Veritabanı Hoş Geldiniz". 25. Uluslararası Bilimsel ve İstatistiksel Veritabanı Yönetimi Konferansı Tutanakları . SSDBM. ACM. doi : 10.1145/2484838.2484876 . ISBN'si 978-1-4503-1921-8.

Dış bağlantılar

Bu makale, 1 Kasım 2008'den önce Ücretsiz Çevrimiçi Hesaplama Sözlüğü'nden alınan ve GFDL , sürüm 1.3 veya sonraki sürümlerin "yeniden lisanslama" koşulları altında dahil edilen materyale dayanmaktadır .