<Insert Picture Here>
NoSQL-Datenbanken und Hadoop im
Zusammenspiel mit dem Data Warehouse
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
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: 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 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
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
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
NoSQL DB im Rechenzentrum
SQL Zugriff
Strukturierte Analyse
Application
NoSQL DB Driver
HDFS, Hadoop
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 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
Oracle Big Data Platform
Big Data Connectors
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 Big Data Connectors
Direkte Verbindung zwischen Hadoop und RDBMS
Loader for Hadoop
Unstructured
HDFS
MapReduce Jobs
Schema-less
Schema
Oracle
NoSQL DB
RDBMS
Oracle
Big Data
Connectors
ODI
Direct Connector
(OLTP)for HDFS
Information
Density
Acquire
Organize
Oracle R
Enterprise
Oracle
RDBMS BI EE
Oracle Oracle
Advanced
(DWH) Analytics
Analyze
Oracle Big Data Platform
Big Data Appliance
Big Data Appliance X3-2: Hardware
•6, 12 oder 18 Knoten pro Rack
– 1152 GB memory (Full Rack)
– 288 cores (Full Rack)
– 648 TB Storage-Rohkapazität (Full Rack)
•40 Gb/s InfiniBand Fabric
– Inter-rack Connectivity
– Inter-node Connectivity
•10 Gb/s Ethernet Connectivity
– Data center connectivity
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)
[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

NoSQL-Datenbanken und Hadoop im Zusammenspiel mit