Not Only SQL - Universität Trier

Werbung
SoziotechnischeSysteme
Sommer2016
Soziotechnische
Informationssysteme
8. SQL und NoSQL
Die gute alte Zeit
(c)PeterSturm,UniversitätTrier
1
SoziotechnischeSysteme
Sommer2016
Relatio
nale Datenbank
(c)PeterSturm,UniversitätTrier
2
SoziotechnischeSysteme
Sommer2016
RDBMs
• 1970, IBM
• Edgar Codd
• Persistente Datenspeicherung
• Formal fundierte Methode
• Transaktionen
• Retrievalsprache
Kleinere Wehwehchen J
• Impedance Mismatch
– OO als Cure
• Shared Database Integration
– Wachsende Komplexität
• Application Databases
– Integration über Services
– Service-Orientation
(c)PeterSturm,UniversitätTrier
3
SoziotechnischeSysteme
Sommer2016
Ein Server (RDBMS)
Spieler
Spiel
Zug
Stellung
Komme ntar
RDBMS
Mehrere Server (Distribution)
Spieler
Spiel
RDBMS
Stellung
Zug
RDBMS
Komme ntar
RDBMS
(c)PeterSturm,UniversitätTrier
4
SoziotechnischeSysteme
Sommer2016
Mehrere Server (Partitioning)
Spieler
Spiel
Stellung
Zug
Spiel
RDBMS
Zug
Zug
RDBMS
Komme ntar
Stellung
RDBMS
Replikation
• Synchron
– 2PC/3PC, Zeitaufwendig
• Asynchron
– Store and Forward
• Periodisch
• Aperiodisch
(c)PeterSturm,UniversitätTrier
• Snapshot Replication
• Transactional Replication
• Merge Replication
• Statement-based
Replication
– SQL Statements
5
SoziotechnischeSysteme
Sommer2016
Zäsur
• Skalierbarkeit bei RDBMS hat Grenzen
• Datenvolumen
Ve rte ilung
• Ausschöpfen der inhärenten Parallelität
– Echtzeit-Internet
• Zuverlässigkeit
• Verfügbarkeit
• Neue Denkmodelle
Konze ntration
(c)PeterSturm,UniversitätTrier
6
SoziotechnischeSysteme
Sommer2016
NoSQL Datenbank
Relatio
nale Datenbank
(c)PeterSturm,UniversitätTrier
7
SoziotechnischeSysteme
Sommer2016
?
NoS
Q
L Dat
enbank
RDBM
Warum?
• Skalierbarkeit
– Riesige Datenmengen
• Performanz und Elastizität
– Auslastung großer Cluster
• Agile Modelle
– „Erst schießen dann fragen“
(c)PeterSturm,UniversitätTrier
8
SoziotechnischeSysteme
Sommer2016
Konkreter
• Aus Spaß an Neuem
• Hohes Datenwachstum
• Hohe Latenzen
• Online statt Offline
(c)PeterSturm,UniversitätTrier
9
SoziotechnischeSysteme
Sommer2016
Konsequenz
• Viele Server (104 und mehr)
– Netzwerkpartitionierungen werden häufiger
• Mehr Freiheitsgrade
– Datenkonsistenz
– Latenz
• Nicht alle Anwendungen mögen das
(c)PeterSturm,UniversitätTrier
10
SoziotechnischeSysteme
Sommer2016
Themengebiete
• Schema-less statt Schema
• BASE statt ACID
• Horizontale statt vertikale Skalierung
• CAP
– Irgendwann konsistent, garantiert!
Mit oder ohne Schema
(c)PeterSturm,UniversitätTrier
11
SoziotechnischeSysteme
Sommer2016
Schema
• A priori erstelltes Datenmodell
– Objekte
– Objektbeziehungen inkl. Kardinalitäten
• Erweitertes Entity-Relationship-Modell
• Abbildung auf Relationen
– Normalisierung
– Vermeidung von Datenredundanzen
– Werzeugunterstützt
(c)PeterSturm,UniversitätTrier
12
SoziotechnischeSysteme
Sommer2016
Schema
Spieler
2
0..*
Name
1
Spiel
1..*
Erge bnis
1
Elo
1..*
Zug
1
Notation
Stellung
1
1
0..*
0..*
1
0..*
Komme ntar
Inhalt
0..*
Spieler
PKey
Name
Elo
1
Carlse n
2868
2
Aronian
2813
3
Kramnik
2811
4
Anand
2783
5
Sturm
42
Zug
GKey
Lfd
PosKey
Notatio
n
11
1
1234
f3
11
2
1235
e5
11
3
1243
g4
11
4
4242
Qh4#
10
1
1542
e4
(c)PeterSturm,UniversitätTrier
Relationen
Spiel
GKe
y
Weiss
Schwar
z
Resultat
10
1
2
1:0
11
5
1
0:1
13
SoziotechnischeSysteme
Sommer2016
Stellung 4242 (Fool‘s Mate)
SQL
• Structured Query Language
–
–
–
–
Definition
Manipulation
Control
Retrieval
• 1979 entstanden, 1986 ANSI, 1987 ISO
• 2011: SQL/XML
(c)PeterSturm,UniversitätTrier
14
SoziotechnischeSysteme
Sommer2016
Join
• Tabellenverknüpfung
– Primär- und Fremdschlüssel
Spiel
Spieler
PKey
Name
Elo
1
Carlse n
2868
2
Aronian
2813
3
Kramnik
2811
4
Anand
2783
5
Sturm
42
GKe
y
Weiss
Schwar
z
Resultat
10
1
2
1:0
11
5
1
0:1
Schemaless
• Unbekanntes Terrain
• „Moving Target“
• Unstrukturierte /Semi-strukturierte Daten
• Manchmal Strukturiert -> Semistrukturiert
• Höhere Performanz durch Datenaggregation
(c)PeterSturm,UniversitätTrier
15
SoziotechnischeSysteme
Sommer2016
Schema
Spieler
2
0..*
Name
Spiel
1
1..*
Erge bnis
1
Elo
Zug
1..*
1
Notation
Stellung
1
1
0..*
0..*
Komme ntar
Inhalt
1
0..*
0..*
Aggregation
Spieler
Name
2
0..*
Spiel
Erge bnis
1
1..*
1
Elo
Zug
Notation
1..*
1
Stellung
1
1
0..*
0..*
(c)PeterSturm,UniversitätTrier
Komme ntar
Inhalt
0..*
1
0..*
16
SoziotechnischeSysteme
Sommer2016
Beispiel JSON
Bemerkungen
• Aggregate in sich abgeschlossen
• Groß
• Datenredundanzen
• Vielfältige Aggregationsmöglichkeiten
• Nicht wirklich Schemalos
– Implizit im Programmcode
(c)PeterSturm,UniversitätTrier
17
SoziotechnischeSysteme
Sommer2016
NoSQL (Aggregates)
Map-Reduce
NoSQL
NoSQL
NoSQL
Muskeln
statt Hirn
(c)PeterSturm,UniversitätTrier
18
SoziotechnischeSysteme
Sommer2016
Sauer oder seifig?
(c)PeterSturm,UniversitätTrier
19
SoziotechnischeSysteme
Sommer2016
A
C
I
D
tomicity
onsistency
solation
urability
Transaktion
• Mehrere Operationen
als Einheit auffassen
– BOT
...
...
EOT
• Datenkonsistenz
(c)PeterSturm,UniversitätTrier
20
SoziotechnischeSysteme
Sommer2016
Atomicity
• Unteilbarkeit
• „Alles oder Nichts“
• EOT: Abort
• EOT: Commit
Abort
T
Consistency
• Anwendungsdefiniert
– BOT ... EOT
• Datenkonsistenz
Commit
(c)PeterSturm,UniversitätTrier
21
SoziotechnischeSysteme
Sommer2016
Isolation
• Serialisierbarkeit
T1
T2
t
T1
T2
T2
T1
XOR
Durability
(c)PeterSturm,UniversitätTrier
22
SoziotechnischeSysteme
Sommer2016
B
A
S
E
asically
available
oft state
eventual consistency
(c)PeterSturm,UniversitätTrier
23
SoziotechnischeSysteme
Sommer2016
BASE
• Verfügbarkeit
• Wiederherstellbarer Zustand
–
–
–
–
Näherungen
Teilsichten
Latenztoleranz
Schwächt D in ACID ab
• Schwache Konsistenz
– Kopien „letztendlich“ identisch
Flach oder hoch?
(c)PeterSturm,UniversitätTrier
24
SoziotechnischeSysteme
Sommer2016
– Vertikale Skalierung
• Traditionelle DBMS
Betonung „Distributed“
• NoSQL-Systeme
– Horizontale Skalierung
Doch vertikal?
(c)PeterSturm,UniversitätTrier
25
SoziotechnischeSysteme
Sommer2016
In-Memory
• 1 TB Hauptspeicher = 8300 Euro
– 8 GB DIMM, DDR3, 1800 MHz
• ManyCore CPUs
• Teile der DB im Hauptspeicher cachen
• Cache- und speicher-optimierte Algorithmen
Microsoft Hekaton
• Beispiel bwin: 15k TPS auf 250k TPS
• Teil von SQL Server 2012 (xVelocity)
• Maßgeschneiderte Daten- und Indexstrukturen
– Cache-Optimierung (Bw-Tree)
• Lock-free Algorithmen
• Multi-version Concurrency Control
(c)PeterSturm,UniversitätTrier
26
SoziotechnischeSysteme
Sommer2016
128 GB DDR4 DIMM
• Samsung, Ende 2015
– TSV Interconnects, 144 DRAM Chips
– 2.4 GT/s * 8 Byte = 19.2 Gbyte/s/DIMM
Viel Speicher J
128 DIMMs
(c)PeterSturm,UniversitätTrier
27
SoziotechnischeSysteme
Sommer2016
HMC
• Hybrid Memory Cubes
• 320 GB/s statt 11 GB/s (DDR3 DIMM)
(c)PeterSturm,UniversitätTrier
28
SoziotechnischeSysteme
Sommer2016
TSV, HBM und HMC
• Through Silicon Via (TSV)
– Aktuell 4 bald 8 Layer
• High Bandwidth Memory (HBM)
• Hybrid Memory Cube (HMC)
• 20 – 40 Gbyte/s Durchsatz
HBM Specs
(c)PeterSturm,UniversitätTrier
29
SoziotechnischeSysteme
Sommer2016
Nvidia Pascal GPU
16 GB HBM2
1 TB/s
17 Milliarden Transistoren
Bandbreiten
(c)PeterSturm,UniversitätTrier
30
SoziotechnischeSysteme
Sommer2016
Storage-Class Memory
CPU
Main
Memory
Disk
CPU
Main
Memory
PCIe
SSD
Disk
CPU
Main
Memory
SCM
Disk
Andere Stimmen
• Geoffrey W. Burr, IBM
– “es fehlt nur noch eine Zehnerpotenz”
ACM Queue, Nov/Dez 2015
• Nanavati:
(c)PeterSturm,UniversitätTrier
31
SoziotechnischeSysteme
Sommer2016
Oder doch horizontal?
Skalierungsvarianten
• Sharding (= Partitionierung)
– Verteilen der Daten über alle Knoten
• Replikation
– Master (RW) / Slave (R)
– Peer-2-Peer (RW)
• Schnelles Finden
– Distributed Hash Table (DHT)
(c)PeterSturm,UniversitätTrier
32
SoziotechnischeSysteme
Sommer2016
DHT
Hash
Konsistenter Hash
Einfügen neuer Knoten kann nur bei
benachbarten Datensätzen einen
Ortswechsel zur Folge haben.
Alle Operationen liefern
letztendlich ein Ergebnis
Availability
A
CAP Theorem
Arbeitet das System auch im Fall
einer Partitionierung weiter?
Consistency
C
Falls es mehrere Kopien eines Datums
gibt, dann sind diese gleich
(c)PeterSturm,UniversitätTrier
P
Partition
Tolerance
Brewer, 2000
33
SoziotechnischeSysteme
Sommer2016
There is no free lunch!
A
C
P
A
C
CA
P
• Vertikale Skalierung
• Keine Antwort bei erkannter Partitionierung
• Beispiele
– Klassische Datenbanksysteme
(c)PeterSturm,UniversitätTrier
34
SoziotechnischeSysteme
Sommer2016
A
AP
P
C
• Hauptsache Verfügbar
• Hochgradig replizierte Daten
• Inkonsistenzen tolerieren (Eventually)
• Beispiele
– DNS, NoSQL, ...
A
C
CP
P
• Hauptsache konsistent
– Auf alle Knoten warten
• Beispiele
– Geldautomat, ...
(c)PeterSturm,UniversitätTrier
35
SoziotechnischeSysteme
Sommer2016
Historisches
• Wachsende Datenfluten
• Pioniere
– Google BigTable (2004)
– Amazon Dynamo (2007)
• Forschungsergebnisse
sinnvoll anwenden
– Verteilte Systeme, P2P, ...
Datenmodelle
• Schema
– Relationen
– Objekt-relational (UML)
• Schemaless
–
–
–
–
Key-Value
Document
Column-Family
Graph
(c)PeterSturm,UniversitätTrier
36
SoziotechnischeSysteme
Sommer2016
Key
Key
Key
Key
• Größte Gruppe
• „Value opaque“
Key
Key
Value
Value
Value
Value
Value
Value
• Beispiele
– Cassandra, Dynamo(DB), Voldemort, Redis (In-Memory),
MongoDB, FoundationDB (ACID), InfinityDB, ...
Key
Document
• Value zu einem gewissen Grad strukturiert
• Beispiele
– CouchDB (JSON), MongoDB (BSON), OrientDB,
SimpleDB
(c)PeterSturm,UniversitätTrier
37
SoziotechnischeSysteme
Sommer2016
Column-Family
• Beispiele
– BigTable, Accumulo, HBase, ...
Carlsen
Sturm
Anand
Graph
0:1
1:0
f3
• Eher SQL als NoSQL!
– Einige bieten ACID
– Vertikale Skalierung
e5
• Graph Query Languages
g
4
• Beispiele
– Neo4j, OrientDB, FlockDB (Scala)
e4
Qh4
(c)PeterSturm,UniversitätTrier
38
SoziotechnischeSysteme
Sommer2016
• Vertikale Skalierung
Fazit
– In-Memory-Technologien
• Horizontale Skalierung
• Vorteile verteilter Systeme
– Parallelarbeit / Performanz
– Verfügbarkeit
• Nachteile
– Latenzen
– Partitionierungen und Ausfälle
– Schwache Konsistenz
Polyglot Persistence
• Wechselseitige Synergieeffekte
• Innovative Ansätze finden Einzug in RDBMS
• ACID (in Teilen) und SQL für NewSQL
• Nutzung mehrerer DBMS
– Application DB
– Service-Orientierung
(c)PeterSturm,UniversitätTrier
39
SoziotechnischeSysteme
Sommer2016
Neue Denkmodelle
• Vielfach RDBMS weiterhin 1. Wahl
• Mut zu alternativen Ansätzen
– Auch bei „kleineren“ Datenmengen
• Übung / Erfahrung
• Beherrschungsstufe
Relatio
nale Datenbank
(c)PeterSturm,UniversitätTrier
NoSQL Datenbank
40
SoziotechnischeSysteme
Sommer2016
NewSQL Datenbank
NewSQL Datenbank
NewSQL Datenbank
NewSQL Datenbank
NewSQL Datenbank
Referenzen
(c)PeterSturm,UniversitätTrier
41
Herunterladen