<Insert Picture Here> Oracle Big Data Technologien Ein Überblick Ralf Lange Global ISV & OEM Sales NoSQL: Eine kurze Geschichte Google stellt "BigTable" vor. Internet-Boom: Erste Ansätze selbstgebauter "Datenbanken" Google stellt "MapReduce" vor. "memcachedb" Key-Value-Store als "Cache" für RDBMS Oracle NoSQL Database Amazon stellt "Dynamo" vor. Erste NoSQL OpenSource Projekte Erste NoSQL Einsätze in großen Unternehmen 2000 2003 2004 2006 2007 2008 2010 2011 NoSQL: Was ist das? • Not-only-SQL (2009) • Sammelbegriff für nichtrelationale Datenbanken, die … • • • • massiv parallelisierbar sind weitgehend ohne Datenmodell arbeiten die Datenkonsistenz nicht zwingend durchsetzen sehr entwicklerspezifisch sind • Derzeit noch keine Standardisierung vorhanden • Keine Abfragesprache (eben "NoSQL") • Massive Produktvielfalt (über 122 auf nosql-database.org) • Produkte nur schwer vergleichbar NoSQL Technologie im Einsatz • Sozialen Netzwerke selbst LinkedIn, Facebook, Xing, Google+, Twitter • Soziale Netzwerke als Datenlieferant Facebook-Export laden und verarbeiten … • Personalisierung Amazon, Ebay, Yahoo, … • Internetzentrische Dienste Beispiele: TinyURL, bit.ly • Sensordaten SQL oder NoSQL: Das ist die Frage! ACID oder BASE? SQL: RDBMS (ACID) NoSQL (BASE) Atomicity Consistency Isolation Durability Basically Available Soft State Eventual consistency Zwingend höchste Priorität für Datenkonsistenz und -Integrität Konsistenz und Integrität können teilweise aufgegeben werden ("C" oder "A" in "CAP") Verteilte Datenhaltung per Replikation möglich, aber untergeordnet Verteilte Datenhaltung (Partition Awareness) hat höchste Priorität Datenmodell als Schema Kein Datenmodell Abfragesprache: SQL Keine Abfragesprache; direkte API-Zugriffe Abfrageausführung durch Optimizer Know-How in der Anwendung Generische Datenbank für viele Anwendungen Datenhaltung wird speziell auf eine Anwendung zugeschnitten CAP Theorem Anforderungen an Datenhaltungssysteme • Zwei Anforderungen sind gleichzeitig erfüllbar • C = Consistency • A = Availibility • P = Partition Awareness A • RDBMS Oracle ist CA • Prio 1: Konsistenz und Verfügbarkeit • NoSQL DB is CP oder AP • Prio 1: Verteilte Systeme C P NoSQL und SQL im Kontext erfassen verarbeiten auswerten • Höchste Verfügbarkeit • Höchstes Transaktionsvolumen • Umfassende Analyse • Flexible Strukturen • Daten-"Veredelung" • Durchsatz • In-Place Verarbeitung • Viele Datenquellen • Agile Fortentwicklung • Skalierbarkeit • Ergebnisse in Echtzeit NoSQL und SQL im Kontext Unstructured Schema-less Oracle NoSQL DB Schema Oracle RDBMS Information Density Erfassen Verarbeiten Auswerten NoSQL-Datenhaltungsstrategien Storage Model Pro, Kontra, Anwendungsgebiete Einfach, sehr flexibel, sehr effizient und bekannt Key-value Nicht selbstbeschreibend, keinerlei Schema Anwendungen: Authentifizierung, Personalisierung, Linkverkürzung Effizient für "sparse data", gut geeignet für Aggregatsbildungen Columnar Ineffizent für "satzbasierte Zugriffe" Anwendungen: Activity tracking XML Repositorys, selbstbeschreibende Objekte Document Gegebenenfalls hoher Platzverbrauch Anwendungen: Massiv parallele Dokumentsuche Speicherung von Beziehungen / Netzwerken Graph Allgemeine Suche über ein Attribut sehr schwierig Anwendungen: Soziale Netzwerke Oracle NoSQL Database • Key-Value Datenhaltung • Basiert auf BerkeleyDB JE HA • Konsistenz und Persistenz konfigurierbar • ACID-Transaktionen • Extrem skalier- und parallelisierbar • Hochverfügbarkeit per Replikation • Transparentes Loadbalancing • Einfache Installation und Einrichtung Was ist ein "Key-Value-Store"? Key = Index Key-Value Store CUSTOMERS Key Zeilen Value 010101010 … … … … … 010101011 … … … … … … … … … … … Datenstrukturen sind nicht selbstbeschreibend • Im wesentlichen eine zweispaltige Tabelle – "KEY" und "VALUE" • VALUE kann auch ein komplexes Objekt sein • Die Anwendung kennt die Datenstrukturen – nicht selbstbeschreibend • Joins zu anderen Key-Value Stores allein durch die Anwendung • Einfache Zugriffe: GET, PUT, DELETE • Einfach parallelisierbar Oracle NoSQL Database Zugriffe per API (Java) NoSQL Anwendungstopologie Load balancer Webserver Application Server Storage Nodes Webserver Webserver Application Server Application Server NoSQLDB Treiber NoSQLDB Treiber R Partition 1 M Partition 2 R Partition 3 Oracle NoSQL DB: Terminologie • Partitionen (Partitions) Werteraum für Schlüssel Zuordnung des Schlüssels zu Partitionen per Hash-Algorithmus. .. .. • Replicationsgruppe (Replication Group) Partitionen werden zu Replikationsgruppen zusammengefasst. • Replication Nodes Replikationsgruppen werden von Replikationsknoten verwaltet. Replikation selbst erfolgt durch den NoSQLDBTreiber der Anwendung. • Storage Node Virtuelle oder physikalische Maschine R2 R2 R1 M R2 R1 M R1 .. .. M Replikationskonzept • Master und Replica • Master bedient WRITE Requests • Replica bedienen WRITE und READ Requests • Wichtig: Replikationsfaktor • Replikationsfaktor = Master + Anzahl_Replika • Anzahl_Nodes = Partitionen * Replikationsfaktor • Empfohlen: Replikationsfaktor mindestens 3 • Bei Ausfall eines Master kann eine Replica neuer Master werden "Schreibekonsistenz" einer Transaktion Commit-Verhalten … • Festlegung auf Ebene der Operation oder allgemein • Commit-Policy • Default: NO_SYNC "Schreibekonsistenz" einer Transaktion Commit-Verhalten … • Festlegung auf Ebene der Operation oder allgemein • Replikations-Policy • Default: SIMPLE_MAJORITY Schreibkonsistenz festlegen ... Beispiel: Default setzen • Aufgabe des Entwicklers: Java-Code : Durability d = new Durability( Durability.SyncPolicy.SYNC, Durability.SyncPolicy.SYNC, Durability.ReplicaAckPolicy.NONE ); // Commit-Policy MASTER // Commit-Policy REPLICA // Replikations-Policy <KVStoreConfig>config.setDurability(d); : Lesekonsistenz einer Transaktion • Festlegung auf Ebene der Operation – Defaults sind möglich • Mögliche Einstellungen zur Lesekonsistenz • Absolute Lese nur vom Master • Time-based Lese auch von einer Replica, die aber maximal ein bestimmtes Zeitintervall huinter dem Master liegt • Version Lese auch von einer Replica, die mindestens ein bestimmtes Transaction Token erreicht hat • None Lese vom Master oder von irgendeiner Replica NoSQL und SQL im Kontext Unstructured Schema-less HDFS Oracle NoSQL DB Hadoop Oracle Loader for Hadoop Schema Oracle RDBMS Information Density Erfassen Verarbeiten Auswerten Hadoop: Was ist das? • "Shared Nothing" Compute Architecture • Open Source – Im Gegensatz zur Google-Implementierung • Batchorientiert • API gesteuert – Definition und Aufteilung der Teilaufgaben ist Sache des Entwicklers • Massive Parallelisierung in extrem großen Clustern • Automatische Behandlung eines Knoten-Ausfalls Hadoop: Terminologie • Hadoop Client Schnittstelle zum Cluster; startet die Verarbeitung, tut selbst aber nichts • NameNode Verwaltet Informationen (wo sind die Daten) und Zugriffskontrolle; als einzelner Knoten oder doppelt auslegbar • JobTracker ordnet die Teilaufgaben auf die einzelnen Knoten zu (query coordinator) • Data Nodes Diese enthalten Daten und führen die Aufgaben aus. • Hadoop Distributed File System (HDFS) Gemeinsames Filesystem für Daten Hadoop in Aktion: Datenanalyse NameNode "Weiss, wo die Daten liegen" Aggregate berechnen Client / Program Aggregierte Ergebnisse JobTracker Verteilung von Teilaufgaben DataNodes Ausführung der Teilaufgaben MapReduce: Was ist das? MapReduce is a software framework introduced by Google to support distributed computing on large data sets on clusters of computers.[ • • • • Ein Hadoop-Cluster führt MapReduce-Programme aus Ein Reducer erhält Daten von einem Mapper Mapper und Reducer arbeiten massiv parallel Nahezu alle Programmiersprachen denkbar • Ein Beispiel … MapReduce: Ein Beispiel Input Reader The cloud is water vapor. But is water vapor useful? But it is! Map process the, 1 vapor, 1 cloud, 1 but, 1 is, 1 is, 1 water, 1 Map process water, 1 but, 1 vapor, 1 it, 1 useful, 1 is, 1 Partition, Compare, Redistribute the, 1 is, 1 cloud, 1 but, 1 is, 1 but, 1 is, 1 http://en.wikipedia.org/wiki/MapReduce Water,1 vapor, 1 vapor, 1 it, 1 water, 1 useful, 1 MapReduce: Ein Beispiel the, 1 is, 1 cloud, 1 but, 1 is, 1 but, 1 is, 1 Reducer the, 1 is, 3 cloud, 1 but, 2 Consolidate and Write water,1 vapor, 1 vapor, 1 it, 1 water, 1 useful, 1 Reducer water, 2 it, 1 vapor, 2 useful, 1 the, 1 is, 3 it, 1 cloud, 1 but, 2 useful, 1 water, 2 vapor, 2