Einführung - Abteilung Datenbanken Leipzig

Werbung
NoSQL-Datenbanken
Kapitel 1: Einführung
Dr. Anika Groß
Sommersemester 2017
Universität Leipzig
http://dbs.uni-leipzig.de
1-1
Inhaltsverzeichnis
• NoSQL-Datenbanken
– Motivation und Definition
– Kategorisierung, Eigenschaften
• CAP-Theorem
– ACID-Eigenschaften
– BASE-Ansatz
1-2
Massives Datenwachstum
Quelle: http://hortonworks.com/blog/7-key-drivers-for-the-big-data-market/
• Schätzung von IBM
– Pro Tag werden 2,5 Exabytes an Daten generiert
– 90% aller Daten weltweit wurden in den letzten 2 Jahren erzeugt
Quelle (05 Feb 2013): http://www-03.ibm.com/press/de/de/pressrelease/40327.wss
1-3
Datenproduzenten
Quelle: Einführungsveranstaltung Seminar “New Trends in Big Data” WS 2013/14
1-4
Big Data Challenges
Quelle: http://kavyamuthanna.wordpress.com/category/big-data/
1-5
Parallele DBS?
• Anforderung: Effiziente Verarbeitung großer Datenmengen…
–
–
–
–
in einer preiswerten, verteilten (heterogenen) Infrastruktur
mit konkurrierenden Schreib- und Lesezugriffen
unter Berücksichtigung von Knoten- bzw. Netzwerkausfällen
für beliebige Daten (unstrukturiert, semi-strukturiert, strukturiert)
• Parallele Datenbanksysteme ungeeignet ...
–
–
–
–
teure, homogene Infrastruktur
geringe Fehlertoleranz (z.B. Query-Restart)
nur für strukturierte Daten (statisches Schema)
begrenzte Skalierbarkeit (ca. 100 Knoten)
• ... dafür
– mächtige, einfache Anfragesprache
– ACID-Eigenschaften
– Datenunabhängigkeit
1-6
NoSQL-Datenbanken
• “Not only SQL”
• „Nicht relationale Ansätze“
• Verschiedene Anwendungen erfordern versch. Typen von Datenbanken
• Keine standardisierte Definition
• Datenbanksystem, das eines oder mehrere der folgenden Kriterien aufweist
– Kein relationales Datenmodell
• Schemafrei oder schwache Schemarestriktionen
• Keine Joins / keine Normalisierung
– Verteiltes, auf horizontale Skalierbarkeit ausgelegtes System
• “Commodity Hardware”
– “Kein SQL”
• Zugriff mit einfacher API statt SQL
– “Keine Transaktionen”
• Konsistenzmodell BASE statt ACID
1-7
Rückblick - History ( … repeats itself )
• Early Database Management Systems
– Flat File Data Management Systems
•
•
•
•
Oft Daten zu einem Entity in einem record (meist ineffiziente Suche)
Datenduplizierung / Redundanz  Inkonsistenzen
Keine Implementierung von Zugriffsrechten
Keine Datenunabhängigkeit  Änderungen in Anwendungsprogrammen
– Hierarchical Data Management Systems
• Parent-child relationships (1:N), etwas weniger Redundanz
• Keine N:M Beziehungen
• Effizientere Suche
– Network Data Management Systems
•
•
•
•
Knoten und gerichtete Kanten ( N:M / mehrere parent records erlaubt), keine Zyklen
Schemas zur Definition der Knotentypen und Beziehungen
Schwieriges Design und Verwaltung
Retrieval: Programm muss ggf. hohe Anzahl an Kanten traversieren
 Nachteile adressiert von relationalen DBMS
