Datenbanken
Big Data
Johannes Schildgen
2015-03-13
schildgen@cs.uni-kl.de
http://bit.ly/schildgen
Analyse
NoSQL-&
Seit Anbeginn der Zivilisation bis zum
Jahre 2003 haben die Menschen
fünf Exabytes an Daten produziert.
Seit Anbeginn der ...
Big Data = Groß ?
Big Data = Groß
Volume
6 Mrd. Mobiltelefone6 Mrd. Mobiltelefone
1,4 Mrd. Mitglieder1,4 Mrd. Mitglieder
140 Mrd. Freundschaften140 Mrd. Freundschaften
290 Mrd. Fotos290 Mrd. Fotos
Big Data = Schnell
Volume Velocity
500 Mio. Tweets / Tag500 Mio. Tweets / Tag 500 Mio. Kommentare / Minute500 Mio. Kommentare / Minute
48h Videos / Sekunde48...
>100 Sensoren>100 Sensoren
Big Data = Heterogen
Volume Velocity Variety
ID Vorname Nachname Beruf Gehalt
1 Anna Schmidt Manager 60000
2 Jakob Heinz Programmierer 50000
3 Susanne Bäcker Programmi...
{
_id: 883,
"Titel": "Notebook zu verkaufen",
"Preis": 400,
"Waehrung": "EURO",
"Verkaeufer": {
"Name": "Franzen",
"Vornam...
„Hab heute nen schönen Tag zs. mit meiner Mutter
in der Frankfurter Innenstadt verbracht, Pics folgen
später.“
Unstrukturi...
Media DatenMedia Daten
Multi-Media DatenMulti-Media Daten
"datastreams": [
{
"name": "temperature",
"description": "Temperature"
"longitude": "2.363471",
"latitude": "48.917536",
"...
Big Data = Unklar
Volume Velocity Variety Veracity
Ich habe Elvis gesehenIch habe Elvis gesehen
Die Elbphilamonie wird 2016 eröffnetDie Elbphilamonie wird 2016 eröffnet
Merk...
Big-Data-Anwendungen
Empfehlungssysteme
• Clustering, Collaborative Filtering
Marketing
• Online-Werbung, Offline-Werbung
...
Relationale Datenbanksysteme
ID Vorname Nachname Beruf Gehalt
1 Anna Schmidt Manager 60000
2 Jakob Heinz Programmierer 500...
SQL
ID Vorname Nachname Beruf Gehalt
1 Anna Schmidt Manager 60000
2 Jakob Heinz Programmierer 50000
3 Susanne Bäcker Progr...
SQL: DDL*
PrID Titel PrLeiter
100 Projekt X 5
101 DB-Projekt 1
CREATE TABLE proj (
PrID INT PRIMARY KEY,
Titel VARCHAR(100...
SQL: Joins
ID Vorname Nachname Beruf Gehalt
1 Anna Schmidt Manager 60000
2 Jakob Heinz Programmierer 50000
3 Susanne Bäcke...
NoSQL-Datenbanken
Not Only SQLNot Only SQL
Alle Open-SourceAlle Open-Source
NoSQL-Datenbanken
Verteilte DatenbankVerteilte Datenbank => Lastverteilung,
Hochverfügbarkeit,
Verteilte Berechnungen
NoSQL-Datenbanken
Key-Value
Stores
Wide-Column
Stores
Dokumenten-
Datenbanken
Graph-
Datenbanken
NoSQL-Datenbanken
Key-Value
Stores
Wide-Column
Stores
Dokumenten-
Datenbanken
Graph-
Datenbanken
Key-Value Stores
Key Value
a 5
b 17
SET c 9SET c 9
c 9 GET aGET a
Key Value
pers:1:vorname Anna
pers:1:nachname Schmidt
pe...
Range Partitioning
Keys: a-e f-j k-n o-s t-z
Key Value
a 6
b 17
c 9
Key Value
pers:1:vorname Anna
pers:1:nachname Schmidt
...
Range Partitioning
Keys: a-pers:0 pers:1-pers:500 … ... …
Key Value
a 6
b 17
c 9
Key Value
pers:1:vorname Anna
pers:1:nach...
Hash Partitioning
0 1 2 3 4
Key Value
a 6
c 9
Key Value
b 17
h(key) = … mod 5h(key) = … mod 5
Key Value
c 9
Hash Partitioning
0 1 2 3 4
Key Value
a 6
Key Value
b 17
h(key) = … mod 4h(key) = … mod 4
X
Consistent Hashing
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Key Value
a 6
c 9
Key Value
b 17
h(key) = … mod 20h(k...
Consistent Hashing
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Key Value
a 6
c 9
Key Value
b 17
X
h(key) = … mod 20h(key) = … mo...
NoSQL-Datenbanken
Key-Value
Stores
Wide-Column
Stores
Dokumenten-
Datenbanken
Graph-
Datenbanken
Wide-Column Stores SCAN ‘t’SCAN ‘t’
GET ‘t’, ‘5’GET ‘t’, ‘5’
SET ‘t’, ‘4’,
‘geboren’, ‘1982’
SET ‘t’, ‘4’,
‘geboren’, ‘198...
Wide-Column Stores
Row-ID Info Chef-von
1 Vorname
Anna
Nachname
Schmidt
2
2015-01-01
2 Nachname
Heinz
Geboren
1982
3
2014-...
NoSQL-Datenbanken
Key-Value
Stores
Wide-Column
Stores
Dokumenten-
Datenbanken
Graph-
Datenbanken
{
_id: 883,
"Titel": "Notebook zu verkaufen",
"Preis": 400,
"Waehrung": "EURO",
"Verkaeufer": {
"Name": "Franzen",
"Vornam...
NoSQL-Datenbanken
Key-Value
Stores
Wide-Column
Stores
Dokumenten-
Datenbanken
Graph-
Datenbanken
I
J
F
G
H
D
A
B
CE
Graph-Datenbanken
ls –f Freund:OUT Hls –f Freund:OUT H
Graph-Datenbanken
H
vorname: Achim
nachname:Schneider
gehalt:50000
ls –f gehalt>40000ls –f gehalt>40000
NoSQL-Datenbanken
Key-Value
Stores
Wide-Column
Stores
Dokumenten-
Datenbanken
Graph-
Datenbanken
ACID
Atomarität
Konsistenz
Isolation
Dauerhaftigkeit
Alles-oder-Nichts-PrinzipAlles-oder-Nichts-Prinzip
Transaktion hinter...
ACID
Atomarität
Konsistenz
Isolation
Dauerhaftigkeit
a = 10
b = 10
Begin of Transaction
a -= 2
b += 2
End of Transaction
a...
BASE
Basically
Avaiable
Soft State
Eventual
Consistent
a = 10
b = 10
a -= 2
b += 2
a = 10
b = 10
BASE
Basically
Avaiable
Soft State
Eventual
Consistent
a = 10
b = 10
a -= 2
b += 2
a = 10
b = 12
BASE
Basically
Avaiable
Soft State
Eventual
Consistent
a = 10
b = 10
a -= 2
b += 2
a = 8
b = 12
CAP-Theorem
Nimm 2
Consistency
Availability
Partition
Tolerance
Leseoperation
liefert stets
aktuellen Wert
Leseoperation
l...
CAP-Theorem
a: 10 10 10 10 10
SET a 8SET a 8
CAP-Theorem
a: 8 10 10 10 10
CAP-Theorem
a: 8 8 8 10 8
CAP-Theorem
a: 8 8 8 8 8
Konsistent
CAP-Theorem
In einem verteilten System gehen Nachrichten
verloren oder kommen verzögert an.
Nimm 2
Consistency
Availabilit...
CAP-Theorem (Beweis-Skizze)
a: 8 8 8 10 8
GET aGET a
Inkonsistent
Nimm 2
Consistency
Availability
Partition
Tolerance
CAP-Theorem (Beweis-Skizze)
a: 8 8 8 10 8
GET aGET a
Nimm 2
Consistency
Availability
Partition
Tolerance
CAP-Theorem (Beweis-Skizze)
a: 8 8 8 8 8
GET aGET a
Nimm 2
Consistency
Availability
Partition
Tolerance
Strong Consistency
a: 10 10 10 10 10
SET a 8SET a 8 SET a 8SET a 8 SET a 8SET a 8 SET a 8SET a 8 SET a 8SET a 8
N = 5
W = ...
Strong Consistency
SET a 8SET a 8
GET aGET a GET aGET a GET aGET a GET aGET a GET aGET a
a: 8 10 10 10 10
N = 5
W = 1
R = 5
Strong Consistency: W+R>N
SET a 8SET a 8
GET aGET a GET aGET a GET aGET a
a: 8 8 8 10 10
N = 5
W = 3
R = 3
SET a 8SET a 8 ...
Eventual Consistency: W+R≤N
SET a 8SET a 8
GET aGET a GET aGET a GET aGET a
a: 8 8 10 10 10
N = 5
W = 2
R = 3
SET a 8SET a...
Map Reduce
MapReduce
Wandle Datensatz für
Datensatz in Key-Value-Paare
Wandle Datensatz für
Datensatz in Key-Value-Paare
S...
MapReduce
map(zeilennr, text):
for each word in text:
emit(word, 1)
reduce(word, values):
sum = 0
for each v in values:
su...
MapReduceMap
Map
Map
Map
Map
Reduce
Reduce
Reduce
Reduce
Reduce
MapReduce
• Von Google
• Freie Implementierung: Apache Hadoop
• Eingabe-/Ausgabe-Formate:
• HBase
• MongoDB
• HDFS (Hadoop...
Big-Data-Analysen
DB
Upload
Map Reduce
Σ
StatistikenStatistiken
EmpfehlungenEmpfehlungen
Oft Personenbezogene Daten Anonym...
Big-Data-Analysen
DB
Klick
Map Reduce
Σ
Uwe Peters klickt auf Laptop-Werbung
Mike Lorenz klickt auf Kinofilm-Werbung
Frank...
k-Anonymität
Ein sichtbares Ergebnis hat seinen
Ursprung in mind. k Datensätzen
Ein sichtbares Ergebnis hat seinen
Ursprun...
k-Anonymität
ID Name PLZ Geschl Geboren Krankheit
1 FrankaMeyer 67663 W 1988 Diabetes
2 Heinrich Schmidt 54550 M 1984 Mage...
k-Anonymität
ID Name PLZ Geschl Geboren Krankheit
1 FrankaMeyer 67663 W 1988 Diabetes
2 Heinrich Schmidt 54550 M 1984 Mage...
k-Anonymität
ID Name PLZ Geschl Geboren Krankheit
1 FrankaMeyer 67663 W 1988 Diabetes
2 Heinrich Schmidt 54550 M 1984 Mage...
k-Anonymität
ID Name PLZ Geschl Geboren Krankheit
1 FrankaMeyer 67663 W 1988 Diabetes
2 Heinrich Schmidt 54550 M 1984 Mage...
k-Anonymität
ID Name PLZ Geschl Geboren Krankheit
1 FrankaMeyer 67663 W 1988 Diabetes
2 Heinrich Schmidt 54550 M 1984 Mage...
k-Anonymität
ID Name PLZ Geschl Geboren Krankheit
1 FrankaMeyer 67663 W 1988 Diabetes
2 Heinrich Schmidt 54550 M 1984 Mage...
k-Anonymität
ID Name PLZ Geschl Geboren Gehalt
1 FrankaMeyer 67663 W 1988 50000
2 Heinrich Schmidt 54550 M 1984 40000
3 Pe...
Zusammenfassung
• Big Data
• Volume
• Velocity
• Variety
• Veracity
• NoSQL
• Key-Value-, Wide-Column-, Dokumenten-, Graph...
Quellen / Weitere Literatur
• NoSQL: Einstieg in die Welt nichtrelationaler Web
2.0 Datenbanken, Stefan Edlich, 2011
• htt...
Nächste SlideShare
Wird geladen in …5
×

Big-Data-Analyse und NoSQL-Datenbanken

898 Aufrufe

Veröffentlicht am

Ein Vortrag über Big Data und NoSQL-Datenbanken

Veröffentlicht in: Daten & Analysen
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
898
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
9
Aktionen
Geteilt
0
Downloads
12
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Big-Data-Analyse und NoSQL-Datenbanken

  1. 1. Datenbanken Big Data Johannes Schildgen 2015-03-13 schildgen@cs.uni-kl.de http://bit.ly/schildgen Analyse NoSQL-&
  2. 2. Seit Anbeginn der Zivilisation bis zum Jahre 2003 haben die Menschen fünf Exabytes an Daten produziert. Seit Anbeginn der Zivilisation bis zum Jahre 2003 haben die Menschen fünf Exabytes an Daten produziert. Mittlerweile produzieren wir fünf Exabytes alle zwei Tage. Mittlerweile produzieren wir fünf Exabytes alle zwei Tage. Eric Schmidt – Executive Chairman, Google Eric Schmidt.jpg, Author: Gisela Giardino, Wikimedia Commons, 12 April2007,20:24:40
  3. 3. Big Data = Groß ?
  4. 4. Big Data = Groß Volume
  5. 5. 6 Mrd. Mobiltelefone6 Mrd. Mobiltelefone
  6. 6. 1,4 Mrd. Mitglieder1,4 Mrd. Mitglieder 140 Mrd. Freundschaften140 Mrd. Freundschaften 290 Mrd. Fotos290 Mrd. Fotos
  7. 7. Big Data = Schnell Volume Velocity
  8. 8. 500 Mio. Tweets / Tag500 Mio. Tweets / Tag 500 Mio. Kommentare / Minute500 Mio. Kommentare / Minute 48h Videos / Sekunde48h Videos / Sekunde
  9. 9. >100 Sensoren>100 Sensoren
  10. 10. Big Data = Heterogen Volume Velocity Variety
  11. 11. ID Vorname Nachname Beruf Gehalt 1 Anna Schmidt Manager 60000 2 Jakob Heinz Programmierer 50000 3 Susanne Bäcker Programmierer 50000 4 Gregor Meyer Berater 60000 5 Carlo Franzen Programmierer 45000 Strukturierte DatenStrukturierte Daten
  12. 12. { _id: 883, "Titel": "Notebook zu verkaufen", "Preis": 400, "Waehrung": "EURO", "Verkaeufer": { "Name": "Franzen", "Vorname": "Carlo", "maennlich": true, "Hobbys": [ "Reiten", "Golfen", "Lesen" ], "Alter": 42, "Kinder": [], "Partner": null } } Semi-Strukturierte DatenSemi-Strukturierte Daten
  13. 13. „Hab heute nen schönen Tag zs. mit meiner Mutter in der Frankfurter Innenstadt verbracht, Pics folgen später.“ Unstrukturierte DatenUnstrukturierte Daten
  14. 14. Media DatenMedia Daten
  15. 15. Multi-Media DatenMulti-Media Daten
  16. 16. "datastreams": [ { "name": "temperature", "description": "Temperature" "longitude": "2.363471", "latitude": "48.917536", "timezone": "+1", „value": „19.2", "unit": "Celsius" } SensordatenSensordaten
  17. 17. Big Data = Unklar Volume Velocity Variety Veracity
  18. 18. Ich habe Elvis gesehenIch habe Elvis gesehen Die Elbphilamonie wird 2016 eröffnetDie Elbphilamonie wird 2016 eröffnet Merkel ist zurückgetretenMerkel ist zurückgetreten Die Elbphilamobie öffnet 2015 Die Elbphilamobie öffnet 2015
  19. 19. Big-Data-Anwendungen Empfehlungssysteme • Clustering, Collaborative Filtering Marketing • Online-Werbung, Offline-Werbung Prozessoptimierung • Fertigung, Lagerhaltung, Personalplanung Diagnosetools • KFZ, Luft- und Raumfahrt Forschung • Klima, Rohstoffe, Krankheiten
  20. 20. Relationale Datenbanksysteme ID Vorname Nachname Beruf Gehalt 1 Anna Schmidt Manager 60000 2 Jakob Heinz Programmierer 50000 3 Susanne Bäcker Programmierer 50000 4 Gregor Meyer Berater 60000 5 Carlo Franzen Programmierer 45000
  21. 21. SQL ID Vorname Nachname Beruf Gehalt 1 Anna Schmidt Manager 60000 2 Jakob Heinz Programmierer 50000 3 Susanne Bäcker Programmierer 50000 4 Gregor Meyer Berater 60000 5 Carlo Franzen Programmierer 45000 SELECT vorname, nachname FROM pers WHERE gehalt > 50000 SELECT vorname, nachname FROM pers WHERE gehalt > 50000
  22. 22. SQL: DDL* PrID Titel PrLeiter 100 Projekt X 5 101 DB-Projekt 1 CREATE TABLE proj ( PrID INT PRIMARY KEY, Titel VARCHAR(100) NOT NULL, PrLeiter INT REFERENCES pers(ID)) CREATE TABLE proj ( PrID INT PRIMARY KEY, Titel VARCHAR(100) NOT NULL, PrLeiter INT REFERENCES pers(ID)) * Data-DefinitionLanguage
  23. 23. SQL: Joins ID Vorname Nachname Beruf Gehalt 1 Anna Schmidt Manager 60000 2 Jakob Heinz Programmierer 50000 3 Susanne Bäcker Programmierer 50000 4 Gregor Meyer Berater 60000 5 Carlo Franzen Programmierer 45000 SELECT proj.titel FROM pers, proj WHERE proj.PrLeiter = pers.ID AND pers.beruf = ‘Manager’ SELECT proj.titel FROM pers, proj WHERE proj.PrLeiter = pers.ID AND pers.beruf = ‘Manager’ PrID Titel PrLeiter 100 Projekt X 5 101 DB-Projekt 1
  24. 24. NoSQL-Datenbanken Not Only SQLNot Only SQL Alle Open-SourceAlle Open-Source
  25. 25. NoSQL-Datenbanken Verteilte DatenbankVerteilte Datenbank => Lastverteilung, Hochverfügbarkeit, Verteilte Berechnungen
  26. 26. NoSQL-Datenbanken Key-Value Stores Wide-Column Stores Dokumenten- Datenbanken Graph- Datenbanken
  27. 27. NoSQL-Datenbanken Key-Value Stores Wide-Column Stores Dokumenten- Datenbanken Graph- Datenbanken
  28. 28. Key-Value Stores Key Value a 5 b 17 SET c 9SET c 9 c 9 GET aGET a Key Value pers:1:vorname Anna pers:1:nachname Schmidt pers:1:projekte [“DB-Projekt“] INCR aINCR a a 6 RPUSH pers:1:projekte “Projekt Y” RPUSH pers:1:projekte “Projekt Y” pers:1:projekte [“DB-Projekt“, “Projekt Y“]
  29. 29. Range Partitioning Keys: a-e f-j k-n o-s t-z Key Value a 6 b 17 c 9 Key Value pers:1:vorname Anna pers:1:nachname Schmidt pers:1:projekte [“DB-Projekt“, “Projekt Y“]
  30. 30. Range Partitioning Keys: a-pers:0 pers:1-pers:500 … ... … Key Value a 6 b 17 c 9 Key Value pers:1:vorname Anna pers:1:nachname Schmidt pers:1:projekte [“DB-Projekt“, “Projekt Y“]
  31. 31. Hash Partitioning 0 1 2 3 4 Key Value a 6 c 9 Key Value b 17 h(key) = … mod 5h(key) = … mod 5
  32. 32. Key Value c 9 Hash Partitioning 0 1 2 3 4 Key Value a 6 Key Value b 17 h(key) = … mod 4h(key) = … mod 4 X
  33. 33. Consistent Hashing 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Key Value a 6 c 9 Key Value b 17 h(key) = … mod 20h(key) = … mod 20
  34. 34. Consistent Hashing 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Key Value a 6 c 9 Key Value b 17 X h(key) = … mod 20h(key) = … mod 20 16 17 18 19
  35. 35. NoSQL-Datenbanken Key-Value Stores Wide-Column Stores Dokumenten- Datenbanken Graph- Datenbanken
  36. 36. Wide-Column Stores SCAN ‘t’SCAN ‘t’ GET ‘t’, ‘5’GET ‘t’, ‘5’ SET ‘t’, ‘4’, ‘geboren’, ‘1982’ SET ‘t’, ‘4’, ‘geboren’, ‘1982’ Row-ID Vorname Nachname Beruf Gehalt 1 Anna Schmidt Manager 60000 2 Jakob Heinz Programmierer 50000 3 Susanne Bäcker Programmierer 50000 4 Gregor Meyer Berater 60000 5 Carlo Franzen Programmierer 45000 SET ‘t’, ‘3’, Beruf, ‘Berater’ SET ‘t’, ‘3’, Beruf, ‘Berater’
  37. 37. Wide-Column Stores Row-ID Info Chef-von 1 Vorname Anna Nachname Schmidt 2 2015-01-01 2 Nachname Heinz Geboren 1982 3 2014-06-01 4 2014-02-15 3 Vorname Susanne Beruf Bäcker 4 Vorname Carlo Nachname Franzen Column FamilyColumn Family GET ‘t’, ‘2’, {COLUMNS=>['Chef-von:']}GET ‘t’, ‘2’, {COLUMNS=>['Chef-von:']}
  38. 38. NoSQL-Datenbanken Key-Value Stores Wide-Column Stores Dokumenten- Datenbanken Graph- Datenbanken
  39. 39. { _id: 883, "Titel": "Notebook zu verkaufen", "Preis": 400, "Waehrung": "EURO", "Verkaeufer": { "Name": "Franzen", "Vorname": "Carlo", "maennlich": true, "Hobbys": [ "Reiten", "Golfen", "Lesen" ], "Alter": 42, "Kinder": [], "Partner": null } } Dokumenten-Datenbanken JSON-DokumentJSON-Dokument db.prod.find()db.prod.find() db.prod.find({Preis: { $gt: 100} }, {Titel:1}) db.prod.find({Preis: { $gt: 100} }, {Titel:1}) db.prod.insert({_id: 884, Titel:”xyz”}) db.prod.insert({_id: 884, Titel:”xyz”})
  40. 40. NoSQL-Datenbanken Key-Value Stores Wide-Column Stores Dokumenten- Datenbanken Graph- Datenbanken
  41. 41. I J F G H D A B CE Graph-Datenbanken ls –f Freund:OUT Hls –f Freund:OUT H
  42. 42. Graph-Datenbanken H vorname: Achim nachname:Schneider gehalt:50000 ls –f gehalt>40000ls –f gehalt>40000
  43. 43. NoSQL-Datenbanken Key-Value Stores Wide-Column Stores Dokumenten- Datenbanken Graph- Datenbanken
  44. 44. ACID Atomarität Konsistenz Isolation Dauerhaftigkeit Alles-oder-Nichts-PrinzipAlles-oder-Nichts-Prinzip Transaktion hinterlässt konsistenten DB-Zustand Transaktion hinterlässt konsistenten DB-Zustand Parallel laufenden TAs beeinflussen sich nicht Parallel laufenden TAs beeinflussen sich nicht Freigegebene Änderungen gehen nicht verloren Freigegebene Änderungen gehen nicht verloren
  45. 45. ACID Atomarität Konsistenz Isolation Dauerhaftigkeit a = 10 b = 10 Begin of Transaction a -= 2 b += 2 End of Transaction a = 8 b = 12
  46. 46. BASE Basically Avaiable Soft State Eventual Consistent a = 10 b = 10 a -= 2 b += 2 a = 10 b = 10
  47. 47. BASE Basically Avaiable Soft State Eventual Consistent a = 10 b = 10 a -= 2 b += 2 a = 10 b = 12
  48. 48. BASE Basically Avaiable Soft State Eventual Consistent a = 10 b = 10 a -= 2 b += 2 a = 8 b = 12
  49. 49. CAP-Theorem Nimm 2 Consistency Availability Partition Tolerance Leseoperation liefert stets aktuellen Wert Leseoperation liefert stets aktuellen Wert System nimmt Anfragen entgegen System nimmt Anfragen entgegen Netzwerkknoten können unterschiedlichen Zustand haben Netzwerkknoten können unterschiedlichen Zustand haben
  50. 50. CAP-Theorem a: 10 10 10 10 10 SET a 8SET a 8
  51. 51. CAP-Theorem a: 8 10 10 10 10
  52. 52. CAP-Theorem a: 8 8 8 10 8
  53. 53. CAP-Theorem a: 8 8 8 8 8 Konsistent
  54. 54. CAP-Theorem In einem verteilten System gehen Nachrichten verloren oder kommen verzögert an. Nimm 2 Consistency Availability Partition Tolerance Muss!Muss! entweder … oder entweder … oder entweder … oder entweder … oder
  55. 55. CAP-Theorem (Beweis-Skizze) a: 8 8 8 10 8 GET aGET a Inkonsistent Nimm 2 Consistency Availability Partition Tolerance
  56. 56. CAP-Theorem (Beweis-Skizze) a: 8 8 8 10 8 GET aGET a Nimm 2 Consistency Availability Partition Tolerance
  57. 57. CAP-Theorem (Beweis-Skizze) a: 8 8 8 8 8 GET aGET a Nimm 2 Consistency Availability Partition Tolerance
  58. 58. Strong Consistency a: 10 10 10 10 10 SET a 8SET a 8 SET a 8SET a 8 SET a 8SET a 8 SET a 8SET a 8 SET a 8SET a 8 N = 5 W = 5 R = 1
  59. 59. Strong Consistency SET a 8SET a 8 GET aGET a GET aGET a GET aGET a GET aGET a GET aGET a a: 8 10 10 10 10 N = 5 W = 1 R = 5
  60. 60. Strong Consistency: W+R>N SET a 8SET a 8 GET aGET a GET aGET a GET aGET a a: 8 8 8 10 10 N = 5 W = 3 R = 3 SET a 8SET a 8 SET a 8SET a 8
  61. 61. Eventual Consistency: W+R≤N SET a 8SET a 8 GET aGET a GET aGET a GET aGET a a: 8 8 10 10 10 N = 5 W = 2 R = 3 SET a 8SET a 8
  62. 62. Map Reduce MapReduce Wandle Datensatz für Datensatz in Key-Value-Paare Wandle Datensatz für Datensatz in Key-Value-Paare Sortiere alles nach Key Sortiere alles nach Key Verarbeite für jeden Key die Liste der Values Verarbeite für jeden Key die Liste der Values
  63. 63. MapReduce map(zeilennr, text): for each word in text: emit(word, 1) reduce(word, values): sum = 0 for each v in values: sum = sum + v emit(word, sum) 1: ich bin ich1: ich bin ich (ich, 1)(ich, 1) (bin, 1)(bin, 1) (ich, 1)(ich, 1) (ich, [1,1])(ich, [1,1]) (ich, 2)(ich, 2)
  64. 64. MapReduceMap Map Map Map Map Reduce Reduce Reduce Reduce Reduce
  65. 65. MapReduce • Von Google • Freie Implementierung: Apache Hadoop • Eingabe-/Ausgabe-Formate: • HBase • MongoDB • HDFS (Hadoop Distributed File System) • Höhere Sprachen • Hive (Generiert MapReduce aus SQL) • Pig • NotaQL
  66. 66. Big-Data-Analysen DB Upload Map Reduce Σ StatistikenStatistiken EmpfehlungenEmpfehlungen Oft Personenbezogene Daten Anonymisierte/ Aggregierte Daten
  67. 67. Big-Data-Analysen DB Klick Map Reduce Σ Uwe Peters klickt auf Laptop-Werbung Mike Lorenz klickt auf Kinofilm-Werbung FrankaZwickau klick auf Kinofilm-Werbung (Laptop, 1) (Kinofilm, 2)
  68. 68. k-Anonymität Ein sichtbares Ergebnis hat seinen Ursprung in mind. k Datensätzen Ein sichtbares Ergebnis hat seinen Ursprung in mind. k Datensätzen => Verhindert, dass man auf die Datensätze rückschließen kann
  69. 69. k-Anonymität ID Name PLZ Geschl Geboren Krankheit 1 FrankaMeyer 67663 W 1988 Diabetes 2 Heinrich Schmidt 54550 M 1984 Magersucht 3 Peter Huber 67663 M 1984 Schizophrenie 4 Uta Thiel 54550 W 1988 Magersucht 5 Gregor Bauer 67653 M 1984 Diabetes Identifier Quasi-Identifier Sensibles Attribut Krankheit von Uta ThielKrankheit von Uta Thiel X Identifier
  70. 70. k-Anonymität ID Name PLZ Geschl Geboren Krankheit 1 FrankaMeyer 67663 W 1988 Diabetes 2 Heinrich Schmidt 54550 M 1984 Magersucht 3 Peter Huber 67663 M 1984 Schizophrenie 4 Uta Thiel 54550 W 1988 Magersucht 5 Gregor Bauer 67653 M 1984 Diabetes Krankheiten von Frauen aus 54550, die 1988 geboren sind Krankheiten von Frauen aus 54550, die 1988 geboren sind X Identifier Quasi-Identifier Sensibles AttributIdentifier
  71. 71. k-Anonymität ID Name PLZ Geschl Geboren Krankheit 1 FrankaMeyer 67663 W 1988 Diabetes 2 Heinrich Schmidt 54550 M 1984 Magersucht 3 Peter Huber 67663 M 1984 Schizophrenie 4 Uta Thiel 54550 W 1988 Magersucht 5 Gregor Bauer 67653 M 1984 Diabetes Krankheiten von Frauen, die 1988 geboren sind Krankheiten von Frauen, die 1988 geboren sind Identifier Quasi-Identifier Sensibles AttributIdentifier
  72. 72. k-Anonymität ID Name PLZ Geschl Geboren Krankheit 1 FrankaMeyer 67663 W 1988 Diabetes 2 Heinrich Schmidt 54550 M 1984 Magersucht 3 Peter Huber 67663 M 1984 Schizophrenie 4 Uta Thiel 54550 W 1988 Magersucht 5 Gregor Bauer 67653 M 1984 Diabetes Keine Anonymität bzgl. dieses Quasi-Identifiers Keine Anonymität bzgl. dieses Quasi-Identifiers Quasi-Identifier
  73. 73. k-Anonymität ID Name PLZ Geschl Geboren Krankheit 1 FrankaMeyer 67663 W 1988 Diabetes 2 Heinrich Schmidt 54550 M 1984 Magersucht 3 Peter Huber 67663 M 1984 Schizophrenie 4 Uta Thiel 54550 W 1988 Magersucht 5 Gregor Bauer 67653 M 1984 Diabetes 2-Anonymiät2-Anonymiät
  74. 74. k-Anonymität ID Name PLZ Geschl Geboren Krankheit 1 FrankaMeyer 67663 W 1988 Diabetes 2 Heinrich Schmidt 54550 M 1984 Magersucht 3 Peter Huber 67663 M 1984 Schizophrenie 4 Uta Thiel 54550 W 1988 Magersucht 5 Gregor Bauer 67653 M 1984 Diabetes 2-Anonymiät2-Anonymiät Äquivalenzklassen: ((W, 1988), {Diabetes, Magersucht}, 2) ((M, 1984), {Diabetes, Magersucht, Schizophrenie},3)
  75. 75. k-Anonymität ID Name PLZ Geschl Geboren Gehalt 1 FrankaMeyer 67663 W 1988 50000 2 Heinrich Schmidt 54550 M 1984 40000 3 Peter Huber 67663 M 1984 50000 4 Uta Thiel 54550 W 1988 60000 5 Gregor Bauer 67653 M 1984 70000 2-Anonymiät2-Anonymiät Äquivalenzklassen: ((W, 1988), AVG: 55000, 2) ((M, 1984), AVG: 50000, 3)
  76. 76. Zusammenfassung • Big Data • Volume • Velocity • Variety • Veracity • NoSQL • Key-Value-, Wide-Column-, Dokumenten-, Graph-DBs • BASE, CAP Theorem, Eventual Consistency • MapReduce • k-Anonymität
  77. 77. Quellen / Weitere Literatur • NoSQL: Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken, Stefan Edlich, 2011 • http://nosql-database.org • http://wwwlgis.informatik.uni- kl.de/cms/courses/distributeddatamanagement • http://www.ipd.uni- karlsruhe.de/~buchmann/14SS-Datenschutz

×