Überblick über NoSQL Datenbanken

Werbung
Überblick über NoSQL Datenbanken Seminararbeit SSE – WS 12/13 – Mario David Inhalt Seven Databases in Seven Weeks PostgreSQL, HBase, MongoDB, CouchDB, Neo4J, Redis, Riak Relational Columnar Document
Graph
Key-­‐Value 1. Einführung in „not only SQL“ Ê  horizontale Skalierung: nicht mit dem relationalen Modell L Ê  Synchronisation, verteilte Joins & verteile TA‘s „teuer“ Ê  Scale-­‐Up nicht akzeptabel für „Internet-­‐Scale Systems“ Ê  wird festes Schema immer benötigt? Ê  kostengünstigere Hochverfügbarkeit durch Scale-­‐Out Ê  keine standardisierte Abfragesprache Ê  HTTP, Map Reduce, JS ... ACID Scale-­‐Out Kosten 2.1 verteilte Hashtabellen – DHT‘s Ê  effiziente Ressourcenlokation in P2P Netzwerken Ê  optimierter Beitritt, Ausfall & Austritt durch „consistent hashing“ Ê  Verwendung von DHTs zur Cluster Kommunikation Ê  Amazon Dynamo Ê  Riak Ê  ... 2.2 Brewer‘s CAP Theorem Ê  Availability „
Ê  Partition tolerance CP AP CA „
Ê  Consistency You can have at most two of these properties for any shared-­‐data system 3. Kategorien von NoSQL DBMS‘s Key-­‐Value Dokumentenorientiert Spaltenorientiert Graphen 3.1 Key-­‐Value Stores Ê  Key à Value (String / Integer / XML / BLOB) Ê  effiziente Speicherung, gute Skalierbarkeit Ê  DBMS weiß nichts über die Struktur -  komplexe Abfragen nicht möglich Riak als Beispiel folgt... 3.2 Spaltenorientierte Datenbanken Ê  Spaltenweise statt Zeilenweise Speicherung (HDD) Ê  Vorteil: schnelle Aggregation über eine Spalte Ê  Bsp: „Die Beträge aller Rechnungen“ Ê  Ursprung & Stärken: OLAP Ê  Mittelweg bzgl. Strukturkenntnisse zwischen Key-­‐Value und relational Ê  Jede Zeile kann verschiedene Spalten haben 3.3 Dokumentenorientierte Datenbanken Ê  Key à Dokument (meist JSON / XML) Ê  kein Strukturzwang – jedes Dokument kann andere Struktur besitzen Ê  DBMS grundlegende Informationen zu Struktur Ê  Komplexe Abfragen Ê  Features Ê  Dokumenten-­‐Schachtelung Ê  Links zwischen Dokumenten 3.4 Graphen Datenbanken Ê  Repräsentation von Daten: Graph Ê  Knoten: Entity Ê  Kanten: Relation Ê  Einsatzzweck: Ê  z.B.: Freundschaftsbeziehungen in sozialen Netzwerken Ê  Selbst referenzierende Entitäten oder Baumstrukturen in RDBMS Ê  Vorteile Ê  Graphen Traversierung der theoretischen Informatik Ê  Untermenge: Semantic Web Datenbanken Ê  Protokoll: RESTful HTTP Ê  Map Reduce Support 4. Beispiel RESTful Dynamo Implementierung: Riak Ê  Entscheidung über CAP zur Laufzeit! Ê  Verwendung von DHT •  Key-­‐Value Store •  basiert auf Amazon Dynamo Paper •  Erlang •  Open Source Software Hands on... 
Herunterladen