Ü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...