Seminar 1912, 19912 –NoSQL Datenbanken

Werbung
Seminar 1912, 19912 –NoSQL Datenbanken
Thomas Behr
31. August 2015
1
Einführung
Im täglichen Leben sind derzeit vor allem relationale Datenbanksysteme
verbreitet. Immer wieder gab es Angriffe auf die Vorherrschaft dieser Art
von Datenbanken. Zu nennen sind hier unter anderem objektorientierte
Datenbanken und hierarchische Datenbanken. Häufig kamen solche neuen Entwicklungen aus der Therorie und konnten sich in der Praxis nicht
durchsetzen. Gründe hierfür waren z.B. eine schlechte Performanz, eine
fehlende mächtige Abfragesprache oder einfach nur mangelnde Akzeptanz
der Praktiker“. Aber auch relationale Systeme haben ihre Schwächen.
”
So ist es manchmal schwierig, ein gegebenes Problem mit den starren
Schemata, die ein solches System vorschreibt, zu modellieren. Weiterhin
sind solche Systeme darauf optimiert, viele kurze Anfragen parallel zu
bearbeiten. Mit lang laufenden Anfragen haben solche Systeme enorme
Probleme. Um diese und andere Probleme zu lösen, können sogenannte
NoSQL (Not-Only-SQL)-Datenbanken eingesetzt werden. Im Kontrast
zu anderen Systemen, kommen solche Systeme häufig aus der Praxis,
um dort aufgetretene Probleme zu meistern. Häufig werden einige klassische Merkmale von Datenbanksystemen, z.B. Transaktionskontrolle, aufgeweicht, um anderen Faktoren Vorteile einzuräumen. Feste Schemata
für die Daten sucht man in NoSQL-Systemn häufig vergeblich. Auch
wird gern auf die ACID-Eigenschaften von Transaktionen zu Gunsten
eine höheren Geschwindigkeit verzichtet. In vielen Fällen handelt es sich
um verteilte Systeme, bei denen die Daten auf verschiedenen Computern
aufgeteilt sind und ebenso verteilt bearbeitet werden. Das Hinzufügen
neuer Computer sowie der Ausfall einzelner Knoten stellt im Idealfall
kein Problem für solche Systeme dar.
NoSQL-Datenbanken lassen sich in verschiedene Gruppen einteilen.
Diese umfassen unter anderem:
1
• spaltenorientierte Datenbanken
• Key-Value-Stores
• Document Stores
• Graph-Datenbanken
Die einzelnen Gruppen verfolgen teilweise unterschiedliche Ziele. So
bieten bsplw. Key-Value-Stores eine einfache Verteilung der Daten auf
verschiedene Computer einschließlich Fehlerbehandlung an. Komplexe
Anfragen sind jedoch schwierig zu formulieren. Bei den Document-Stores
steht die Schemafreiheit der Daten eindeutig im Vordergrund. Bei den
spaltenorientierten Datenbanken ist die Skalierbarkeit ein wesentliches
Merkmal. Durch die spaltenorientierte Struktur sind Tabellen mit extrem vielen Spalten darstellbar und können schnell abgefragt werden.
Der Vorteil von Graph-Datenbanken ist es, vernetzte Informationen auf
einfache und natürliche Weise speichern und abfragen zu können.
Ziel dieses Seminars soll es sein, die Welt der NoSQL-Datenbanken
ein wenig anhand einiger existierender Systeme kennenzulernen.
2
Themenauswahl
Dieses Dokument beschreibt die verschiedenen Themen des Seminars
1912/19912 im WS 2015/2016. Lesen Sie sich das Dokument gut durch
und sehen Sie sich bei Bedarf kurz die dazugehörige Literatur an. Erstellen Sie eine Liste mit Ihren Prioritäten. In dieser Liste erhält das
Thema, welches Sie am liebsten bearbeiten möchten, die Priorität 1, wogegen das Thema, das Sie keinesfalls bearbeiten möchten, die Priorität
16 bekommt. Vergeben Sie für jedes Thema eine eindeutige Priorität.
Senden Sie diese Liste bis spätestens 30.9.2015 per E-Mail an die
Kursbetreuung ([email protected]). Ich werde versuchen,
bei der Themenvergabe Ihre Prioritäten weitestgehend zu berücksichtigen. Natürlich kann ich nicht garantieren, dass Sie Ihr Wunschthema
erhalten. Sobald alle Listen eingegangen sind, jedoch spätestens nach
Ende der angegebenen Frist, werden die Themen auf die Seminarteilnehmer/Seminarteilnehmerinnnen verteilt. Beleger/Belegerinnen des Seminars 19912 (für Master Wirtschaftsinformatik) erhalten zwei Themen
zur Bearbeitung. Sollte von Ihnen bis Fristende keine Prioritätenliste
vorliegen, wird Ihnen ein irgendein Thema zugewiesen. Sie erhalten Ihr
Thema spätestens bis zum 6.10.2015 per E-Mail mitgeteilt.
2
3
Bearbeitung des Themas
Lesen Sie sich die Themenbeschreibung zusammen mit der dort angegebenen Literatur gut durch. Es wird erwartet, dass Sie selbständig weitere
Literatur zu Ihrem gewählten Thema recherchieren. Verwenden Sie dabei
nach Möglichkeit vor allem wissenschaftliche Publikationen. Übersetzen
Sie englischsprachige Texte nicht einfach, sondern geben Sie den Inhalt
mit eigenen Worten wieder. Vermeiden Sie lange, direkte Zitate. Geben
Sie alle verwendeten Quellen an. Beachten Sie auch die Gestaltungshinweise, die Sie unter: http://dna.fernuni-hagen.de/Lehre-offen/
Seminare/1912-WS1516/Gestaltungshinweise.pdf finden.
Senden Sie eine Gliederung Ihrer Ausarbeitung im PDF-Format bis
spätestens 10.11.2015 an die Kursbetreuung. Sie erhalten eine Rückmeldung, inwiefern diese Gliederung in Ordnung ist. Sie haben dann bis zum
11.1.2016 Zeit, die vollständige Ausarbeitung sowie Präsentationsfolien
zu erstellen. Senden Sie Ihre Ausarbeitung und Ihre Folien wieder per
E-Mail an die Kursbetreuung. Die Ausarbeitung ist im PDF-Format abzugeben. Die Präsentationsfolien können wahlweise als PDF, als PPT
(Version 2010) oder als ODP eingereicht werden. Ich werde mir Ihre Dokumente ansehen. Bei Bedarf erhalten Sie einmalig Gelegenheit, diese
nachzubessern.
Am 26.2.2016 und am 27.2.2016 findet die Präsenzphase des Seminars in Hagen statt. Ein genauer Zeitplan wird noch bekanntgegeben.
Alle Teilnehmer und Teilnehmerinnen des Seminars sind an beiden Tagen zu allen Vorträgen präsent. Die Vortragsdauer ist 45 Minuten. Halten Sie Ihren Vortrag vorab zur Probe, um sicherzustellen, dass Sie diese
Zeit einhalten. Verlieren Sie sich während des Vortrags nicht in Einzelheiten und hasten Sie nicht von einem Detail zum nächsten. Versuchen
Sie vielmehr in Ruhe die wichtigen Elemente Ihres Themas herauszustellen. Jeder Vortrag wird mit einer Diskussionsrunde abgeschlossen. Es
wird erwartet, dass Sie sich an den Diskussionen aktiv beteiligen. Die
Diskussionsrunde dauert maximal 15 Minuten.
4
Allgemeines über NoSQL
Bei der Bearbeitung dieses Themas geht es darum, einen allgemeinen
Überblick über NoSQL-Datenbanken, ihre Eigenschaften, Vor- und Nachteile, zu geben. Als Einstieg können die Veröffentlichungen [MH13] und
[PPS11] verwendet werden.
3
Thema 1
5
Systeme
In dieser Rubrik sollen einige NoSQL-Systeme vorgestellt werden. Sie
müssen hier nicht die gesamten Inhalte der vorgeschlagenen Einstiegsliteratur in Ihre Ausarbeitung/ Ihren Vortrag einarbeiten. Versuchen Sie
stattdessen das DBMS möglichst gut zu beschreiben. Stellen Sie die Besonderheiten des jeweiligen Systems heraus. Gehen Sie auf die Architektur und die Anfragemöglichkeiten ein.
6
Cassandra
Thema 2
Cassandra [Fea10] ist ein Key-Value-Store, bei dem die Daten auf viele
Computer verteilt werden. Besondere Beachtung beim Design fand die
Skalierbarkeit und die Robustheit des Systems. So können unproblematisch neue Computer eingefügt werden und der Ausfall einzelner Knoten
stellt kein Problem dar. Eine weitere Einführung in dieses System ist in
[LM10] zu finden.
7
Redis
Thema 3
Redis ist ebenfalls ein Vertreter der Key-Value-Stores. Daten werden hier
vor allem im Hauptspeicher gehalten, wodurch sich sehr schnelle Zugriffszeiten ergeben. Eine kurze praktische Einführung gibt Karl Seguin in
[Seg12]. Eine Darstellung der verwendeten Dateiformate und der Hauptspeicherstruktur wird in [XXX+ 14] gegeben.
7.1
Bigtable
Thema 4
Einer der führenden Suchmaschinenanbieter ist Google™. Offenbar müssen
für die Suche im Internet riesige Datenmengen gesammelt, aufbereitet
und durchsucht werden. So ist es nicht verwunderlich, dass hier neue
Mechanismen für das Handling solch riesiger Datenmengen entwickelt
wurden. Ein Ergebnis ist Bigtable [CDG+ 08], ein System zur strukturierten Speicherung von großen Datenmengen. Obwohl der Begriff Table“
”
eine klassische Tabellendarstellung suggeriert, ist es hier nicht notwendig, dass alle Zeilen einer solchen Tabelle die gleichen Spaltenanzahlen
aufweisen.
4
7.2
MongoDB
Thema 5
Ein wichtiger Vertreter der Document-Stores ist MongoDB [AA13]. Neben der Schemafreiheit ist auch die Skalierbarbeit bei diesem System
gegeben. Eine Architekturbeschreibung dieses Systems ist im White Paper [Mon15] zu finden. Eine kurze praktische Einführung in dieses System
bietet [Seg11].
7.3
Citrusleaf
Thema 6
Citrusleaf [SB11] ist ein NoSQL-System, das trotz Garantie der ACIDEigenschaften von Transaktionen einen Realzeit-Betrieb auch bei großen
Datenmengen ermöglicht.
7.4
Neo4j
Thema 7
Als Vertreter der Graphdatenbanken ist Neo4j als eine freie Implementierung verfügbar. Während in [Mil13] relationale Datenbanken und Graphdatenbanken am Beispiel von Neo4j verglichen werden, wird in [CQPA13]
ein spezieller Anwendungsfall für dieses System beschrieben.
7.5
BaseX
Thema 8
Mit BaseX [GHS07] lernen wir einen weiteren Vertreter eines dokumentenbasierten Datenbanksystems kennen. In [GGHS09] werden Erweiterungen dieses Systems vorgestellt, um den vollen Sprachumfang einer
vorgeschlagenen Anfragesprache für die Volltextsuche zu unterstützen.
8
Comeback von SQL
Aus Performanzgründen wird in NoSQL-Datenbanken häufig auf einige
Eigenschaften der relationalen Datenbanksysteme verzichtet. Manchmal
wird dieses Fehlen von Funktionalität als störend angesehen und es wird
versucht, diese Funktionalitäten im Nachhinein in existierenden Systemen zu implementieren.
8.1
Joins
Thema 9
Ein wichtiges Hilfsmittel in relationalen Datenbanksystemen ist der Verbund (Join) zweier Relationen. In relationalen Datenbanken existieren etliche Algorithmen, solch einen Verbund effizient durchzuführen. So wird
5
in [KS15] ein Ansatz beschrieben, mittels MapReduce Joins zu berechnen. Ein Ansatz für Rank-Join-Queries ist in [NPT14] zu finden.
8.2
Transaktionen
Thema 10
Der Verzicht auf Transaktionen, in denen Folgen von Datenbankbefehlen
als eine Einheit verarbeitet werden, bietet Geschwindigkeitsvorteile und
eine erhöhte Parallelität der Anfragen. Allerdings kann dieser Verzicht bekanntermaßen zu inkonsistenten Daten oder verlorenen Updates führen.
Während für einige Anwendungsfälle solche fehlerbehafteten Daten toleriert werden können, ist dies für andere Anwendungen inakzeptabel. So
entwickeltein die Autoren in [RK15] ein Transaktionsmodell für verteilte
NoSQL-Datenbanken.
8.3
Einheitlicher Zugriff
Thema 11
Während in relationalen Datenbanken der Zugriff (mehr oder minder)
einheitlich über SQL erfolgt, existiert solch eine einheitliche Anfragesprache für NoSQL-Datenbanken nicht. Somit müssen Anwendungsprogramme, die von einer zu einer anderen NoSQL-Datenbank wechseln wollen,
stark angepasst werden. In [ABR14] stellen die Autoren daher eine Programmierschnittstelle vor, die die Heterogenität der darunterliegenden
Datenbanken verstecken soll.
8.4
Schema
Thema 12
Für eine möglichst flexible Datenspeicherung verzichten NoSQL-Systeme
häufig auf Datenschemata. Dies kann für bestimmte Anfragearten als
problematisch eingestuft werden. In [KSS15] wird daher ein Mechanismus
vorgeschlagen, um ein Schema aus einer NoSQL-Datenbank extrahieren
zu können.
8.5
Vergleich SQL - NoSQL
Offenbar bieten NoSQL-Datenbanksysteme einige Vorteile gegenüber den
klassischen relationen Vertretern, aber besitzen auch einige Nachteile. So
ist es nicht verwunderlich, dass Vergleiche zwischen diesen Klassen gezogen werden. Ein solcher Vergleich ist in [Cat10] beschrieben.
Da NoSQL-Datenbanken vor allem für sehr große Datenmengen entwickelt wurden stellt sich die Frage, wie sich solche Systeme bei nor”
6
Thema 13
malen“ Datenmengen verhalten. Ein Vergleich mit relationalen DBMS
in dieser Hinsicht wird in [AHM15] durchgeführt.
9
Anwendungen
In diesem Abschnitt werden einige Anwendungsmöglichkeiten für NoSQLDatenbanken analysiert.
9.1
Graphen
Thema 14
Mittels Graphen können die verschiedensten Dinge dargestellt werden.
Diese Graphen können sehr groß werden, beispielsweise bei der Darstellung von Seitenzusammenhängen im WWW oder der Darstellung sozialer
Netzwerke. Mitunter werden Dimensionen erreicht, die die Speicherkapazitäten (Haupspeicher und Sekundärspeicher) einzelner Computer übersteigen. In [LSK15] wird die Unicorn-Bibliothek vorgestellt, die mit Hilfe
von HBase™ mit solchen Graphen umgehen kann.
9.2
Datenänderung
Thema 15
Bei der Analyse von gespeicherten Daten führen Änderungen an diesen
zu veränderten Ergebnissen. Aufgrund des hohen Datenvolumens ist eine vollständige Neuberechnung der Ergebnisse von Grund auf bei einer
Datenänderung nicht sinnvoll. Daher werden inkrementelle Updates der
Ergebnisse berechnet. Eine Voraussetzung hierfür ist, Änderungen an
den Daten zu erkennen und weiterzugeben. In [HD14] werden Ansätze
vorgestellt, Datenänderungen in spaltenorientierten Datenbanken zu verarbeiten.
9.3
Web-Datenbanken
Thema 16
Datenbanken, die (spezielle) Web-Inhalte darstellen sollen, haben es mit
heterogenen Daten zu tun. Aufgrund der Schemafreiheit von NoSQLDatenbanken scheinen diese hierfür geeignet zu sein. In [FJ15] wird eine
Anwendung von NoSQL-Datenbanken beschrieben, um eine Suche nach
Lerninhalten zu ermöglichen. Exemplarisch werden hier Lerninhalte der
Medizin verwendet.
7
Literatur
[AA13]
Rupali Arora and Rinkle Rani Aggarwal. Modeling and querying data in MongoDB. International Journal of Scientific
and Engineering Research, 4:141–144, 2013.
[ABR14]
Paolo Atzeni, Francesca Bugiotti, and Luca Rossi. Uniform
access to NoSQL systems. Inf. Syst., 43:117–133, 2014.
[AHM15] Mohammad Shamsul Arefin, Khondoker Nazibul Hossain,
and Yasuhiko Morimoto. Efficiency of NoSQL databases under a moderate application load. In Wanming Chu, Shinji Kikuchi, and Subhash Bhalla, editors, Databases in Networked
Information Systems - 10th International Workshop, DNIS
2015, Aizu-Wakamatsu, Japan, March 23-25, 2015. Proceedings, volume 8999 of Lecture Notes in Computer Science,
pages 213–227. Springer, 2015.
[Cat10]
Rick Cattell. Scalable SQL and NoSQL data stores. SIGMOD
Record, 39(4):12–27, 2010.
[CDG+ 08] Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh,
Deborah A. Wallach, Michael Burrows, Tushar Chandra, Andrew Fikes, and Robert E. Gruber. Bigtable: A distributed
storage system for structured data. ACM Trans. Comput.
Syst., 26(2), 2008.
[CQPA13] Ciro Cattuto, Marco Quaggiotto, André Panisson, and Alex
Averbuch. Time-varying social networks in a graph database:
a Neo4j use case. In Peter A. Boncz and Thomas Neumann,
editors, First International Workshop on Graph Data Management Experiences and Systems, GRADES 2013, co-loated
with SIGMOD/PODS 2013, New York, NY, USA, June 24,
2013, page 11. CWI/ACM, 2013.
[Fea10]
Dietrich Featherston. Cassandra: Principles and application,
2010.
[FJ15]
Reem Qadan Al Fayez and Mike Joy. Applying NoSQL databases for integrating web educational stores - an ontologybased approach. In Sebastian Maneth, editor, Data Science 30th British International Conference on Databases, BICOD
2015, Edinburgh, UK, July 6-8, 2015, Proceedings, volume
8
9147 of Lecture Notes in Computer Science, pages 29–40.
Springer, 2015.
[GGHS09] Christian Grün, Sebastian Gath, Alexander Holupirek, and
Marc H. Scholl. Xquery full text implementation in BaseX.
In Zohra Bellahsene, Ela Hunt, Michael Rys, and Rainer Unland, editors, Database and XML Technologies, 6th International XML Database Symposium, XSym 2009, Lyon, France,
August 24, 2009. Proceedings, volume 5679 of Lecture Notes
in Computer Science, pages 114–128. Springer, 2009.
[GHS07]
Christian Grün, Alexander Holupirek, and Marc H. Scholl.
Visually exploring and querying XML with BaseX. In Alfons Kemper, Harald Schöning, Thomas Rose, Matthias Jarke, Thomas Seidl, Christoph Quix, and Christoph Brochhaus,
editors, Datenbanksysteme in Business, Technologie und Web
(BTW 2007), 12. Fachtagung des GI-Fachbereichs Daten”
banken und Informationssysteme“ (DBIS), Proceedings, 7.-9.
März 2007, Aachen, Germany, volume 103 of LNI, pages 629–
632. GI, 2007.
[HD14]
Yong Hu and Stefan Dessloch. Extracting deltas from column
oriented NoSQL databases for different incremental applications and diverse data targets. Data Knowl. Eng., 93:42–59,
2014.
[KS15]
Chulyun Kim and Kyuseok Shim. Supporting set-valued joins
in NoSQL using mapreduce. Inf. Syst., 49:52–64, 2015.
[KSS15]
Meike Klettke, Uta Störl, and Stefanie Scherzinger. Schema extraction and structural outlier detection for json-based
NoSQL data stores. In Thomas Seidl, Norbert Ritter, Harald Schöning, Kai-Uwe Sattler, Theo Härder, Steffen Friedrich, and Wolfram Wingerath, editors, Datenbanksysteme
für Business, Technologie und Web (BTW), 16. Fachtagung
des GI-Fachbereichs Datenbanken und Informationssysteme“
”
(DBIS), 4.-6.3.2015 in Hamburg, Germany. Proceedings, volume 241 of LNI, pages 425–444. GI, 2015.
[LM10]
Avinash Lakshman and Prashant Malik. Cassandra: a decentralized structured storage system. Operating Systems Review, 44(2):35–40, 2010.
9
[LSK15]
Ho Lee, Bin Shao, and U. Kang. Fast graph mining with
hbase. Inf. Sci., 315:56–66, 2015.
[MH13]
A. B. M. Moniruzzaman and Syed Akhter Hossain. NoSQL database: New era of databases for big data analytics - classification, characteristics and comparison. CoRR,
abs/1307.0191, 2013.
[Mil13]
Justin J. Miller. Graph database applications and concepts
with Neo4j. In Proceedings of the Southern Association for
Information Systems Conference, Atlanta, GA, USA March
23rd-24th, 2013, pages 141–147, 2013.
[Mon15]
MongoDB. MongoDB architecture guide, 2015.
[NPT14]
Nikos Ntarmos, Ioannis Patlakas, and Peter Triantafillou.
Rank join queries in NoSQL databases. PVLDB, 7(7):493–
504, 2014.
[PPS11]
R. P. Padhy, M. R. Patra, and S. C. Satapathy. RDBMS
to NoSQL: Reviewing Some Next-Generation Non-Relational
Database’s‖. International Journal of Advanced Engineering
Science and Technologies, 11(1), 2011.
[RK15]
Dharavath Ramesh and Chiranjeev Kumar. A scalable generic
transaction model scenario for distributed NoSQL databases.
Journal of Systems and Software, 101:43–58, 2015.
[SB11]
V. Srinivasan and Brian Bulkowski. Citrusleaf: A real-time
NoSQL DB which preserves ACID. PVLDB, 4(12):1340–1350,
2011.
[Seg11]
Karl Seguin. The Little MongoDB Book. 2011.
[Seg12]
Karl Seguin. The Little Redis Book. 2012.
[XXX+ 14] Ming Xu, Xiaowei Xu, Jian Xu, Yizhi Ren, Haiping Zhang,
and Ning Zheng. A forensic analysis method for Redis database based on RDB and AOF file. JCP, 9(11):2538–2544,
2014.
10
Herunterladen