Oracle Big Data Technologien - ein Überblick

Werbung
<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
Herunterladen