1-8
Motivation NoSQL-Datenbanken
• Relationales Schema zu starr für viele Webanwendungen
– Evolution: Änderung der Webanwendung führt meist zu Schemaänderung
– Datenstruktur: Heterogene Informationsarten führen zu großen, unübersichtlichen
Schemas (u.a. einfache mengenwertige Attribute z.B. Tags)
– Impedance Mismatch
– Anfrage: Wartbarkeit komplexer SQL-Anfragen (viele Joins)
• Vorteile relationaler Modellierung spielen geringere Rolle
– Data Store meist nur für eine Anwendung, daher Datenunabhängigkeit kein Ziel
– Effiziente SQL-Ausführung (Optimierung) durch komplexe Anfragen begrenzt
• Fokus: Performanz und Verfügbarkeit
– begrenzte Skalierbarkeit paralleler Datenbanksysteme
– geringe Fehlertoleranz (z.B. Query-Restart)
1-9
NoSQL Data Stores
* multi-model
Key-Value Stores (Kap.2)
• Kollektion von Key/Value-Paaren: 1 Wert (z.B. BLOB) je Schlüssel
• Zugriff über Schlüssel: get(key), put(key, value)
*
Document Stores (Kap.3)
• Speicherung semistrukturierter Daten als Dokument (z.B. JSON)
• Zugriff über Schlüssel oder einfache Anfragesprache
Wide Column Stores / Record Stores (Kap.5)
• Tables with records with (many) dynamic columns
• Zugriff über Schlüssel oder SQL-ähnliche Anfragesprache
Graph Databases (Kap.6)
*
• Repräsentation der Daten als Knoten und Kanten mit Properties
• Datenbankabfragen inkl. Graphalgorithmen
+ Skalierbare Relationale Datenbanken (Kap. 5)
MySQL Cluster, MegaStore, VoltDB, Clustrix, ScaleDB, ScaleBase, NimbusDB, ...
NoSQL – Data Stores for Big Data
10
Größe vs. Komplexität
Key-Value
Stores
data size
Column
Stores
Document
Databases
Graph
Databases
90 % of use cases
data complexity
1-11
NoSQL Datenmodelle
https://highlyscalable.files.wordpress.com/2012/02/overview2.png
1-12
DB Engines Ranking (Ausschnitt)
http://db-engines.com/en/ranking
NoSQL
– Data Stores for Big Data
13
Inhaltsverzeichnis
• NoSQL-Datenbanken
– Definition und Motivation
– Kategorisierung, Eigenschaften
• CAP-Theorem
– ACID-Eigenschaften
– BASE-Ansatz
1-14
Performantes, verteiltes Datenmanagement
• Annahmen („Irrtümer“) der verteilten Datenverarbeitung
– Das Netzwerk ist ausfallsicher, sicher und homogen
– Die Latenzzeit ist gleich Null, der Datendurchsatz unendlich und die Kosten des
Datentransports können mit Null angesetzt werden
– Die Netzwerktopologie ist unveränderlich
http://de.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
• Verteilte Datenverarbeitung erfordert Kommunikation zwischen Knoten
– u.a. Synchronisation und Replikation
– Robust gegen Knotenausfälle, Nachrichtenverlust, ...
• Trade-off: Performanz vs. Datenkonsistenz
– Warten bis alle (relevanten) Knoten synchronisiert sind
– Vermeidung (oder Auflösung) von Mischkonflikten
1-15
CAP-Theorem [Bre00] [GL02]
•
•
CAP = Consistency, Availability, Partitioning Tolerance
Consistency (Konsistenz)
– System funktioniert entweder “voll” oder “gar nicht”
( ACID-Atomarität)
– Alternativ: Updates werden bei allen relevanten Knoten zur
gleichen “logischen” Zeit durchgeführt, d.h. alle Knoten/Clients
sehen zur selben Zeit die selben Daten
•
Consistency
Availability
Partition
Tolerance
Availability (Verfügbarkeit)
– Jede Lese/Schreib-Anfrage an einen “non-failing” Knoten wird beantwortet, d.h. alle Clients
können stets lesen und schreiben.
– Knotenausfälle beeinflussen nicht die Verfügbarkeit “lebender” Knoten
•
Partitioning tolerance (Partitionstoleranz)
– System funktioniert bei Netzwerkpartitionierung trotz Verlust von Nachrichten
zwischen Knoten weiter
– Netzwerk-Partitionierung = Knoten aus einer Partition können nicht mehr mit Knoten aus
anderer Partition kommunizieren
Theorem: Ein verteiltes System kann maximal 2 der 3 Eigenschaften gleichzeitig erfüllen.
1-16
CAP Theorem - Fälle
(CA)
Consistency
MongoDB
BigTable
HBase
CP
CP • Konsistent aber nicht verfügbar bei
Netzwerkpartitionierung
• Transaktionen werden blockiert
• Vermeidung möglicher Konflikte bei
Merge zur Sicherstellung der Konsistenz
Availability
AP • Verfügbar aber nicht konsistent bei
Netzwerkpartitionierung
Partition
Tolerance
AP Dynamo/S3
Cassandra
• Writes stets möglich auch wenn keine Kommunikation mit
anderen Knoten möglich (z.B. Synchronisation)
• Notwendigkeit der Konfliktauflösung für inkonsistente Daten
(verschiedene Versionen des selben Datums an verschiedenen Knoten)
Kontroverse:
“2 of 3” irreführend, „CA“ gibt es nicht (CAP gilt für verteilte Systemen):
CAP Twelve Years Later: How the "Rules" Have Changed
Klassifikation der Systeme teilweise schwierig!
Please stop calling databases CP or AP
NoSQL – Data Stores for Big Data
Source: Misconceptions about
the CAP Theorem
17
ACID
• RDBMS gewährleistet für Transaktionen ACID-Eigenschaften
• Atomicity
– ’Alles oder Nichts’-Eigenschaft (Fehlerisolierung)
• Consistency
– eine erfolgreiche Transaktion erhält die DB-Konsistenz
(Gewährleistung der definierten Integritätsbedingungen)
• Isolation
– alle Aktionen innerhalb einer Transaktion müssen vor parallel ablaufenden
Transaktionen verborgen werden („logischer Einbenutzerbetrieb“)
• Durability
– Überleben von Änderungen erfolgreich beendeter Transaktionen trotz beliebiger
(erwarteter) Fehler garantieren (Persistenz)
DBS1 VL Prof. Rahm, Uni Leipzig
1-18
BASE
• BA - Basically Available
– Partieller Ausfall einiger Teile des verteilten Systems  Rest läuft weiter
• Ohne Replikation: Bsp. 1 von 10 Servern fällt aus  10 % der Queries schlagen fehl
• NoSQL DBs mit Replikation (replication level=3, 1 Knotenausfall):
Queries können noch beantwortet werden
• S - Soft State
– Daten werden letztlich mit aktuelleren Daten überschrieben
– Überlappung mit E
• E - Eventually Consistent
– DB kann in inkonsistenten Zustand kommen
– Mehrere Kopien (Replika) der Daten auf versch. Servern können für
kurzen Zeitraum inkonsistent sein
• z.B. Nutzer aktualisiert Daten in einer Kopie, aber andere Kopie behält alten Stand
– Letztendlich aktualisiert der Replikationsmechanismus der NoSQL DB alle Replika
– Verschiedene Typen: casual consistency, read-your-writes consistency,
monotonic read consistency, monotonic write consistency, ..
1-19
Konsistenzmodelle
• Strong Consistency
update(x,v2)
r(x)=v1
r(x)=v2
r(x)=v2
r(x)=v2
t
• Eventual Consistency
update(x,v2)
r(x)=v1
r(x)=v2
r(x)=v1
r(x)=v1
r(x)=v2
r(x)=v1
t
inconsistency window
1-20
Konsistenzmodelle
• Read-your-writes Consistency
update(x,v2)
r(x)=v1
r(x)=v2
r(x)=v1
r(x)=v2
r(x)=v1
t
• Monotonic Read Consistency
update(x,v2)
r(x)=v1
r(x)=v2
r(x)=v1
r(x)=v2
r(x)=v2
r(x)=v1
t
1-21
ACID vs. BASE [Bre00]
• Aufgeben der (strengen) Konsistenz und des logischen
Einbenutzerbetriebs für Verfügbarkeit und Performanz
ACID
BASE
Konsistenz
streng (stets aktuelle Daten pro
Knoten)
Verfügbarkeit
eingeschränkt (z.B. bei Ausfall
des Koordinatorknotens bei 2PC)
Prinzip
• pessimistisch / konservativ
• Anwendung kann sich auf
“Datenqualität” verlassen
Priorität
Transaktionen im logischen
Einbenutzerbetrieb
Evolution
aufwändig (Schema)
1-22
Inhalt der Vorlesung
• Techniken zum effizienten Management großer un-/semi-strukturierter
Datenmengen
• Verteilte Architekturen zum
– Storage (Speicherung)
– Retrieval/Querying (Anfrageverarbeitung)
• Algorithmen zur
– Synchronisation (z.B. für Replikation)
– Realisierung von Transaktionen
1-23
Inhaltsverzeichnis (vorläufig)
1.
Einführung
• NoSQL-Datenbanken
• CAP-Theorem
2.
Key-Value Stores
• Dynamo/Amazon S3
• Redis
• Microsoft Azure Storage
3.
Document Stores
•
CouchDB
•
MongoDB
4.
Search Engines
• Lucene
• Apache Solr
• ElasticSearch
1-24
5.
Record Stores & RDBMS in der Cloud
•
BigTable/HBase, Cassandra
•
Megastore
•
H-Store/VoltDB
•
Synchronisation
•
Transaktionen
6.
Graphdatenmanagement
•
Graphmodell & -algorithmen
•
Graphdatenbanken
•
Parallele Graph-Algorithmen
Literatur
• [Bre00] Brewer. Towards robust distributed systems. Proceedings of the
Annual ACM Symposium on Principles of Distributed Computing (2000)
http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf
• [GL02] Gilbert and Lynch. Brewer's conjecture and the feasibility of
consistent, available, partition-tolerant web services. ACM SIGACT News
(2002)
1-25
Herunterladen