25
1-1 NoSQL-Datenbanken Kapitel 1: Einführung Dr. Anika Groß Sommersemester 2017 Universität Leipzig http://dbs.uni-leipzig.de

NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-1

NoSQL-Datenbanken

Kapitel 1: Einführung

Dr. Anika Groß

Sommersemester 2017

Universität Leipzig

http://dbs.uni-leipzig.de

Page 2: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-2

Inhaltsverzeichnis

• NoSQL-Datenbanken

– Motivation und Definition

– Kategorisierung, Eigenschaften

• CAP-Theorem

– ACID-Eigenschaften

– BASE-Ansatz

Page 3: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-3

• 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

Massives Datenwachstum

Quelle: http://hortonworks.com/blog/7-key-drivers-for-the-big-data-market/

Page 4: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-4

Datenproduzenten

Quelle: Einführungsveranstaltung Seminar “New Trends in Big Data” WS 2013/14

Page 5: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-5

Big Data Challenges

Quelle: http://kavyamuthanna.wordpress.com/category/big-data/

Page 6: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-6

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

Page 7: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-7

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

Page 8: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-8

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

Page 9: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-9

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)

Page 10: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

NoSQL – Data Stores for Big Data

Key-Value Stores (Kap.2)

Document Stores (Kap.3)

Graph Databases (Kap.6)

NoSQL Data Stores

10

*

* multi-model

*

• Kollektion von Key/Value-Paaren: 1 Wert (z.B. BLOB) je Schlüssel• Zugriff über Schlüssel: get(key), put(key, value)

• Speicherung semistrukturierter Daten als Dokument (z.B. JSON)• Zugriff über Schlüssel oder einfache Anfragesprache

• 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, ...

Wide Column Stores / Record Stores (Kap.5)

• Tables with records with (many) dynamic columns• Zugriff über Schlüssel oder SQL-ähnliche Anfragesprache

Page 11: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-11

Größe vs. Komplexitätd

ata

size

data complexity

Key-Value

StoresColumn

Stores

Document

Databases

Graph

Databases

90 % of use cases

Page 12: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-12

NoSQL Datenmodelle

https://highlyscalable.files.wordpress.com/2012/02/overview2.png

Page 13: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

NoSQL – Data Stores for Big Data

DB Engines Ranking (Ausschnitt)

13http://db-engines.com/en/ranking

Page 14: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-14

Inhaltsverzeichnis

• NoSQL-Datenbanken

– Definition und Motivation

– Kategorisierung, Eigenschaften

• CAP-Theorem

– ACID-Eigenschaften

– BASE-Ansatz

Page 15: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-15

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

• 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

http://de.wikipedia.org/wiki/Fallacies_of_Distributed_Computing

Page 16: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-16

Theorem: Ein verteiltes System kann maximal 2 der 3 Eigenschaften gleichzeitig erfüllen.

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

• 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

PartitionTolerance

Availability

Consistency

Page 17: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

NoSQL – Data Stores for Big Data

• Konsistent aber nicht verfügbar bei Netzwerkpartitionierung• Transaktionen werden blockiert• Vermeidung möglicher Konflikte bei

Merge zur Sicherstellung der Konsistenz

• Verfügbar aber nicht konsistent bei Netzwerkpartitionierung• 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 APSource: Misconceptions about

the CAP Theorem

CAP Theorem - Fälle

17

PartitionTolerance

Availability

ConsistencyCP

AP

(CA)

MongoDBBigTableHBase

Dynamo/S3 Cassandra

CP

AP

Page 18: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-18

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

Page 19: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-19

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

Page 20: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-20

inconsistency window

Konsistenzmodelle

• Strong Consistency

• Eventual Consistency

r(x)=v1 r(x)=v2

r(x)=v2update(x,v2)

r(x)=v2

r(x)=v1 r(x)=v2

r(x)=v1update(x,v2)

r(x)=v1

r(x)=v1 r(x)=v2

t

t

Page 21: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-21

Konsistenzmodelle

• Read-your-writes Consistency

• Monotonic Read Consistency

r(x)=v1 r(x)=v1

r(x)=v2update(x,v2)

r(x)=v1

r(x)=v1 r(x)=v2

r(x)=v1update(x,v2)

r(x)=v1

r(x)=v2 r(x)=v2

r(x)=v2

t

t

Page 22: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-22

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)

Page 23: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-23

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

Page 24: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-24

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

5. Record Stores & RDBMS in der Cloud

• BigTable/HBase, Cassandra

• Megastore

• H-Store/VoltDB

• Synchronisation

• Transaktionen

6. Graphdatenmanagement

• Graphmodell & -algorithmen

• Graphdatenbanken

• Parallele Graph-Algorithmen

Page 25: NoSQL-Datenbanken · • ElasticSearch 5. Record Stores & RDBMS in der Cloud • BigTable/HBase, Cassandra • Megastore • H-Store/VoltDB • Synchronisation • Transaktionen 6

1-25

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)