Datenbanktechnologien für Big Data

Werbung
Datenbanktechnologien für
Big Data
Oktober 2013
Prof. Dr. Uta Störl
Hochschule Darmstadt
Big Data Technologien
• Motivation
• Big Data Technologien
– NoSQL-Datenbanksysteme
– Spaltenorientierte Datenbanksysteme
– In-Memory Datenbanksysteme
• Zusammenfassung und Ausblick
Uta Störl
Big Data Technologien
2
Situation: Bigger and Bigger Volumes of Data
• Big Data Use Cases
– Log Analytics (Web Logs, Sensor Logs, Event Logs etc.)
– RFID Tracking and Analytics
– Fraud and Risk Management
– Gaming Data
– Streaming Data
– Social Network Data
– Social Networking Feeds
– …
• Volumes of Data
– Eric Schmidt (Google CEO, 2010): “… 5 exabytes of information
created between the dawn of civilization through 2003 now created
every 2 days, and the pace is increasing.”
Uta Störl
Big Data Technologien
3
Eigenschaften von Big Data: The 4 V‘s
Quelle: L. Haas, IBM
Uta Störl
Big Data Technologien
4
Big Data Technologien
• Emerging Technologies Hype Cycle as of July 2013
Uta Störl
Big Data Technologien
5
Scale up vs. Scale out
Scale up: wenige, große Server
Scale out: viele, kleinere (Commodity-)Server
Quelle: eggmusic.com
Quelle: ibm.com
+
Transparent für DBMS
+
+
Kostengünstigere Hardware
Skalierung in kleineren Stufen möglich
−
−
Hardware-Kosten
Skalierung nur in größeren Stufen
möglich
−
−
Last- und Datenverteilung notwendig
Erhöhte Fehlerrate (mehr und einfachere
Hardware)
Ggf. verteilte Protokolle (2PC, Replikation) 
Uta Störl
−
Big Data Technologien
6
NoSQL: DAS aktuelle Datenbank-Buzzword
• Begriff fachlich eher unglücklich (aber provokativ und einprägsam) –
es existiert noch keine wirklich präzise Definition …
Quelle: http://geekandpoke.typepad.com/geekandpoke/2011/01/nosql.html
Uta Störl
Big Data Technologien
7
NoSQL-Datenbanksysteme: Die Essenz
Datenmodell
• Das zugrundeliegende Datenmodell ist nicht relational.
• Das System ist schemafrei oder hat nur schwächere
Schemarestriktionen.
Skalierungsarchitektur
• Die Systeme sind von Anbeginn an auf eine verteilte und horizontale
Skalierbarkeit ausgerichtet.
• Aufgrund der verteilten Architektur unterstützt das System eine
einfache Datenreplikation.
Uta Störl
Big Data Technologien
8
NoSQL-Datenbanksysteme: Datenmodelle
Key-Value Datenbanksysteme
•
1
{ name: “…”, price: 199, stock: { … } …}
2
{ name: “…”, price: 26, stock: { … } … }
3
{ name: “…”, price: 299, stock: { … } …}
Systeme: Amazon Dynamo/S3,
Redis, Riak, Voldemort, …
Column Family Datenbanksysteme
Row
Key
Time
Stamp
“…”
t9
anchor:cnnsi.com
CNN
t8
anchor:my.look.ch
CNN.com
t6
•
…
{ "id": 1,
"name": “football boot",
"price": 199,
"stock": {
"warehouse": 120, …
•
Systeme: MongoDB, CouchDB,
Couchbase, …
Graph-Datenbanksysteme
ColumnFamily anchor
…
Systeme: Google BigTable, HBase,
Cassandra, Amazon SimpleDB, …
Uta Störl
Document Store Datenbanksysteme
Source: http://it-republik.de/jaxenter/artikel/Neo4j-%96-die-High-Performance-Graphendatenbank-2919.html
•
Systeme: Neo4J, Infinite Graph, …
Big Data Technologien
9
NoSQL: Die Essenz
Datenmodell
• Das zugrundeliegende Datenmodell ist nicht relational.
• Das System ist schemafrei oder hat nur schwächere
Schemarestriktionen.
Skalierungsarchitektur
• Die Systeme sind von Anbeginn an auf eine verteilte und horizontale
Skalierbarkeit ausgerichtet.
• Aufgrund der verteilten Architektur unterstützt das System eine
einfache Datenreplikation.
Uta Störl
Big Data Technologien
10
Konsistenz bei Scale out?
• Strong Consistency (= C in ACID = klassischer Konsistenzbegriff)
– Nach Abschluss eines Updates sehen alle nachfolgenden Zugriffe
(auch an anderen Knoten!) den aktuellen Wert
 Probleme mit Konsistenz (Consistency) bei
– Replikation und verteilten Transaktionen
 Eventual Consistency
– Es ist garantiert, dass nach einem Zeitfenster schlussendlich
(eventually) alle Zugriffe den aktuellen Wert sehen
 BASE (Basically Available, Soft State, Eventually Consistent)
Uta Störl
Big Data Technologien
11
Anwendungsentwicklung mit NoSQL-DBMS
• Herausforderung
– Daten verteilt über hunderte Knoten (zur Erinnerung: scale out)
– Data-to-Code oder Code-to-Data?
 Parallele Verarbeitung sehr großer Datenmenge erfordert neue
Algorithmen und Frameworks
 MapReduce
– (alte) Idee aus funktionaler Programmierung (LISP, ML etc.)
– Operationen ändern die Daten nicht, sondern arbeiten immer auf
neu erstellten Kopien
Unterschiedliche Operationen auf den gleichen Daten beeinflussen
sich nicht (keine Concurrency-Konflikte, keine Deadlocks, keine
RaceConditions)
• Idee neu angewandt und mit komfortablem Framework vorstellt:
J. Dean and S.Gehmawat. MapReduce: Simplified Data Processing on Large
Clusters. OSDI'04. 2004 http://labs.google.com/papers/mapreduce.html
Uta Störl
Big Data Technologien
12
MapReduce: Grundprinzip & WordCount Bsp.
•
Entwickler muss zwei primäre Methoden implementieren
– Map: (key1, val1) → [(key2, val2)]
– Reduce: (key2, [val2]) → [(key3, val3)]
Key
Documents
Doc1
Doc2
Sport, Handball,
Fußball
Fußball, DFB
Sport
MAP
Documents
Doc3
Sport, Halle, Geld
Doc4
Fußball, DFB, Geld
Uta Störl
MAP
Value
Handball 1
Fußball
Key
1
REDUCE
1
Fußball
1
Key
DFB
1
Sport
1
Halle
1
Geld
1
Fußball
1
DFB
1
Geld
1
Value
Sport
2
Handball
1
Fußball
3
Value
Big Data Technologien
Key
REDUCE
Value
DFB
2
Halle
1
Geld
2
13
MapReduce: Architektur und Phasen
Source: https://developers.google.com/appengine/docs/python/dataprocessing/overview
Uta Störl
Big Data Technologien
14
Map & Reduce Funktionen (Prinzip)
Beispielimplementierung in Hadoop (Java)
…
public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
…
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, …) … {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
output.collect(word, one);
}
}
}
public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {
public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, …) … {
int sum = 0;
while (values.hasNext()) {
sum += values.next().get();
}
output.collect(key, new IntWritable(sum));
}
}
Quelle: http://hadoop.apache.org/docs/r1.0.4/mapred_tutorial.html
Uta Störl
Big Data Technologien
15
MapReduce Frameworks
• MapReduce Frameworks kümmern sich um
– Skalierung
– Fehlertoleranz
– (Load balancing)
• MapReduce Frameworks
– Google MapReduce Framework
– Apache Hadoop: standalone oder integriert in NoSQL (und SQL)
DBMS
– Cloudera: kommerzielle Hadoop-Distribution
– Proprietäre MapReduce Frameworks integriert in NoSQL DBMS
Uta Störl
Big Data Technologien
16
NoSQL-Datenbanksysteme: Status Quo
• Vorteile
– Flexible und kostengünstige horizontale Skalierung (scale out)
– Verarbeitung riesiger Datenmengen mit kostengünstiger Software
– Hochgradig parallelisierbare Anfrageverarbeitung mit MapReduce
– Schemaflexibilität (falls benötigt)
• Nachteile
– Ggf. Abstriche bei Konsistenz
– Erhöhter Aufwand für Entwicklung
Uta Störl
Big Data Technologien
17
NoSQL-Datenbanksysteme: Status Quo (Forts.)
•
NoSQL-Datenbanksysteme
– Hochgradig volatiler Markt
•
Trend: Erweiterung von relationalen DBMS und Data Warehouse Systemen
um MapReduce (Hadoop)
– 2012
• Oracle BigData-Appliance mit Hadoop
• Oracle NoSQL 2.0 (Key-Value-Store)
• IBM Infosphere mit Hadoop Support
• Microsoft SQL Server 2012 mit Hadoop Support
– 2013
• SAP mit Hadoop Support (Cloudera Distribution) in SAPs BigData portfolio
(SAP HANA, SAP Sybase IQ, SAP Data Integrator, SAP Business Objects)
• Teradata mit Hadoop Support mit SQL-H-API (statt Map-Reduce native)
• IBM DB2 10.5 mit Hadoop Support
• …
Uta Störl
Big Data Technologien
18
Big Data Technologien
 Motivation
