Fazit/Ausblick - RWTH

Werbung
Einführung in NoSql-Datenbanken und der
Vergleich zu relationalen Datenbanken
© 2012 TravelTainment
Alexey Sibirtsev

Einleitung

NoSql-Eigenschaften

Brewer‘s Theorem

Konsistenz in NoSql-Datenbanken

Datenbanktypen


Key-Value Datenbanken

Graphenorientierte Datenbanken

Dokumentorientierte Datenbanken

Spaltenorientierte Datenbanken
Fazit/Ausblick
© 2012 TravelTainment
Ablauf

1998: Erste Erwähnung des NoSql-Begriffes von Carlo
Strozzi, gemeint als „No Sql“

2009: Neudefinition des Begriffes als „Not Only Sql“

Woher kommt die Popularität?

Unternehmen mit bis zu 1000 Mitarbeitern lagern ca. 3.8
Petabyte Daten

Der Datenzuwachs eines solchen Unternehmens beträgt 40
Prozent pro Jahr

Täglich entstehen 2.5 Quintillionen Byte (= 2*10^5
Petabyte)

90% der Daten, die aktuell im Umlauf sind, entstanden in
den letzten 2 Jahren

Abhängigkeit und Vernetzung der Daten nimmt zu (z.B.
durch soziale Netzwerke)
Einleitung Eigenschaften Brewser‘s Theorem BASE-Modell
© 2012 TravelTainment
Einleitung
Einleitung

Wieso sind relationale Datenbanken nicht mehr so gut
geeignet?


Prüfung der korrekten Datenstrukturen

Bildung von Relationen zwischen den Daten
Komplex vernetzte Daten sind schwer darzustellen

Unterteilen in viele Tabellen wird notwendig

Zusammenführen vieler Tabellen ist zeitaufwendig
© 2012 TravelTainment

Werden mit einer wachsenden Datenmenge schnell
langsamer
Einleitung Eigenschaften Brewser‘s Theorem BASE-Modell
NoSql-Eigenschaften



Verzicht auf ein festes Schema

Keine Relationen oder feste Datenstrukturen vorhanden

Speicherung der Daten wird flexibler gestaltet
Verzicht auf die Abfragesprache SQL

Kein allgemeiner NoSql-Standard vorhanden

Kommunikationsschnittstellen werden in der jeweiligen
Implementierung zur Verfügung gestellt
Ausfalltoleranz, Verfügbarkeit und horizontale
Skalierbarkeit
Datenbanken werden als verteilte Systeme implementiert
© 2012 TravelTainment

Einleitung Eigenschaften Brewser‘s Theorem BASE-Modell
Brewer‘s Theorem

Tritt bei verteilten Systemen in Kraft

Beschreibt den Zusammenhang zwischen drei wichtigen
Eigenschaften in solchen Systemen
Consistency (Konsistenz): Gleiche Daten auf jedem Client

Availability (Verfügbarkeit): Ständige Verfügbarkeit und
Erreichbarkeit des Systems

Partition Tolerance (Ausfalltoleranz): Korrekte
Funktionsweise bei Ausfall von Verbindungen oder Servern
Nur zwei dieser Eigenschaften sind in einem verteilten
System erfüllbar!
© 2012 TravelTainment


Eigenschaften Brewser‘s Theorem BASE-Modell Datenbanktypen
Brewer‘s Theorem

Wieso sind nur zwei Eigenschaften erfüllbar?

Ein Beispiel:

Ausfalltolleranz: Ein verteiltes System mit redundanten
Daten wird benötigt

Konsistenz: Datensätze müssen bei Aktualisierungen auf
allen Servern gesperrt werden

Dieses Sperren ist zeitaufwändig
© 2012 TravelTainment
-> Verfügbarkeit kann nicht mehr erreicht werden!
Eigenschaften Brewser‘s Theorem BASE-Modell Datenbanktypen
Brewer‘s Theorem

Verteilte relationale Datenbanken:

Konsistenz steht im Vordergrund

ACID-Prinzipien müssen befolgt werden

Realisierung der anderen Eigenschaft über hochwertige
und leistungsfähige Hardware (vertikale Skalierung)

Kostenintensiv!
Verteilte NoSql-Datenbanken:

Ausfalltolleranz und Verfügbarkeit stehen im Vordergrund

Häufige Verwendung bei Internetanwendungen (z.B:
Online-Shops)

Gewinnverlust, wenn ein Systemausfall vorliegt oder die
Verfügbarkeit nicht vorhanden ist

Verzicht auf die Konsistenz und somit auf das ACIDKonsistenzmodell
Eigenschaften Brewser‘s Theorem BASE-Modell Datenbanktypen
© 2012 TravelTainment

Konsistenz in NoSql-Datenbanken

BASE-Konsistenzmodell (Basically Available, Soft State,
Eventually Consistent):

Daten wechseln zwischen einem konsistenten und einem
inkonsistenten Zustand

Die Daten sind nur zu bestimmten Zeitpunkten für alle
Clients konsistent
Konkurrierender Zugriff wird über das Multiversion
Concurrency Control Verfahren geregelt

Ersatz für die Sperren, die in relationalen Datenbanken
verwendet werden

Versionierung von Datensätzen

Es liegt immer eine Version des Datensatzes bereit
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
© 2012 TravelTainment

© 2012 TravelTainment
Die wichtigsten NoSql-Datenbanktypen
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
Key-Value-Datenbanken

Mit assoziativen Feldern aus der Programmierung
vergleichbar

Ein Wert wird einem Schlüssel zugewiesen

On-Disk und In-Memory Varianten:

On-Disk: Speicherung der Daten auf der Festplatte

In-Memory: Speicherung der Daten im Arbeitsspeicher
© 2012 TravelTainment

