8. Big Data und NoSQL-Datenbanken Motivation Big Data – Wachsende Mengen und Vielfalt an Daten – Herausforderungen Systemarchitekturen für Big Data Analytics – Analyse-Pipeline, Near-Real-Time Data Warehouses – Hadoop, MapReduce Eigenschaften von NoSQL-Datenbanken Key Value Stores Document Stores Graph-Datenbanken SS13, © Prof. Dr. E. Rahm 8- 1 DBS 2 Rapide steigende Datenvolumina zunehmende Digitalisierung von Inhalten (Bücher, Kataster, …) Web und soziale Netze wachsende Datenmengen in der Wissenschaften (e-Science), z.B. in Klimaforschung, Experimentalphysik, Lebenswissenschaften und Sozialwissenschaften (Digital Humanities) eingebettete Systeme mit digitalen Mess- und Steuersystemen auch in Alltagsgegenständen Unternehmensprozesse: zahlreiche Geschäftsvorfälle Kommunikation und umfassender Datenaustausch SS13, © Prof. Dr. E. Rahm 8- 2 DBS 2 Wie groß ist Big Data? Big wandelt sich schnell – Gigabytes, Terabytes (1012) – Petabytes (1015), Exabytes (1018), Zettabytes (1021),…… ca 1.8 ZB wurden in 2011 erzeugt; ~8 ZB in 2015 D E a x t a a b y s t i e z s e Source: IDC’s Digital Universe study, sponsored by EMC, June 2011 SS13, © Prof. Dr. E. Rahm DBS 2 8- 3 Datenproduzenten: Soziale Netze, Smartphones, Sensoren … 30 billion RFID tags today (1.3B in 2005) 12+ TBs of tweet data every day 4.6 billion camera phones world wide ? TBs of data every day 100s of millions of GPS enabled devices sold annually 25+ TBs of log data every day 2+ billion 76 million smart meters people on the Web by end 2011 in 2009… 200M by 2014 SS13, © Prof. Dr. E. Rahm 8- 4 DBS 2 Stark zunehmende Erfassung von Daten Gartner: – pro Tag werden 2.5 Exabytes an Daten generiert – 90% aller Daten weltweit wurden in den 2 letzten Jahren erzeugt. SS13, © Prof. Dr. E. Rahm 8- 5 DBS 2 Big Data Challenges (3-4 V’s) Volume Skalierbarkeit von Terabytes nach Petabytes (1K TBs) bis Zetabytes (1 Milliarde TBs) Velocity: Batch, Near-Realtime, Streaming Variety variierende Komplexität: strukturiert, teilstrukturiert, Text Veracity: Vertrauenswürdigkeit SS13, © Prof. Dr. E. Rahm 8- 6 DBS 2 Potentiale für Big Data-Technologien Daten sind Produktionsfaktor ähnlich Betriebsmitteln und Beschäftigten Essentiell für viele Branchen und Wissenschaftsbereiche Valide Grundlage für zahlreche Entscheidungsprozesse – Vorhersage/Bewertung/Kausalität von Ereignissen Echtzeitanalyse von Masse an Roh- und Simulationsdaten Kurzfristige Analysen von Realdaten im Geschäftsleben SS13, © Prof. Dr. E. Rahm 8- 7 DBS 2 NSA-Datenzentrum Utah geplante Eröffnung: Sep. 2013 Speicherkapazität: viele Zettabytes Baukosten: ca 1,2 Mrd $ SS13, © Prof. Dr. E. Rahm 8- 8 DBS 2 Anwendungsdomänen für Big Data Analytics Smarter Healthcare Multi-channel sales Finance Log Analysis Homeland Security Traffic Control Telecom Search Quality Fraud and Risk Retail: Churn, NBO Manufacturing SS13, © Prof. Dr. E. Rahm Trading Analytics 8- 9 DBS 2 Big Data Analyse-Pipeline Quelle: Agrawal et al: Big Data: Challenges and Opportunities, 2011 SS13, © Prof. Dr. E. Rahm 8- 10 DBS 2 Near-Realtime Data Warehouses S. Chaudhuri et al, CACM, Aug. 2011 kontinuierliche Datenintegration zur höheren Datenaktualität Event-Verarbeitung für sofortige Auslösung von operativen Aktionen SS13, © Prof. Dr. E. Rahm DBS 2 8- 11 Complex Event Processing S. Chaudhuri et al, CACM, Aug. 2011 SS13, © Prof. Dr. E. Rahm 8- 12 DBS 2 Technologie-Trends Massiv skalierbare Cloud-Architekturen Frameworks zur automatischen Parallelisierung datenintensiver Aufgaben (MapReduce / Hadoop) Parallelverarbeitung auf unterschiedlichen Stufen – Data Center (Cluster) – Multi-core server – Spezialprozessoren: GPUs /FPGAs In-Memory Datenbanken / Data Warehouses – Column Stores (statt Record Stores) schnellere Externspeicher (SSD) SS13, © Prof. Dr. E. Rahm 8- 13 DBS 2 MapReduce Framework zur automatischen Parallelisierung von Auswertungen auf großen Datenmengen – Entwicklung bei Google – Populäre Open-Source-Implementierung: Hadoop Nutzung v.a. zur Verarbeitung riesiger Mengen teilstrukturierter Daten in einem verteilten Dateisystem – Konstruktion Suchmaschinenindex – Clusterung von News-Artikeln – Spam-Erkennung … SS13, © Prof. Dr. E. Rahm 8- 14 DBS 2 MapReduce Verwendung zweier Funktionen: Map und Reduce Map-Anwendung pro Eingabeobjekt zur Erzeugung von Key-value Paaren – Jedes Key-Value-Paar wird einem Reduce-Task zugeordnet Reduce-Anwendung für jede Objektgruppe mit gleichem Key Reduce Phase Grouping Grouping Partitioning Grouping Map Phase SS13, © Prof. Dr. E. Rahm DBS 2 8- 15 MR-Beispiel: Generierung Text-Index hamlet.txt to be or not to be 12th.txt be not afraid of greatness SS13, © Prof. Dr. E. Rahm to, hamlet.txt be, hamlet.txt or, hamlet.txt not, hamlet.txt afraid, (12th.txt) be, (12th.txt, hamlet.txt) greatness, (12th.txt) not, (12th.txt, hamlet.txt) of, (12th.txt) or, (hamlet.txt) to, (hamlet.txt) be, 12th.txt not, 12th.txt afraid, 12th.txt of, 12th.txt greatness, 12th.txt 8- 16 DBS 2 NoSQL-Datenbanken SS13, © Prof. Dr. E. Rahm 8- 17 DBS 2 Relationale Datenbanken universelle Verbreitung und auf absehbare Zeit ungefährdet für die meisten DB-Anwendungen SQL = mächtige, deklarative Query-Sprache – Standardisierung – Breite Programmierunterstützung (JDBC, Hibernate, …) ACID Reife Technologie Automatische Parallelisierung … SS13, © Prof. Dr. E. Rahm 8- 18 DBS 2 Probleme (objekt-)relationaler Datenbanken Schema-getrieben – weniger geeignet für semi-strukturierte Daten – zu starr für irreguläre Daten, häufige Änderungen relativ hohe Kosten, v.a. für Parallele DBS (kein Open-Source System) Skalierbarkeitsprobleme für Big Data (Web Scale) – Milliarden von Webseiten – Milliarden von Nutzern von Websites und sozialen Netzen ACID / strenge Konsistenz nicht immer erforderlich SS13, © Prof. Dr. E. Rahm 8- 19 DBS 2 NoSQL-Datenbanken Definition von www.nosql-database.org Datenbanken der nächsten Generation de meist – nicht-relational – verteilt, – open-source und – horizontal (auf große Datenmengen) skalierbar sind Ursprünglicher Fokus: moderne “web-scale” Datenbanken Entwicklung seit ca. 2009 Weitere Charakteristika: – – schema-frei, Datenreplikation, einfache API, eventually consistent / BASE (statt ACID) Zunehmende Koexistenz mit SQL – “NoSql" wird als “Not only Sql“ interpretiert SS13, © Prof. Dr. E. Rahm 8- 20 DBS 2 Arten von NoSQL-Systemen Key Value Stores – Amazon Dynamo, Voldemort, Membase, Redis … – Speicherung eines Werts (z.B. BLOB) pro nutzer-definiertem Schlüssel bzw. Speicherung von Attribut/Wert-Paaren – nur einfache key-basierte Lookup/Änderungs-Zugriffe (get, put) Erweiterte Record-Stores / Wide Column Store – Google BigData / Hbase, Hypertable, Cassandra … – Tabellen-basierte Speicherung mit flexibler Erweiterung um neue Attribute Dokument-Datenbanken – CouchDB, MongoDB … – Speicherung semistrukturierter Daten als Dokument (z.B. JSON) Graph-Datenbanken – Neo4J, OrientDB … – Speicherung / Auswertung großer Graph-Strukturen SS13, © Prof. Dr. E. Rahm 8- 21 DBS 2 Grobeinordnung NoSQL-Systeme SS13, © Prof. Dr. E. Rahm 8- 22 DBS 2 Key-Value Stores Speicherung von Schlüssel-Werte-Paare – im einfachsten Fall bleiben Werte systemseitig uninterpretiert (BLOBs) – flexibel, kein Schema – günstig für wenig strukturierte Inhalte bzw stark variable Inhalte, z.B. TwitterNachrichten, Webseiten etc. – keine Verwaltung von Beziehungen schnelle Lese/Schreibzugriffe über Schlüssel – put (key, value) – get (key) keine komplexen Queries (z.B. Bereichsabfragen) SS13, © Prof. Dr. E. Rahm DBS 2 8- 23 Spaltenorientierte Key-Value Stores Vorbild: Google BigTable – Clones: Hbase, Cassandra, … Ziele (BigTable): – Milliarden von Zeilen, Millionen von Spalten, Versionierung (z.B. für Web-Seiten) – einfache Erweiterbarkeit um Spalten (innerhalb vordefinierter Spaltenfamilien) – Mehrdimensionale Keys: Zeilen- und Spalten-Schlüssel, Versionsnr Row Key “com.cnn.www” SS13, © Prof. Dr. E. Rahm Time Stamp Column contents Column Family anchor T9 anchor:cnnsi.com CNN T8 anchor:my.look.ca CNN.COM T6 “<html>.. “ T5 “<html>.. “ 8- 24 DBS 2 Spaltenorientierte Key-Value Stores (2) Weiteres Beispiel Hochskalierbar, replizierte Speicherung Einfache Get/Put-Operationen mit schnellen Zugriffszeiten (Hashing) SS13, © Prof. Dr. E. Rahm 25 8- 25 DBS 2 Dokumenten-Datenbanken Schemalose Speicherung von Dokumenten, v.a. im JSON-Format JSON (JavaScript Object Notation) – geschachtelte Objekt-Notation – Datentypen: String, Zahl, Array [...], Boolean, Nullwert – Objekt { ….} umfasst Menge von Key-Value (Attribut/Wert-) Paaren JSON einfacher als XML, leicht lesbar / schreibbar Beispiel (JSON vs. XML) { "Herausgeber": "Mastercard", "Nummer": "1234-5678-9012-3456", "Währung": "EURO", "Inhaber": { "Name": "Mustermann", "Vorname": "Max", "männlich": true, "Hobbys": [ "Reiten", "Golfen", "Lesen" ], "Kinder": [], "Partner": null } } SS13, © Prof. Dr. E. Rahm 8- 26 <Kreditkarte Herausgeber="Mastercard" Nummer="1234-5678-9012-3456" Waehrung="EURO"> <Inhaber Name="Mustermann" Vorname="Max" maennlich=true Partner="null"> <Hobbys> <Hobby>Reiten</Hobby> <Hobby>Golfen</Hobby> <Hobby>Lesen</Hobby> </Hobbys> <Kinder /> </Inhaber> </Kreditkarte> DBS 2 MongoDB zunehmend Verbreitung findender Dokumenten-Store – Fa. 10 Gen; open source-Version verfügbar – JSON-Dokumente, gespeichert als BSON (Binary JSON) DB besteht aus Kollektionen von Dokumenten Einfache Anfragesprache – Indexierung von Attributen möglich – Map/Reduce-Unterstützung Skalierbarkeit und Fehlertoleranz – Skalierbarkeit durch horizontale Partitionierung der Dokumentenkollektionen unter vielen Knoten (“Sharding”) – Automatische Replikation mit Konsistenzwahrung kein ACID, z.B bzgl Synchronisation – Änderungen nur bzgl einzelner Dokumente atomar SS13, © Prof. Dr. E. Rahm 8- 27 DBS 2 Beispiel: relational vs. dokumentenorientiert Keine Beziehungen zwischen Dokumenten (-> keine Joins) sondern geschachtelte Komponenten (ähnlich NF2, jedoch ohne Schemazwang) – Redundanz bei n:m-Beziehungen SS13, © Prof. Dr. E. Rahm 8- 28 DBS 2 MongoDB: Operationen Beispiele: SS13, © Prof. Dr. E. Rahm 8- 29 DBS 2 MongoDB: Operationen (2) SS13, © Prof. Dr. E. Rahm 8- 30 DBS 2 MapReduce mit MongoDB SS13, © Prof. Dr. E. Rahm 8- 31 DBS 2 Graph-Datenbanken Bessere Unterstützung stark vernetzter Daten als mit Relationenmodell – Soziale Netzwerke – Protein-Netzwerke – stark vernetzte Webdaten / Unternehmensdaten / … Graph-Verwaltung im Relationenmodell oft nicht ausreichend schnell – viele Tabellen, viele Joins – langsame Traversierung von Kanten – langsame Umsetzung von Graph-Algorithmen Graph-Datenbanken – Graph-Datenmodell mit Gleichbehandlung von Entities und Relationships – Graph-Anfragesprachen – Optimierte Graph-Operationen (z.B. finde „friends of friends“) SS13, © Prof. Dr. E. Rahm 8- 32 DBS 2 Klassisches Graph-Problem Brückenproblem von Königsberg (L. Euler, 1735) Gibt es einen Rundgang durch die Stadt, in dem jede der sieben Brücken genau einmal passiert wird? SS13, © Prof. Dr. E. Rahm 8- 33 DBS 2 Neo4J Native Graph-Datenbank von Neo Technology – – – – Community Edition (open-source) + kommerzielle Varianten in Java realisiert , Unterstützung weiterer Sprachen (Ruby, Python) ACID-Unterstützung Skalierbarkeit durch Datenreplikation Zentrale Datenstruktur: Property-Graphen – – – – Knoten/Kanten haben einen Typ (Label) Knoten und Kanten können Properties haben Property: Key-Value-Paar (Key ist vom Typ String) Gerichtete Kanten SS13, © Prof. Dr. E. Rahm 8- 34 DBS 2 Property-Graphen Mehrere, gerichtete Kanten zwischen zwei Knoten möglich (gerichteter „Multigraph“) – Labels für Knoten/Kanten – Properties für Knoten/Kanten Konstanter Aufwand zur Traversierung zu Nachbarknoten (statt Join im RM) SS13, © Prof. Dr. E. Rahm DBS 2 8- 35 API-Datenzugriff Transaction tx = graphDB.beginTx(); bob = graphDB.createNode(); bob.setProperty(“name”, “Bob”); name:Bob name:Alice alice = graphDB.createNode(); alice.setProperty(“name”, “Alice”); LOVES weight:0.8f rel = bob.createRelationshipTo(alice, RelType.LOVES); rel.setProperty(“weight”, 0.8f); tx.commit(); SS13, © Prof. Dr. E. Rahm 8- 36 DBS 2 Query-Sprache Cypher Merkmale – – – – Pattern Matching OLTP-artige Lese/Änderungsoperationen schnelle Traversierungen ACID-basierte Updates Klauseln: SS13, © Prof. Dr. E. Rahm DBS 2 8- 37 Beispiel 1 Beispiel-Graph Beispielanfrage (Friend Of Friend) Ergebnis: Quelle: Neo4J Tutorial, http://docs.neo4j.org SS13, © Prof. Dr. E. Rahm 8- 38 DBS 2 Beispiel 2 Finde Personen mit ähnlichen Interessen (Recommendations) SS13, © Prof. Dr. E. Rahm 8- 39 DBS 2 Zusammenfassung Big Data Herausforderungen – Volume, Variety, Velocity, Veracity, … – Skalierbare Analysen / Machine Learning Unterschiedliche Architekturen: Cloud/Hadoop-Cluster, In-Memory Warehouses, CEP Engines NoSQL – Auslöser: Webskalierbares Data Management – Semistrukturierte schemafreie Daten – Verzicht auf SQL/ACID Unterschiedliche Systemarten – Key/Value-Stores, erweiterte Record-Stores (Spaltenfamilien) – Dokumenten Stores – Graph-Datenbanken Hauptproblem: fehlende Standards SS13, © Prof. Dr. E. Rahm 8- 40 DBS 2