• Big Data Technologien
 NoSQL-Datenbanksysteme
– Spaltenorientierte Datenbanksysteme
– In-Memory Datenbanksysteme
• Zusammenfassung und Ausblick
Uta Störl
Big Data Technologien
19
Spaltenorientierte DBMS: Idee
•
•
OLTP: Lese- und Schreiboperationen auf einzelnen (kompletten) Datensätzen
OLAP: Leseoperationen auf vielen Datensätzen, wobei i.a. nur einzelne
Attribute relevant sind  viele nicht benötigte Attribute werden gelesen
•
Ansatz: spaltenorientierte Speicherung
zeilenorientierte Speicherung
spaltenorientierte Speicherung
+ Einfaches Insert / Update
+ Nur Lesen relevanter Daten
− Lesen nicht benötigter Daten + Bessere Kompressionsmöglichkeiten
− Insert / Update aufwändig
− Lesen kompletter Datensätze aufwändig
Quelle: Harizopoulos/Abadi/Boncz: VLDB2009
Uta Störl
Big Data Technologien
20
Spaltenorientierte DBMS:
(Reales) Telco Data Warehouse Beispiel
• Michael Stonebraker et al.: One Size Fits All? Part 2: Benchmarking
Studies. CIDR 2007
• Star schema:
account
usage
source
toll
Query2:
SELECT account.account_number,
sum (usage.toll_airtime),
sum (usage.toll_price)
FROM usage, toll, source, account
WHERE usage.toll_id = toll.toll_id
AND usage.source_id = source.source_id
AND usage.account_id = account.account_id
AND toll.type_ind in (‘AE’. ‘AA’)
AND usage.toll_price > 0
AND source.type != ‘CIBER’
AND toll.rating_method = ‘IS’
AND usage.invoice_date = 20051013
GROUP BY account.account_number
Uta Störl
7
columns
212
columns
Column Store
Row Store
Query1
2,06
300
Query2
2,20
300
Query3
0,09
300
Query4
5,24
300
Query5
2,88
300
Query Running Times (seconds)
Big Data Technologien
21
Spaltenorientierte DBMS: Status Quo
Spaltenorientierte Systeme
• Sybase IQ
• Vertica
• VectorWise
• …
Trend: Erweiterung von Relationalen Datenbanksystemen um spaltenorientierte
Komponenten
• Accelarator-Systeme
– IBM Smart Analytics Optimizer (2010)
– IBM Informix Warehouse Accelarator (2011)
• Integration in Core-Datenbanksysteme
– Oracle 11g Release 2 auf Exadata (Appliance, 2010): Hybrid columnar
compressed tables
– MS SQL Server 2012: neuer Indextyp: COLUMNSTORE
– IBM DB2 10.5 (BLU Blink Ultimate, 2013): spaltenorientierte Tabellen
• Kombination mit In-Memory-Technologie
– SAP HANA (Appliance, 2010): Row-Store und Column-Store
Uta Störl
Big Data Technologien
22
Big Data Technologien
 Motivation
