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