Oracle Big Data Technologien: Ein Überblick

Werbung
<Insert Picture Here>
Oracle Big Data Technologien
Ein Überblick
Carsten Czarski
Oracle Deutschland B.V. & Co KG
Big Data …
Betrachten von Daten …
… die bislang nicht betrachtet wurden
Neue Beziehungen finden ...
Bessere Entscheidungen fällen …
Was sind "Big Data": Die drei "V"
• Velocity:
Daten entstehen mit hoher Geschwindigkeit – im
Sekundentakt oder schneller
• Volume:
Es entstehen große Datenmengen, von denen man
nichts wegwerfen möchte
• Variety:
Daten entstehen in vielen Varianten; ein relationales
Datenmodell ist schwierig bis unmöglich
Beispiele
• Logdateien aller Art
• Sensordaten
• Soziale Netzwerke (Twitter)
• Streamingdaten
• Und mehr ...
Die Ausgangssituation
Unstructured
Schema-less
SQL
Schema
Information
Density
Reporting
DBMS
(DWH) Data Mining
DBMS
(OLTP)
ETL
Erfassen
Verarbeiten
Auswerten
RDBMS
Sicher
DBA
DataCenter
Big Data
Daten, die bislang nicht betrachtet wurden
Unstructured
Verteilte
Dateisysteme
NoSQL
MapReduce
Hive, Java-Code, etc.
Schema-less
NoSQL
Databanken
“R”
Fachabt.
Entwickler
Agil, flexibel
(Java-)Code!!!
SQL
Schema
Information
Density
Reporting
DBMS
(DWH) Data Mining
DBMS
(OLTP)
ETL
Erfassen
Verarbeiten
Auswerten
RDBMS
Sicher
DBA
DataCenter
Big Data
An die Datenbank denken:
Daten, die bislang nicht betrachtet
wurden
Spatial, Graph, TEXT, XML,
Stat. Funktionen und mehr ...
Unstructured
HDFS
Hive, Java-Code, etc.
Schema-less
Oracle
NoSQL DB
Schema
NoSQL
MapReduce
Big Data
Connectors
RDBMS
Oracle
RDBMS
Oracle
(OLTP)
(DWH)
Oracle R
Enterprise
Oracle
BI EE
Oracle
Advanced
Analytics
ODI
Information
Density
Erfassen
Verarbeiten
Auswerten
Fachabt.
Entwickler
Agil, flexibel
(Java-)Code!!!
SQL
RDBMS
Sicher
DBA
DataCenter
Oracle Big Data Platform
Die Komponenten im
einzelnen: NoSQL DB
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
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
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
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
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
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
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)
Oracle NoSQL Database
Ein Codebeispiel: Java
:
config = new KVStoreConfig("carstenstore", "sccloud032:5000");
store = KVStoreFactory.getStore(config);
store.put(
Key.createKey("EMP_7839_ENAME"),
Value.createValue("KING".getBytes())
);
store.put(
Key.fromByteArray(new String("EMP_7839_SAL").getBytes()),
Value.createValue("5000".getBytes())
);
store.close();
:
"Schreibekonsistenz" einer Transaktion
Commit-Verhalten …
• Festlegung auf Ebene der Operation oder allgemein
• Commit-Policy
• Default: NO_SYNC
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 DB im Rechenzentrum
SQL Zugriff
Strukturierte Analyse
Application
NoSQL DB Driver
HDFS, Hadoop
Oracle NoSQL DB External Tables
Direkte Verbindung zwischen NoSQL DB und RDBMS
Unstructured
HDFS
MapReduce Jobs
Schema-less
Oracle
NoSQL DB
Schema
RDBMS
Oracle
Big Data
Connectors
ODI
nosql_stream
(OLTP)Formatter-Programm
Information
Density
Acquire
Organize
Oracle R
Enterprise
Oracle
RDBMS BI EE
Oracle Oracle
Advanced
(DWH) Analytics
Analyze
Externe Tabellen auf eine NoSQL DB
• Grundlage: Preprocessing external tables
• Preprocessor-Utility: nosql_stream
• Zusammenspiel mit Formatter-Programm
• Wandelt KV-Paare der NoSQL DB in Text um
• Übergabe an SQL*Loader Driver der Datenbank
Application
NoSQL DB Driver
Ext. Tabelle
Datenbankserver
nosql_stream
Formatter-Programm
Externe Tabellen auf eine NoSQL DB
• Hier: Einfaches Beispiel (Zufallszahlen)
• Alle Strukturen möglich
SQL> select * from (
2
select * from nosql_data order by 1
3 ) where rownum< 20;
KEY
VALUE
---------- ---------0
21
1
22
2
66
3
10
4
69
5
25
:
:
Oracle NoSQL DB Editionen
Enterprise Edition und Community Edition
Feature
NoSQL DB CE
NoSQL DB EE
Lizenzkosten
R
MyOracleSupport
R
Diskussionsforen
R
R
Open Source
R
Java und C API
R
R
ACID Transaktionen
R
R
Large Object Support
R
R
Kein Single Point Of Failure
R
R
Oracle NoSQL DB Editionen
Enterprise Edition und Community Edition
Feature
Integation mit Hadoop
NoSQL DB CE
R
NoSQL DB EE
R
RDBMS Integration Ext. Tables
R
Jena Adapter (Graph/SPARQL)
R
Event Processing (CQL)
R
Online Administration
R
R
JMX Monitoring
R
R
SNMP Monitoring
R
Oracle Big Data Platform
Die Komponenten im
einzelnen: Hadoop
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 Distributed Filesystem (HDFS)
Client / Program
Hält die
"File Allocation Table"
und "weiss", wo die
Daten liegen
NameNode
Lesen / Schreiben
DataNodes
Halten die Daten
Jeder Block ist
dreimal vorhanden
Hadoop MapReduce
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
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
Oracle Big Data Connectos
• Oracle Loader for Hadoop
Daten aus einem Hadoop Cluster direkt in die Oracle-Datenbank
laden
• Oracle SQL Connector for HDFS
Direkter Zugriff auf das HDFS für die Oracle-Datenbank
• Oracle Data Integrator (ODI) Application Adapter
for Hadoop
Einbinden eines Hadoop Jobs in einen ODI-Prozess
• Oracle R Connector for Hadoop (ORCH)
Ausführen von R-Prozessen direkt im Hadoop Cluster per
MapReduce
http://www.oracle.com/technetwork/bdc/big-data-connectors/index.html
Oracle Loader für Hadoop
• Aufbereitung von Daten für das RDBMS Oracle:
Partitionieren, sortieren, transformieren
• Direkt aus dem Hadoop Cluster in die Oracle-Datenbank
laden
• Online mode: Lade per JDBC oder OCI
• Offline mode: Erzeuge externe Tabellen (Data Pump Format)
• Unterstützte Versionen: 10.2.0.5 oder 11.2.0.3
Oracle Loader for Hadoop
Input / Output
• Eingabeformate
• Out-of-the-box vorhandene Implementierungen:
• Avro Binary Files, Hive Tables, Delimited Textfiles
• Eigene Implementierungen möglich
• Ableitung aus der Hadoop-Klasse InputFormat
• Ausgabeformate
• Direct JDBC
• External Tables SQL Loader Format
• External Tables Data Pump Format
Oracle Loader for Hadoop
1. Oracle OraLoader.jar wird in den
Hadoop Cluster deployed.
2. OLH Mapper führt Sortierungen
und Transformationen durch
3. OLH Partitioner ordnet die Daten
dem richtigen Reducer und der
richtigen Tabellen-Partition zu.
4. OLH Reducer lädt die Daten in die
partitionierte Tabelle. Das geschieht
online (JDBC, OCI) oder offline (als
externe Tabelle)
HADOOP CLUSTER
MAPPER
PARTITIONER
REDUCERS
Nutzung des Oracle Loader for Hadoop
XML-Config-File (Auszug)
:
<property>
<name>mapreduce.inputformat.class</name>
<value>oracle.hadoop.loader.lib.input.DelimitedTextInputFormat</value>
</property>
<property>
<name>oracle.hadoop.loader.input.fieldTerminator</name>
<value>\u0009</value>
</property>
<property>
<name>oracle.hadoop.loader.input.fieldNames</name>
<value>C,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9</value>
</property>
<property>
<name>oracle.hadoop.loader.targetTable</name>
<value>SCOTT.MATRIX</value>
</property>
<property>
<name>mapreduce.outputformat.class</name>
<value>oracle.hadoop.loader.lib.output.DataPumpOutputFormat</value>
</property>
:
Nutzung des Oracle Loader for Hadoop
• Starten als eigener Hadoop Job
• Input Datei aus Hadoop HDFS lesen
(Konfiguration per XML-Datei)
• Ablage der Output Dateien (External Tables) ins HDFS
(Konfiguration per XML-Datei)
$ bin/hadoop jar \
${OLH_HOME}/jlib/oraloader.jar \
oracle.hadoop.loader.OraLoader \
-conf oraload.xml
Oracle Loader for Hadoop im Einsatz
Ein Beispiel
Oracle NoSQL DB
Key/Value
Paare
Oracle Loader
for Hadoop
MapReduce
Delimited Files
in HDFS
Zwischenergebnis
im HDFS
MapReduce
Weitere Big Data Konnektoren
• Oracle Loader for Hadoop
Daten aus einem Hadoop Cluster direkt in die Oracle-Datenbank
laden
• Oracle SQL Connector for Hadoop HDFS
Direkter Zugriff auf das HDFS für die Oracle-Datenbank
• Oracle Data Integrator (ODI) Application Adapter
for Hadoop
Einbinden eines Hadoop Jobs in einen ODI-Prozess
• Oracle R Connector for Hadoop (ORCH)
Ausführen von R-Prozessen direkt im Hadoop Cluster per
MapReduce
http://www.oracle.com/technetwork/bdc/big-data-connectors/index.html
Oracle Engineered Systems
Unstructured
Schema-less
Big Data
Appliance
Oracle
Exalytics
Schema
Information
Density
Oracle Exadata
Acquire
Organize
Analyze
Big Data Appliance X3-2: Hardware
•18 Knoten pro Rack
– 1152 GB memory
– 288 cores
– 648 TB Storage-Rohkapazität
•40 Gb/s InfiniBand Fabric
– Inter-rack Connectivity
– Inter-node Connectivity
•10 Gb/s Ethernet Connectivity
– Data center connectivity
Die BDA ist nur als "Full Rack"-Konfiguation erhältlich
Horizontale Skalierung
Mehrere Racks per Infiniband verbinden mit 3. (Spline) Switch
Analog zum Anschluß einer Exadata-Maschine
Big Data Appliance im Zusammenspiel
Big Data Appliance: Software
"Integrated Software" ist im Preis enthalten
•
•
•
•
•
•
•
Oracle Linux 5.8 mit UEL Kernel
Oracle Java VM
Cloudera CDH4
Cloudera Manager 4
Open Source Distribution of R
NoSQL Database Community Edition 2.0
Big Data Appliance Enterprise Manager Plugin
Support für die "Integrated Software":
• Im Supportumfang enthalten (außer NoSQL DB CE)
Weitere Informationen
• Oracle Dojo: Big Data
• Kostenlos herunterladen oder als Druck bestellen
• http://www.oracle.com/webfolder/technetwork/de/community/dojo/index.html
[email protected]
http://tinyurl.com/apexcommunity
http://sql-plsql-de.blogspot.com
http://oracle-text-de.blogspot.com
http://oracle-spatial.blogspot.com
http://plsqlexecoscomm.sourceforge.net
http://plsqlmailclient.sourceforge.net
Twitter: @cczarski @oraclebudb
Herunterladen