• Big Data Technologien
 NoSQL-Datenbanksysteme
 Spaltenorientierte Datenbanksysteme
– In-Memory Datenbanksysteme
• Zusammenfassung und Ausblick
Uta Störl
Big Data Technologien
23
In-Memory Datenbanksysteme: Idee
• Traditionell: Trennung OLTP und OLAP (Data Warehouse, Data Mining
etc.)
OLTP
ETL
OLAP
• Vision: Information in Real Time: Anything, Anytime, Anywhere
OLTP &
Real Time OLAP
Hardware Trends
• stetig fallende Speicherpreise
• Multi-Core Prozessoren
 In-Memory Datenbanksysteme
Uta Störl
Big Data Technologien
24
In-Memory Datenbanksysteme: Zeilenorientierte
oder spaltenorientierte Speicherung?
• OLTP  Transaktionale Workloads  Zeilenorientierte (Row-store)
Speicherung
• OLAP  Analytische Workloads  Spaltenorientierte (Column-store)
Speicherung
• OLTP + OLAP  Transaktionale + Analytische Workloads  ???
 Hybride Speicherung
Source: Rösch/Dannecker/Hackenbroch/Färber: A Storage Advisor for Hybrid­Store Databases, VLDB2012
Uta Störl
Big Data Technologien
25
In-Memory Datenbanksysteme: Status Quo
• In-Memory-Datenbanksysteme
– SAP HANA (Appliance)
– EXASolution (by EXASOL)
• Erweiterung von relationalen Datenbanksystemen und
Analysesystemen um In-Memory-Technologien
– Oracle Exalytics In-Memory Machine (Appliance, 2012)
– DB2 10.5 (BLU Blink Ultimate, 2013)
– Oracle 12c In-Memory Option (September 2013)
– Microsoft SQL Server (angekündigt für 2014)
Uta Störl
Big Data Technologien
26
Big Data Technologien:
Zusammenfassung und Ausblick
• Verschiedene Big Data Technologien
– Nicht-relationale, verteilte, horizontal skalierende
Datenbanksysteme (NoSQL-Datenbanksysteme)
• Stark volatiler Markt neuer DBMS
– Spaltenorientierte Datenbanksysteme
– In-Memory Datenbanksysteme
• Trends
– Integration von Techniken zur spaltenorientierten Speicherung in
relationale DBMS
– Integration von In-Memory-Technologien in relationale DBMS und
Analysesysteme
– Integration von JSON-Speicherung in relationale DBMS
• 2013: IBM DB2, IBM Informix mit JSON-Support und MongoDB-API
Uta Störl
Big Data Technologien
27
The Evolving Database Landscape
Source: Matthew Aslett 451 Group
Uta Störl
Big Data Technologien
28
Herunterladen