Der Wert kann eine komplexe Datenstruktur (z.B. eine
Liste oder ein assoziatives Feld darstellen)
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
Key-Value-Datenbanken

Vorteile:

Schnelle Zugriffszeiten von O(1)

Im Gegensatz zu relationalen Datenbanken sind die
Zugriffszeiten unabhängig von der Datenmenge

Gute horizontale Skalierbarkeit

Verwendung einer Hash-Funktion, um einen Server zu einem
Schlüssel zu bestimmen
-> Zeitersparnis
Nachteile:

Umständlich nach einem Wert zu suchen


Zusätzliche Verweise vom Wert auf den Schlüssel und somit
wechselseitige Beziehungen wären nötig
Datenverlust schnell möglich, falls ein Schlüssel
versehentlich überschrieben wird
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
© 2012 TravelTainment


Bereits seit den 60er Jahren bekannt

Sollten ursprünglich als Allzweckdatenbanksystem
dienen

Vom einfacheren relationalen Ansatz verdrängt worden

Steigendes Interesse an diesen Datenbanken, da die
graphenstrukturen im Internet wachsen

Vor allem für soziale Netzwerke (z.B. Twitter)
brauchbar

Bestehen aus Knoten und Kanten
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
© 2012 TravelTainment
Graphenorientierte Datenbanken
Graphenorientierte Datenbanken
Vorteile:

Bilden reale Netzwerkstrukturen (z.B. soziales Geflecht aus
Freunden und Bekannten) direkt ab und erleichtern somit
das Verständnis für diese

Die Suche bleibt unabhängig von der Größe der
Netzwerkstruktur stets performant



Gleiche Zeit für einen Kantenschritt

Verzicht auf die rechenintensiven JOIN-Operationen
Verwendung von Algorithmen aus der Graphentheorie, um
die Performance zu verbessern
Nachteile:

Einsatz wird komplex, falls für einen unpassenden
Anwendungsfall verwendet

Nutzbarkeit komplizierter

Keine einfach verständliche Abfragesprache, die in allen
Graphendatenbanken gilt
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
© 2012 TravelTainment

Dokumentorientierte Datenbanken
Arbeiten mit Dokumenten statt mit Tabellen

Dokumente sind keine „Textdateien“, sondern
Sammelcontainer

Ein solcher Sammelcontainer enthält Schlüssel-WertPaare

Der Wert darf auch nicht atomare Inhalte, wie ein Feld
oder eine Datei beinhalten

Die Schlüssel sind innerhalb des Dokuments eindeutig
© 2012 TravelTainment

Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
Dokumentorientierte Datenbanken

Vorteile:

Freiheit für den Benutzer, da jedes Dokument verschiedene
Schlüssel enthalten kann

Speicherung und Darstellung der Daten in dem JSONFormat

Arbeiten mit zusammenhängenden Daten wird erleichtert

Zusammenhängende Daten werden geschlossen in Dokumenten
gespeichert

Es müssen nicht zunächst viele Tabellen zusammengeschlossen
werden
Nachteile:

Prüfung der Plausibilität muss auf die Anwendungsebene
verlagert werden
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
© 2012 TravelTainment

Spaltenorientierte Datenbanken

Grundlegend anderes Speicherprinzip als bei relationale
Datenbanken

Datensätze werden spaltenweise abgespeichert

Column Families statt Tabellen
Haben keine Struktur

Können beliebig viele Spalten enthalten
© 2012 TravelTainment

Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
Spaltenorientierte Datenbanken


Beispiel einer Mitarbeiterliste:
MitarbeiterID
Name
Jahresgehalt
1
Muster
30000
2
Testperson
32000
Speicherung in einer relationalen Datenbank:


1, Muster, 30000; 2, Testperson, 32000;
Speicherung in einer spaltenorientierten Datenbank:
1, 2; Muster, Testperson; 30000, 32000;
© 2012 TravelTainment

Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
Spaltenorientierte Datenbanken

Vorteile:

Schnellere Durchführung von Analysen, die meistens über
eine einzige Spalte stattfinden

Relationale Datenbank:

Spalte jedes Datensatzes muss einzeln abgerufen werden
-> viele sequentielle Lesezugriffe auf den Arbeitsspeicher

Spaltenorientierte Datenbank:

Spalte muss einmal ermittelt werden
-> danach Iteration durch den zugehörigen Arbeitsspeicher
Speicherersparnis:

Keine Speicherreservierung für leere Einträge

Gleiche Datentypen nebeneinander, somit bessere Ablage im
Speicher

Verwendung von Komprimierungsverfahren, da gleiche
Datentypen nebeneinander (z.B. Zusammenfassung von
Sequenzen)
Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
© 2012 TravelTainment

Spaltenorientierte Datenbanken

Nachteile:

Schlechter Umgang mit Ad-Hoc Abfragen


Flexible Abfragen, die beliebige Daten zurückgeben können. Die
Struktur der Datenbank spielt bei diesen Abfragen keine Rolle
Datenbankstruktur muss an die später verwendeten
Datenbankabfragen angepasst werden
Schlechtere Flexibilität
© 2012 TravelTainment

Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
Fazit/Ausblick

Nicht standardisiert -> Schreckt viele Unternehmen von
der Verwendung ab

Große Unternehmen (z.B. Amazon, Google) setzen
NoSql-Datenbanken erfolgreich ein

Nicht für alle Anwendungsfälle gedacht

Viel Potential für neue Fortschritte und Ideen:
Multiversion Concurrency Control Verfahren

MapReduce Verfahren
© 2012 TravelTainment

Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
© 2012 TravelTainment
Fragen?
© 2012 TravelTainment
Vielen Dank!
Herunterladen