SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Seite 1Gunther Pippèrr © 2014 http://www.pipperr.de
ORACLE UND HADOOP
Zusammen ein Team?
Konferenz – Nürnberg 2014
NoSQL Vortrag – Taiwan/Taipei 2014
Seite 2Gunther Pippèrr © 2014 http://www.pipperr.de
Warum nun Big DATA
Was treibt uns an?
Neue Lösungen für alte Probleme?
Seite 3Gunther Pippèrr © 2014 http://www.pipperr.de
Datenqualität und -Stabilität
Daten
Sammeln
Daten
Archivieren
Daten
auswerten
• Daten ändern über die Jahre
semantisch und syntaktisch ihre
Bedeutung
• Wenig feste Strukturen
• Hohe Fehlerwahrscheinlichkeit
• Nachvollziehbarkeit
der Ergebnisse
Herausforderung
Seite 4Gunther Pippèrr © 2014 http://www.pipperr.de
Datenwachstum und Performance
Daten
Sammeln
Daten
Archivieren
Daten
auswerten
• Platzbedarf• Geringer Nutzinhalt
• Hohes Aufkommen
• Performance
Herausforderung
Seite 5Gunther Pippèrr © 2014 http://www.pipperr.de
Warum Hadoop?
Ein neuer Standard oder nur ein neuer
Hype?
Seite 6Gunther Pippèrr © 2014 http://www.pipperr.de
File System und Batch Prozessing
 Hadoop - Verteiltes Cluster File System
– Container für verschiedene Datenbank Lösungen
• Andere Datenbanken wie RainStor© oder HIVE nützen Hadoop als
Dateisystem
 Hadoop - MapReduce Framework
– Framework für das MapReduce Pattern über vielen Knoten
Alternative: Ceph Clusterfiles System
Alternativen MapReduce Abfragen:
• Parallel SQL Engines wie Impala
• Oracle Big Data SQL
Seite 7Gunther Pippèrr © 2014 http://www.pipperr.de
Qual der Wahl – Die Software um Hadoop
 Hadoop wird immer mehr ein Synonym für eine
verteilte Datenhaltung
 Im Hadoop Ökosystem wird jede Komponente eines
„großen“ RDBMS Systems über ein eigenes Produkt
umgesetzt
DatenhaltungAbfrage Sprache Optimizer
PIG
HIVEImpala
Drill
Oracle Big Data SQL
RainStor
ETL
sqoop
HBase
Seite 8Gunther Pippèrr © 2014 http://www.pipperr.de
Hadoop integrieren
Für was kann das jetzt alles nur
verwendet werden?
Seite 9Gunther Pippèrr © 2014 http://www.pipperr.de
Einsatzgebiet – Ergänzung zum Bestands DWH
 Einsatzgebiete
– Sammeln von Log Informationen aus dem Betrieb
• Wie Listener und Audit Logs der Datenbanken
– Stream Processing von Maschinendaten
– Archivieren von Historischen Daten
• Wie Partitionen aus DWH Tabellen
Ziele:
• Nur die zur Zeit wichtige Daten im Live System vorhalten
• Keine Daten verlieren, die noch wichtig werden könnten
Anforderung: Große Datenmengen aufbewahren und nur bei Bedarf SELTEN analysieren
Seite 10Gunther Pippèrr © 2014 http://www.pipperr.de
Die Herausforderung in der Praxis
 Integration in die bestehende IT Landschaft
– Alle Kernprozesse sind bereits im DWH effizient abgebildet
– Berichtwesen / Reporting bereits aufgesetzt
Motivation:
• Lizenz Kosten erzwingen bereits vor dem Erreichen technischer „Problemgrößen“ neue Lösungen
• Storage Kosten steigen überproportional bei Anforderungen an Performance / Verfügbarkeit /
Volumen
IST
DWH
Neu
• Implementierung
• Migration von Alt Daten
• Schulung von Mitarbeitern
Neu
IST
DWH
Aufwand:
IntegrationMigration
Neu
Seite 11Gunther Pippèrr © 2014 http://www.pipperr.de
Wo setzt die Integration an?
 Zugriff auf die Daten über die Datenbank
 Logische Integration über das Berichtswesen
DBNoSQL Reporting
DB
NoSQL
Reporting
Bestehende BI/Reporting Umgebung
Bestehende Zugriffsberechtigung
und Userverwaltung
Vollständige Umsetzung des NoSQL Konzepts
Wie wird der Zugriff auf die Daten kontrolliert und protokolliert – Stichwort Berechtigungskonzept
Seite 12Gunther Pippèrr © 2014 http://www.pipperr.de
Integration der DB‘s in das Hadoop Ökosystem
MapReduce Daten vom Oracle NoSQL Store
lesen
HDFS
Hadoop Filesystem
Ergebnisse ablegen
12c
Als "External Table" Daten
ablegen
Hive
Als "External Table" lesen
Nur EE Edition der Oracle NoSQL!
Daten sammeln
Integration
- "External Table“ Prinzip
- „SQL*Loader“ Prinzip
- Data Reader in der DatenbankDaten auswerten
Seite 13Gunther Pippèrr © 2014 http://www.pipperr.de
Umsetzung
Wie kann die Integration technisch
gelingen?
Seite 14Gunther Pippèrr © 2014 http://www.pipperr.de
Hadoop Sicht – Ziel – Eine zentrale Abfrage (1)
 Ziel: mit einer Abfrage ein Ergebnisse aus allen
Quellen erhalten
Oracle
RDBMS
Abfragen
• Performance
• Wartbarkeit/Pflege
• Kosten
Auswahl Kriterien:
MapReduce JobsSQL Abfragen
Kein direkter Master für die Daten
Apache Drill
Oracle Big Data SQL
Seite 15Gunther Pippèrr © 2014 http://www.pipperr.de
Hadoop Sicht – Ziel – Eine zentrale Abfrage (2)
 Prinzip des umgekehrten ETL
– Quelldaten erstmal einfach in Rohformat speichern
– Die Quelldaten werden nicht aufbereitet!
• Die Abfragen auf die Daten passen sich flexible an die Daten an,
(soweit möglich)
– Mehrere Quellen werden kombiniert
 Abfrage Systeme über mehrere Datenquellen
– Apache Drill
• SQL Meta Suche
– Oracle Big Data SQL – ein neues Oracle Produkt
Seite 16Gunther Pippèrr © 2014 http://www.pipperr.de
Datenbank Sicht – Ziel – eine SQL Abfrage
 Ziel: Eine SQL Abfrage aus der Datenbank
Oracle RDBMS
"External Table" Data Pump
SQL Abfrage
• Performance
• Wartbarkeit/Pflege
• Kosten
Auswahl Kriterien:
SQL*Loader
SQL AbfragenHDFSHDFS
Hive
Der Master ist die Oracle Datenbank
Konnektoren
Java in der
Datenbank
MapReduce Jobs
Oracle Gateway
Heterogeneous Services
JDBC?
SQL Abfragen
?
Seite 17Gunther Pippèrr © 2014 http://www.pipperr.de
Konnektoren  ORACLE RDBMS (1)
 "External Table" Prinzip – Daten verbleiben im HDFS
– CSV Dateien / Hive Tabellen als Oracle Tabellen lesen
• Eigene Skripte mit "PREPROCESSOR" für "External Table"
einbinden
• FUSE Mount Points im Filesystem für "traditionelle" Zugriffe
einbinden
– HDFS als "normales" Filesystem einbinden
• Kostenpflichtige Lösung: Oracle SQL Connector for HDFS - OSCH
– Ehemals Oracle Direct Connector for Hadoop Distributed File System
• Direkt vom HDFS die Daten per Java Klassen aus der DB lesen
Seite 18Gunther Pippèrr © 2014 http://www.pipperr.de
Konnektoren  ORACLE RDBMS (2)
 „External Table" Prinzip – Daten verbleiben im HDFS
– Data Pump "External Table" als Oracle Tabellen lesen
• Tabellen / Partitionen in das HDFS archivieren und in der DB löschen
• Bei Bedarf die Daten wieder einbinden
• FUSE Mount Point
– HDFS als Filesystem für die Archivierung nützen
• Als "External Table" einbinden
– Oracle Direct Connector – "External Table" im Data Pump Format
Oracle "External Table" TYPE oracle_datapump können NICHT mit "impdb" als Import Quelle
verwendet werden, da das Export File Format unterschiedlich ist!
Seite 19Gunther Pippèrr © 2014 http://www.pipperr.de
Konnektoren  ORACLE RDBMS (3)
 SQL*Loader Prinzip – Daten werden in das jeweilige
Ziel geladen
– Oracle*Loader für Hadoop
• Für das einlesen der Daten vom Hadoop Cluster
– Quest (veraltet?)
• Data Connector for Oracle and Hadoop ( Erweiterung Sqoop)
– Apache Sqoop(TM)
• Open Source SQL*Loader für Hadoop – lesen UND schreiben
=> Apache Flume
Mehr für das zentrale Sammeln von Log Daten: Einsammeln, filtern und in
das HDFS schreiben
Seite 20Gunther Pippèrr © 2014 http://www.pipperr.de
Konnektoren  ORACLE RDBMS (4)
 Data Konnektoren über Java IN der Datenbank
– Eigene Java Programm lesen Daten aus der DB von Hadoop
• MapReduce Framework aus der Datenbank heraus aufrufen
• Wie ein SOA Adapter oder ein klassisches REST Interface
– MapReduce Jobs per Java mit Oracle Klassen mit 12c r2 in
Vorbereitung
Seite 21Gunther Pippèrr © 2014 http://www.pipperr.de
Wie kann das praktisch
umgesetzt werden?
Wie fange ich da nun an?
Seite 22Gunther Pippèrr © 2014 http://www.pipperr.de
Unser Ziel – Eine zentrale Log Ablage
 Alert.log
 listener.log
 DB Job Logs
 Audit$ Logs
 Statspack/AWR/ASH
 Trace Files
 SQL Text und Execution Pläne
Seite 23Gunther Pippèrr © 2014 http://www.pipperr.de
Die Aufgabe- Ein eigener Oracle Audit Vault (1)
 Zentrales Sammeln und Auswertung aller Security
Log Daten alle Datenbanken im Unternehmen
– Ausgewertet wird:
• AUD$ Einträge
• Listener.log
• Alert.log
– Über eine zentrale Oracle Datenbank sollen die Ergebnisse
mit Apex ausgewertet werden
Anforderung: Autorisierung und Unveränderbarkeit der Daten sicherstellen
Seite 24Gunther Pippèrr © 2014 http://www.pipperr.de
Qual der Wahl!
 Wo anfangen? – Welche Produkte wählen?
?
? ?
?
Wie verwalte und warte ich das Ganze?
Was kann ich mir leisten?
Was muss ich am wenigsten installieren
/konfigurieren?
Hadoop
PIG
Apache Drill
SqoopHive
Flume
Oracle*Loader für Hadoop - OLH
Oracle BIG Data SQL
OSCH – Oracle SQL Connector for HDFS
Seite 25Gunther Pippèrr © 2014 http://www.pipperr.de
HDFS
Architektur Übersicht – Variante Oracle Adapter
AUD$
Hadoop
Connector
Quellen pro Maschine Audit DB
Ext
Table
Ext
Table
Ext
Table
APEX
Listener.ora
Audit.log
sys.log
HIVE
Oracle
Dumps
Ext
Table
Ext
Table
Ext
Table
Ext
Table
Hadoop
Connector
Hadoop
Connector
Daten verbleiben im HDFS
Zugriffsberechtigungen
werden in der Oracle DB gepflegt
Remote: flume
Local: pig
Format AUD_<DBID>_<SID>_<YYYYDDMM>
Logs
Hadoop Client Hadoop Client
Hadoop Client
Seite 26Gunther Pippèrr © 2014 http://www.pipperr.de
HDFS
Architektur Übersicht – Variante Open Source
Quelle
Ext
Table
Listener.ora
Audit.log
sys.log
Remote: flume
Ext
Table
Aud$ XML
Logs
Logs
Logs
Default
Connector
Java
MapReduce
Preprozesso
rJava
MapReduce
HIVE
FUSEAUD$ Sqoop
Local: pig
Quellen pro Maschine Audit DB
APEX
Seite 27Gunther Pippèrr © 2014 http://www.pipperr.de
Umsetzung – "External Table" Konnektoren
 Oracle SQL Connector for HDFS OSCH
– Data Pump Table Exports möglich
• Vorteil: Schnelles wiedereinlesen
• Nachteil:
– Für andere Tools nicht lesbar!
– Evtl.. Datenbank-Versions abhängig!
– Es können keine Daten angefügt werden!
– Direktes Erzeugen von Hive Tabellen
• Vorteil: auch andere Werkzeuge können
mit den Daten arbeiten
– CSV Dateien HDFS
Oracle
Dumps
Location
Files
Hadoop
Connector
Ext
Table
Hadoop API
HIVE
Zur Zeit nur für Datenbanken unter Linux verfügbar!
Aud$
Exports
Listener.log
alert.log
Seite 28Gunther Pippèrr © 2014 http://www.pipperr.de
OSCH - Oracle SQL Connector for HDFS
 SQL Abfrage über eine "External Table"
Location Files
Oracle Datenbank
Präprozessor
HDFS_STREAM
Ext
Table
Aud$ Exports
Listener.log - alert.logHive Table
Delimited Text
Data Pump
HDFS API
SQL Connector for
HDFS
Oracle Server
Hadoop Node HDFS
Location Files = URI für die Daten im HDFS
Location Files
Location Files
Seite 29Gunther Pippèrr © 2014 http://www.pipperr.de
OSCH – Die Bedeutung der Location Files
 Location Files – Pointer auf die Daten im HDFS
– Die Location Files enthalten die einzelnen Ziel Dateien auf dem HDFS
– Werden beim „-createTable“ unter dem Verzeichnis des DIRECTORY
Objekts anleget
– Ändern die sich die Daten im HDFS können diese Dateien mit „-publish“
aktualisiert werden
– Beispiel:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<locationFile>
<header>
<version>1.0</version>
<fileName>osch-20140831075440-588-1</fileName>
<createDate>2014-08-30T19:10:08</createDate>
<publishDate>2014-08-31T07:54:40</publishDate>
<productName>Oracle SQL Connector for HDFS Release 3.0.0 - Production</productName>
<productVersion>3.0.0</productVersion>
</header>
<uri_list>
<uri_list_item size="11723955"
compressionCodec="">HDFS://bigdatalite.localdomain:8020/tmp/auditGPI/part-m-00003</uri_list_item>
</uri_list>
</locationFile>
Seite 30Gunther Pippèrr © 2014 http://www.pipperr.de
Installation Oracle Connector for HDFS
 Hadoop Client auf DB Host aufsetzen
 Zip Archive auspacken und Umgebung anpassen
 Oracle DB User einrichten/konfigurieren
– Recht read/write/execute auf das OSCH_BIN Directory für
den User zusätzlich vergeben!
 Mit dem „external Command Tool“ die „External Table“
anlegen
 Abfragen
Seite 31Gunther Pippèrr © 2014 http://www.pipperr.de
Oracle SQL Connector for Hadoop OSCH (1)
 „Oracle SQL Connector for Hadoop“ für HIVE verwenden
– "External Table" erzeugen mit:
Auf der zentralen Datenbank
für die Auswertung der Log Daten
hadoop jar $OSCH_HOME/jlib/orahdfs.jar 
oracle.hadoop.exttab.ExternalTable 
-D oracle.hadoop.exttab.hive.tableName=ext_ora_audit_gpi 
-D oracle.hadoop.exttab.hive.databaseName=default 
-D oracle.hadoop.exttab.sourceType=hive 
-D oracle.hadoop.exttab.tableName=ext_ora_audit_gpi_hive 
-D oracle.hadoop.connection.url=jdbc:oracle:thin:@//localhost:1521/orcl 
-D oracle.hadoop.connection.user=scott 
-D oracle.hadoop.exttab.defaultDirectory=HADOOP_EXT_TABS 
-createTable
Seite 32Gunther Pippèrr © 2014 http://www.pipperr.de
Oracle SQL Connector for Hadoop OSCH (2)
 Oracle SQL Connector for Hadoop
 4. "External Table" DDL abfragen mit „-getDDL“ / überprüfen:
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "HADOOP_EXT_TABS"
…
PREPROCESSOR "OSCH_BIN_PATH":'hdfs_stream'
….
)
)
LOCATION
( 'osch-20140830073731-58-1',
'osch-20140830073731-58-2',
'osch-20140830073731-58-3',
'osch-20140830073731-58-4'
)
)
Location Files
Seite 33Gunther Pippèrr © 2014 http://www.pipperr.de
Probleme über Probleme …..
 CLASSPATH muss die Jar Files von Hive enthalten
– Bei Problem im Hadoop Kommando Script direkt anpassen
 HIVE Tabelle darf keine Spalten vom Typ „BINARY“
enthalten
 Problem mit Datumsformaten und Null Spalten
– Export per Scoop => null wird 'null'
– Die Generiert Anweisung=>
– "TIMESTAMP" CHAR DATE_FORMAT DATE MASK 'YYYY-MM-DD'
NULLIF "TIMESTAMP"=0X'5C4E', => N
– Benötigt wird aber ein =>
– "TIMESTAMP" CHAR DATE_FORMAT DATE MASK 'YYYY-MM-DD'
NULLIF "TIMESTAMP"=0X'276E756C6C27'‚ => 'null'
Seite 34Gunther Pippèrr © 2014 http://www.pipperr.de
Oracle Loader for Hadoop - OLH
 Daten in die Datenbank einlesen
Oracle Datenbank
ApplicationsManager
Hive Table
MapReduce Job
Delimited Text
Data Pump Format
Oracle Server
Hadoop Node
HDFSAVRO
Custom Format
Oracle Loader for
Hadoop
Offline Load
Online Load
• JDBC
• OCI direct Path
Seite 35Gunther Pippèrr © 2014 http://www.pipperr.de
Oracle Loader for Hadoop – OLH (1)
 Dateien im „Data Pump Export“ Format von HDFS Daten für
den Import erzeugen
 Online Mode – Daten werden direkt in die Datenbank geladen
 Offline Mode – Daten werden zuerst aus dem Hadoop in Data Pump oder
CSV Format erzeugt und können später traditionell eingebunden werden
 Ablauf:
 Tabelle in der Oracle DB anlegen
 Job Konfigurationsdatei für den MapReduce Job anlegen
 Job Starten und Daten aus Hive / CSV Daten exportieren und in Richtung
Oracle DB importieren
Nachteil:
An dem Data Pump Dump können keine weitern Daten angefügt werden
Dump müssen über select * und weitere "External Table" zusammen gefügt werden
Seite 36Gunther Pippèrr © 2014 http://www.pipperr.de
Oracle Loader for Hadoop – OLH (2)
 Probleme:
– Bei der Verwendung von Hive Tabellen müssen noch einige
Jar Files einzeln angegeben werden!
– Fehler:
– Lösung
hadoop jar /u01/connectors/olh/jlib/oraloader.jar oracle.hadoop.loader.OraLoader 
-conf hdfs_job_config.xml 
-libjars /usr/lib/hive/lib/hive-metastore-0.12.0-cdh5.0.0.jar
,/usr/lib/hive/lib/hive-serde-0.12.0-cdh5.0.0.jar
,/usr/lib/hive/lib/libthrift-0.9.0.cloudera.2.jar
,/usr/lib/hive/lib/hive-common-0.12.0-cdh5.0.0.jar
Error: java.lang.ClassNotFoundException: org.apache.hadoop.hive.metastore.TableType at
.. Und weitere
Seite 37Gunther Pippèrr © 2014 http://www.pipperr.de
Lizenz?
 Lizensierung Oracle Big Data Connectors
– Pro Prozessor der Hadoop Clusters
– Kosten:
• Oracle Technology Global Price List July 22, 2014
• 2000,- USA (Dollar) per Hadoop Cluster Processor
See: http://docs.oracle.com/cd/E53356_01/doc.30/e53065/bda.htm#BIGLI113
See :http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf
Seite 38Gunther Pippèrr © 2014 http://www.pipperr.de
"External Table" per FUSE Projekt
 HDFS Filesystem per FUSE als Linux Filesystem
einbinden
– Mit Hilfe der FUSE Technology (Mountable HDFS - mount
point for HDFS) kann auf das HDFS mit Standard Oracle
Methoden wie auf ein normales Filesystem zugegriffen
werden.
– Laut Oracle Doku langsamer als die Oracle Big Data
Connectors (Faktor 5) und CPU Lastig (3' Fach höher)
– https://wiki.apache.org/hadoop/MountableHDFS
yum install hadoop-hdfs-fuse.x86_6
hadoop-fuse-dfs dfs://<name_node_hostname>:<namenode_port>
Seite 39Gunther Pippèrr © 2014 http://www.pipperr.de
"External Table" mit PREPROCESSOR
 Einbinden von Skripten über die PREPROCESSOR
Anweisung
 Ein Shell Script wird aufgerufen und liefert Daten
zurück
– Die Dateiangaben im Location Part können als Parameter
übergeben werden, damit kann der Job parametrisiert
werden
– Im Shell Script kann der Connect auf die Daten erfolgen
– Standard Out Pipe wird mit der "External Table" verknüpft
Diese Lösung ist damit Lizenzkostenfrei!
Seite 40Gunther Pippèrr © 2014 http://www.pipperr.de
Beispiel „external Table“ mit PREPROCESSOR
 Beispiel:
CREATE TABLE PREPREP_EXT(
wert VARCHAR2(2000)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY DATA_LOAD
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
PREPROCESSOR EXT_COMMAND:'loadFromHadoop.sh'
SKIP 0
LOGFILE EXT_DATA:'data_load.log'
BADFILE EXT_DATA:'data_load.bad'
NODISCARDFILE
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
MISSING FIELD VALUES ARE NULL
)
LOCATION (EXT_DATA:'hadoop_locator.dat')
)
REJECT LIMIT 0
NOPARALLEL
NOMONITORING
;
Seite 41Gunther Pippèrr © 2014 http://www.pipperr.de
„External Table“ mit PREPROCESSOR (2)
 Im Script wird die entsprechende Logik aufgerufen
– Lade die Daten aus dem Hadoop auf den DB Server
• hdfs dfs –cat /user/auditdat/logfile.a..
– Stelle die Daten der "External Table" zur Verfügung
• Über Standard out wird verknüpft
#!/bin/sh
#Laufzeitumgebung setzen
export PATH=$PATH:/bin:/sbin/:/usr/bin
export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec
export HADOOP_CONF_DIR=/etc/hadoop/conf.bigdatalite
# Übergabe Parameter Datei auslesen und Inhalt als Parameter verwerten
FILENAME=`/bin/cat $1`
#Mit HDFS Bordmitteln die Datei auswerten
/usr/lib/hadoop-hdfs/bin/hdfs dfs -cat $FILENAME
Seite 42Gunther Pippèrr © 2014 http://www.pipperr.de
DEMO
 External Table Demo
Aus Hadoop mit Board
mitteln lesen
Seite 43Gunther Pippèrr © 2014 http://www.pipperr.de
Hadoop
Sqoop 2 einsetzen
 Sqoop 2 Data Loader – Eine Art SQL*Loader?
Oracle
RDBMS
AUD$
ApplicationsManager
C 2
A 2
B 3
A 2
G 7
Y 8
Hive Table
Sqoop
Client
Sqoop
Metadata
JDBC
Configure and start Job
Store Job Configuration
MapReduce Job
AUD$_QUELL_DB_SID
Daten aus der Quelldatenbank exportieren und in Hadoop ablegen
Seite 44Gunther Pippèrr © 2014 http://www.pipperr.de
Sqoop 2 – Installation und Setup
 Software herunterladen und auspacken
– JDBC Treiber für Oracle kopieren
 Connect zum Hadoop Cluster konfigurieren
– Mindestens ein Hadoop Client muss installiert sein
 Server Prozess starten
 Daten transferieren
Seite 45Gunther Pippèrr © 2014 http://www.pipperr.de
Flexibler Import mit Sqoop
 Daten aufteilen mit
– Select <spalte> from <table> where <condition>
– Eigene SQL Abfrage
 Parallele Abarbeitung
 Inkrementelles Laden über eine where Bedingung
Bei Test auf der Oracle BigData Appliance
„Exception in thread „main“ groovy.lang.MissingPropertyException: No such property: terminal for class: jline.Terminal“
Lösung:
unset CLASSPATH
export CLIENT_LIB=/usr/lib/sqoop2/client-lib
/usr/lib/sqoop2/bin/sqoop.sh client
Seite 46Gunther Pippèrr © 2014 http://www.pipperr.de
Beispiel Sqoop 2
 Am Sqoop Server anmelden
 Connection Objekt anlegen
– JDBC Zugriff auf die Oracle DB konfigurieren
 Job Objekt definieren
– Wie soll der Job abgearbeitet werden
 Job starten und Daten nach Hadoop importieren
sqoop:000> create connection --cid 1
sqoop:000> create job --xid 1 --type import
sqoop:000> start job --jid 1
$SQOOP_HOME/bin/sqoop.sh client
sqoop:000> set server --host nosqldb01 --port 12000 --webapp sqoop
Seite 47Gunther Pippèrr © 2014 http://www.pipperr.de
Sqoop ist nicht „SQL Injektion“ save!
 In der AUD$ hieß ein User 'TESTER
– Beim Laden im Log:
SELECT * FROM SYSTEM.AUD$ WHERE ''TESTER' <= USERID AND
USERID < '+����'
Seite 48Gunther Pippèrr © 2014 http://www.pipperr.de
Vergleich der SQL*Loader Werkzeuge
 Kostenpflichtig
 => Laden in die Oracle
Datenbank
 Parallelisierung auf Oracle
zugeschnitten
Apache Sqoop
 Open Source
 Laden von und nach
Hadoop
 Version 1.4 für Hadoop 1
 Version 1.9 für Hadoop 2
 Parallel Verarbeitung ?
Oracle SQL*Loader - OLH
Seite 49Gunther Pippèrr © 2014 http://www.pipperr.de
Apache Flume
 Eine Art „syslog“ Demon
 Übernimmt den Transport der Log Daten
– Log Daten in Hive ablegen
Flume sammelt und überträgt
HDFS
Sink
Listener.ora
Flume
Agent – Tier Collector – Tier Storage – Tier
C 2
A 2
B 3
A 2
G 7
Y 8
Hive Table
Source Channel
Logfiles
Seite 50Gunther Pippèrr © 2014 http://www.pipperr.de
Beispiel für den Einsatz mit dem Listener.log
 Ein Log Eintrag:
Lister Log
Log.xml
Oracle Datenbank Server
Nur Flume
keine weiteren Libraries installiert
Flume
Agent
Source
Channel
Sink
Flume
Agent
Source
Channel
HDFS
Sink
Ein Hadoop Knoten
Seite 51Gunther Pippèrr © 2014 http://www.pipperr.de
Flume Konfiguration
vi /usr/lib/flume-ng/conf/agent-conf.properties
agent.sources = OraListener
agent.channels = memoryChannel
agent.sinks = avro-forward
# Channel type exec
agent.sources.OraListener.type = exec
agent.sources.OraListener.command = tail -F
/opt/oracle/diag/tnslsnr/oradb12c01/listener/alert/log.xml
# The channel can be defined as follows
agent.sources.OraListener.channels = memoryChannel
#sink
agent.sinks.avro-forward.type = avro
agent.sinks.avro-forward.hostname = 10.10.10.12
agent.sinks.avro-forward.port = 44444
#Specify the channel the sink should use agent.sinks.avro-
forward.channel = memoryChannel
# Each channels type is defined
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 100
# starten
export JAVA_HOME=/usr/java/jdk1.7.0_67
/usr/lib/flume-ng/bin/flume-ng agent -n agent -c
/usr/lib/flume-ng/conf -f /usr/lib/flume-ng/conf/agent-
conf.properties
HDFS Agent
vi /etc/flume-ng/conf/agent2-conf.properties
agent2.sources = OraLogFiles
agent2.channels = memoryChannel
agent2.sinks = hdfsSink
# Channel type avro
agent2.sources.OraLogFiles.type = avro
agent2.sources.OraLogFiles.bind = 10.10.10.12
agent2.sources.OraLogFiles.port = 44444
# The channel can be defined as follows
agent2.sources.OraLogFiles.channels = memoryChannel
# Each sinks type must be defined
agent2.sinks.hdfsSink.type = HDFS
agent2.sinks.hdfsSink.hdfs.path =
HDFS://bigdatalite.localdomain:8020/user/oracle/gpi
agent2.sinks.hdfsSink.hdfs.filePrefix = OraLogs-
agent2.sinks.hdfsSink.hdfs.rollCount = 1000
agent2.sinks.hdfsSink.hdfs.batchSize = 10
#Specify the channel the sink should use
agent2.sinks.hdfsSink.channel = memoryChannel
# Each channels type is defined
agent2.channels.memoryChannel.type = memory
agent2.channels.memoryChannel.capacity = 100
# starten
flume-ng agent -n agent2 -c conf -f /etc/flume-
ng/conf/agent2-conf.properties
Listener Agent
Seite 52Gunther Pippèrr © 2014 http://www.pipperr.de
Was ergibt sich daraus für unsere Aufgabe? (1)
 Bei Verwendung des Oracle Big Data Connectors für
den Export:
– Von jeder DB wird täglich die Aud$ exportiert
• Format Dump AUD_<DBID>_<SID>_<YYYYMMDD>
• Lokales PL/SQL Package (mit Hilfe einer Log Tabelle) führt den
Export durch
– Monatlich werden die Daten von der zentralen Datenbank in
einen Monats Dump verdichtet
– Nachteil:
• Hadoop Client auf jeder Datenbank notwendig
• Windows wird schwierig
• Kosten
• Dumps müssen ersten durch "Umwege" verdichtet werden
Seite 53Gunther Pippèrr © 2014 http://www.pipperr.de
Was ergibt sich daraus für unsere Aufgabe? (2)
 Lösung mit Sqoop und Hive
– Zentral vom einem Server
• Tägliche wird die AUD$ Tabelle in eine Hive Tabelle exportiert
– Vorteil:
• Keine Installation auf den Quell Servern
– Nachteil:
• Geringere Performance
Seite 54Gunther Pippèrr © 2014 http://www.pipperr.de
Die Daten auswerten
Was fange ich jetzt mit den Daten an?
Seite 55Gunther Pippèrr © 2014 http://www.pipperr.de
Auswerten der Daten
 Hive Tabellen in Oracle einbinden
– Mit dem OLH einfach - aber Lizenzkosten pflichtig
 Hive Tabellen per JDBC direkt abfragen
– Open Source wie Hue:
Seite 56Gunther Pippèrr © 2014 http://www.pipperr.de
Fragen zum Betrieb
Wie kann ich das über die Dauer der
Jahre warten?
Seite 57Gunther Pippèrr © 2014 http://www.pipperr.de
Ein Hadoop Cluster betreiben
 Backup Konzept?
– Ausfallsicherheit und Daten Redundanz sind kein Schutz vor
logischen Fehlern!
 Datenquellen entkoppeln
– Wie lange können die Vorsystem ihre Daten halten?
• Buffer Konzepte notwendig?
 Upgrade
– Patch Konzept für Treiber und OS
• Z.B. einzelne Knoten rollierend jeden Monat patchen
– Software Upgrade?
• Was tun bei einem Mayor Release?
Seite 58Gunther Pippèrr © 2014 http://www.pipperr.de
Fazit
Lohnt sich der Aufwand?
Seite 59Gunther Pippèrr © 2014 http://www.pipperr.de
Größtes Problem
 Viele Updates und unübersichtliche Kompatibilitäten
der ganze Werkzeugpalette
– Was wird es auch in Zukunft noch geben?
 Mapping von Datentypen
– Viele Detailprobleme
 Java Out of Memory Effekte beim Laden
– Jobs bleiben einfach im Hadoop "hängen"
Seite 60Gunther Pippèrr © 2014 http://www.pipperr.de
Fazit
– Ein Apache Hadoop Cluster bietet sich als eine gute Lösung
für die Anforderung eines zentralen Audit Vaults für Log
Daten an
– Die notwendigen Werkzeuge für die Umsetzung der
Anforderung sind verfügbar
– Die Orchestrierung des Ganzen ist jedoch die große
Herausforderung bei einem solchem Projekt
– Der damit verbunden Aufwand sollte nicht unterschätzt
werden
– Der große Vorteil der Eigenentwicklung einer Audit Valut
Lösung liegt darin, mit diesem Projekt einen guten Einstieg
in diese neue Technologie ohne großes Business Risiko
umsetzen zu können
Seite 61Gunther Pippèrr © 2014 http://www.pipperr.de
Ihre Erfahrungen?
?
Seite 62Gunther Pippèrr © 2014 http://www.pipperr.de
Fragen
Oracle und Hadoop
NO:SQL
Seite 63Gunther Pippèrr © 2014 http://www.pipperr.de
Quellen
 Oracle – BIG Data
– https://www.oracle.com/bigdata/products.html
 Mehr über das Thema und die Quellen im Detail siehe:
– http://www.pipperr.de/dokuwiki/doku.php?id=nosql:hadoop_integration
– http://www.pipperr.de/dokuwiki/doku.php?id=nosql_datenbank
Seite 64Gunther Pippèrr © 2014 http://www.pipperr.de
Gunther Pippèrr - IT-Architekt - Berater
• High-Tech
• Real Estate
• Utility
• Communications
• IT System Architekt
• Technische Projektleitung
• Design und Implementierung
von Datenbank
Anwendungen
• Entwurf und Umsetzung von
IT Infrastrukturen zum
Datenmanagement
Gunther Pippèrr arbeitet seit mehr als 16 Jahre intensiv mit den
Produkten der Firma Oracle im Bereich
Datenbanken/Applikationsserver und Dokumenten-Management.
Herr Pippèrr hat sich tiefes Wissen über den Aufbau komplexer IT
Architektur aneignen können und hat dieses in der Praxis
erfolgreich umgesetzt.
Herr Pippèrr hat eine Abschluss als Dipl. Ing. Technische
Informatik (FH) an der FH Weingarten.
Industry Expertise
Background
Functional Expertise
 Datenbank Architekt für ein Projekt zur
Massendatenverarbeitung in der Telekommunikation
 Architekt und technische Projektverantwortung für ein Smart
Metering Portal für das Erfassen von Energiezählerdaten und
Asset Management
 Architekt und Projektleitung , Datenbank Design und
Umsetzung für die Auftragsverwaltung mit Steuerung von
externen Mitarbeitern für den Sprachdienstleister von
deutschen Technologiekonzern
 Architekt und technische Projektverantwortung für IT
Infrastrukturprojekte, z.B.:
 Zentrale Datenhaltung für Münchner Hotelgruppe mit
über 25 Hotels weltweit,
 Redundante Cluster Datenbank Infrastrukturen für
diverse größere Web Anwendungen wie Fondplattform
und Versicherungsportale, Loyalty Card Anwendungen
 CRM- und Ausschreibungsportal für großen Münchner
Bauträger
Selected Experience
http://www.pipperr.de
http://orapowershell.codeplex.com
Web

Contenu connexe

Tendances

20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAsKarin Patenge
 
Streaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlStreaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlMatthias Niehoff
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Ulrike Schwinn
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortragRamon Wartala
 
Oracle12c für Entwickler
Oracle12c für EntwicklerOracle12c für Entwickler
Oracle12c für EntwicklerCarsten Czarski
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 

Tendances (7)

20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
 
Streaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der WahlStreaming Plattformen und die Qual der Wahl
Streaming Plattformen und die Qual der Wahl
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortrag
 
BI mit Apache Hadoop (CDH)
BI mit Apache Hadoop (CDH)BI mit Apache Hadoop (CDH)
BI mit Apache Hadoop (CDH)
 
Oracle12c für Entwickler
Oracle12c für EntwicklerOracle12c für Entwickler
Oracle12c für Entwickler
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 

En vedette

Logical Data Warehouse - SQL mit Oracle DB und Hadoop
Logical Data Warehouse - SQL mit Oracle DB und HadoopLogical Data Warehouse - SQL mit Oracle DB und Hadoop
Logical Data Warehouse - SQL mit Oracle DB und HadoopOPITZ CONSULTING Deutschland
 
Hadoop Einführung @codecentric
Hadoop Einführung @codecentricHadoop Einführung @codecentric
Hadoop Einführung @codecentricimalik8088
 
Big Data Paris - Air France: Stratégie BigData et Use Cases
Big Data Paris - Air France: Stratégie BigData et Use CasesBig Data Paris - Air France: Stratégie BigData et Use Cases
Big Data Paris - Air France: Stratégie BigData et Use CasesMongoDB
 
Big Data with Not Only SQL
Big Data with Not Only SQLBig Data with Not Only SQL
Big Data with Not Only SQLPhilippe Julio
 
Conte de Miguel arjona
Conte de Miguel arjonaConte de Miguel arjona
Conte de Miguel arjonaMartin Xavier
 
Turnitin webinar01 mainka_final
Turnitin webinar01 mainka_finalTurnitin webinar01 mainka_final
Turnitin webinar01 mainka_finalhlreiff
 
Begrüssung und Einführung ins Thema
Begrüssung und Einführung ins Thema Begrüssung und Einführung ins Thema
Begrüssung und Einführung ins Thema Vorname Nachname
 
Normas de presentación de trabajos escritos, orales, audiovisuales y digitales
Normas de presentación de trabajos escritos, orales, audiovisuales y digitalesNormas de presentación de trabajos escritos, orales, audiovisuales y digitales
Normas de presentación de trabajos escritos, orales, audiovisuales y digitalesProfesor de apoyo en primaria
 
Einleitung Komfortlüftung und Hygiene
Einleitung Komfortlüftung und HygieneEinleitung Komfortlüftung und Hygiene
Einleitung Komfortlüftung und HygieneVorname Nachname
 
Überblick aller Klassenreisen
Überblick aller KlassenreisenÜberblick aller Klassenreisen
Überblick aller Klassenreisenthewiseone1997
 
Las dietas más tontas de la historia. Luis Salvador Velasquez Rosas
Las dietas más tontas de la historia. Luis Salvador Velasquez RosasLas dietas más tontas de la historia. Luis Salvador Velasquez Rosas
Las dietas más tontas de la historia. Luis Salvador Velasquez RosasLuis Salvador Velasquez Rosas
 
131007 netto urlaubstüte_gewinnspiel
131007 netto urlaubstüte_gewinnspiel131007 netto urlaubstüte_gewinnspiel
131007 netto urlaubstüte_gewinnspielNetto_Blogger
 
Ndicadores de los sistemas de producción
Ndicadores de los sistemas de producciónNdicadores de los sistemas de producción
Ndicadores de los sistemas de producciónElisa Puche
 

En vedette (20)

Logical Data Warehouse - SQL mit Oracle DB und Hadoop
Logical Data Warehouse - SQL mit Oracle DB und HadoopLogical Data Warehouse - SQL mit Oracle DB und Hadoop
Logical Data Warehouse - SQL mit Oracle DB und Hadoop
 
Hadoop Einführung @codecentric
Hadoop Einführung @codecentricHadoop Einführung @codecentric
Hadoop Einführung @codecentric
 
Big Data Paris - Air France: Stratégie BigData et Use Cases
Big Data Paris - Air France: Stratégie BigData et Use CasesBig Data Paris - Air France: Stratégie BigData et Use Cases
Big Data Paris - Air France: Stratégie BigData et Use Cases
 
Big Data with Not Only SQL
Big Data with Not Only SQLBig Data with Not Only SQL
Big Data with Not Only SQL
 
Powerpoint perivallontiko germ
Powerpoint perivallontiko germPowerpoint perivallontiko germ
Powerpoint perivallontiko germ
 
Practica 2ª
Practica 2ªPractica 2ª
Practica 2ª
 
Conte de Miguel arjona
Conte de Miguel arjonaConte de Miguel arjona
Conte de Miguel arjona
 
Desfile
DesfileDesfile
Desfile
 
Turnitin webinar01 mainka_final
Turnitin webinar01 mainka_finalTurnitin webinar01 mainka_final
Turnitin webinar01 mainka_final
 
Begrüssung und Einführung ins Thema
Begrüssung und Einführung ins Thema Begrüssung und Einführung ins Thema
Begrüssung und Einführung ins Thema
 
Normas de presentación de trabajos escritos, orales, audiovisuales y digitales
Normas de presentación de trabajos escritos, orales, audiovisuales y digitalesNormas de presentación de trabajos escritos, orales, audiovisuales y digitales
Normas de presentación de trabajos escritos, orales, audiovisuales y digitales
 
Einleitung Komfortlüftung und Hygiene
Einleitung Komfortlüftung und HygieneEinleitung Komfortlüftung und Hygiene
Einleitung Komfortlüftung und Hygiene
 
Bloggen ist harte Arbeit
Bloggen ist harte ArbeitBloggen ist harte Arbeit
Bloggen ist harte Arbeit
 
Überblick aller Klassenreisen
Überblick aller KlassenreisenÜberblick aller Klassenreisen
Überblick aller Klassenreisen
 
10 Tips
10 Tips10 Tips
10 Tips
 
Las dietas más tontas de la historia. Luis Salvador Velasquez Rosas
Las dietas más tontas de la historia. Luis Salvador Velasquez RosasLas dietas más tontas de la historia. Luis Salvador Velasquez Rosas
Las dietas más tontas de la historia. Luis Salvador Velasquez Rosas
 
Comunicación oral y escrita
Comunicación oral y escritaComunicación oral y escrita
Comunicación oral y escrita
 
131007 netto urlaubstüte_gewinnspiel
131007 netto urlaubstüte_gewinnspiel131007 netto urlaubstüte_gewinnspiel
131007 netto urlaubstüte_gewinnspiel
 
Ndicadores de los sistemas de producción
Ndicadores de los sistemas de producciónNdicadores de los sistemas de producción
Ndicadores de los sistemas de producción
 
Acción tutorial
Acción tutorialAcción tutorial
Acción tutorial
 

Similaire à Oracle hadoop doag-big-data_09_2014_gpi

Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?KurtStockinger
 
Data lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesData lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesComsysto Reply GmbH
 
20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatengeKarin Patenge
 
Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...
Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...
Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...Harald Erb
 
Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option Ileana Somesan
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data KonnektivitätTrivadis
 
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Gunther Pippèrr
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatengeKarin Patenge
 
Hadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-InfrastrukturenHadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-Infrastruktureninovex GmbH
 
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im VergleichOracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im VergleichDierk Lenz
 
Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017oraclebudb
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2 oraclebudb
 
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015Marcel Franke
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatengeKarin Patenge
 
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem PrüfstandGWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem PrüfstandGWAVA
 
DB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder TravelerDB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder TravelerNico Meisenzahl
 
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server Optimierung
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server OptimierungUwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server Optimierung
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server OptimierungInformatik Aktuell
 
SQL on Hadoop für praktikables BI auf Big Data
SQL on Hadoop für praktikables BI auf Big DataSQL on Hadoop für praktikables BI auf Big Data
SQL on Hadoop für praktikables BI auf Big Datainovex GmbH
 

Similaire à Oracle hadoop doag-big-data_09_2014_gpi (20)

Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
 
Data lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesData lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid Architectures
 
20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge
 
Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...
Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...
Endeca Web Acquisition Toolkit - Integration verteilter Web-Anwendungen und a...
 
Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
Hadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-InfrastrukturenHadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-Infrastrukturen
 
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im VergleichOracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
 
Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2
 
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem PrüfstandGWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
 
DB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder TravelerDB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder Traveler
 
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server Optimierung
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server OptimierungUwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server Optimierung
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server Optimierung
 
Hadoop und SAS für Einsteiger
Hadoop und SAS für EinsteigerHadoop und SAS für Einsteiger
Hadoop und SAS für Einsteiger
 
Webinar big data für unternehmen
Webinar big data für unternehmenWebinar big data für unternehmen
Webinar big data für unternehmen
 
SQL on Hadoop für praktikables BI auf Big Data
SQL on Hadoop für praktikables BI auf Big DataSQL on Hadoop für praktikables BI auf Big Data
SQL on Hadoop für praktikables BI auf Big Data
 

Plus de Gunther Pippèrr

DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenGunther Pippèrr
 
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankÜber Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankGunther Pippèrr
 
Archiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsArchiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsGunther Pippèrr
 
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import DataIntroduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import DataGunther Pippèrr
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrGunther Pippèrr
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterGunther Pippèrr
 
Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Gunther Pippèrr
 
Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01Gunther Pippèrr
 

Plus de Gunther Pippèrr (10)

DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
 
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankÜber Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
 
Archiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsArchiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development tools
 
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import DataIntroduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
 
Ldap sqlnet
Ldap sqlnetLdap sqlnet
Ldap sqlnet
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
01 sqlplus
01 sqlplus01 sqlplus
01 sqlplus
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
 
Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015
 
Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01
 

Oracle hadoop doag-big-data_09_2014_gpi

  • 1. Seite 1Gunther Pippèrr © 2014 http://www.pipperr.de ORACLE UND HADOOP Zusammen ein Team? Konferenz – Nürnberg 2014 NoSQL Vortrag – Taiwan/Taipei 2014
  • 2. Seite 2Gunther Pippèrr © 2014 http://www.pipperr.de Warum nun Big DATA Was treibt uns an? Neue Lösungen für alte Probleme?
  • 3. Seite 3Gunther Pippèrr © 2014 http://www.pipperr.de Datenqualität und -Stabilität Daten Sammeln Daten Archivieren Daten auswerten • Daten ändern über die Jahre semantisch und syntaktisch ihre Bedeutung • Wenig feste Strukturen • Hohe Fehlerwahrscheinlichkeit • Nachvollziehbarkeit der Ergebnisse Herausforderung
  • 4. Seite 4Gunther Pippèrr © 2014 http://www.pipperr.de Datenwachstum und Performance Daten Sammeln Daten Archivieren Daten auswerten • Platzbedarf• Geringer Nutzinhalt • Hohes Aufkommen • Performance Herausforderung
  • 5. Seite 5Gunther Pippèrr © 2014 http://www.pipperr.de Warum Hadoop? Ein neuer Standard oder nur ein neuer Hype?
  • 6. Seite 6Gunther Pippèrr © 2014 http://www.pipperr.de File System und Batch Prozessing  Hadoop - Verteiltes Cluster File System – Container für verschiedene Datenbank Lösungen • Andere Datenbanken wie RainStor© oder HIVE nützen Hadoop als Dateisystem  Hadoop - MapReduce Framework – Framework für das MapReduce Pattern über vielen Knoten Alternative: Ceph Clusterfiles System Alternativen MapReduce Abfragen: • Parallel SQL Engines wie Impala • Oracle Big Data SQL
  • 7. Seite 7Gunther Pippèrr © 2014 http://www.pipperr.de Qual der Wahl – Die Software um Hadoop  Hadoop wird immer mehr ein Synonym für eine verteilte Datenhaltung  Im Hadoop Ökosystem wird jede Komponente eines „großen“ RDBMS Systems über ein eigenes Produkt umgesetzt DatenhaltungAbfrage Sprache Optimizer PIG HIVEImpala Drill Oracle Big Data SQL RainStor ETL sqoop HBase
  • 8. Seite 8Gunther Pippèrr © 2014 http://www.pipperr.de Hadoop integrieren Für was kann das jetzt alles nur verwendet werden?
  • 9. Seite 9Gunther Pippèrr © 2014 http://www.pipperr.de Einsatzgebiet – Ergänzung zum Bestands DWH  Einsatzgebiete – Sammeln von Log Informationen aus dem Betrieb • Wie Listener und Audit Logs der Datenbanken – Stream Processing von Maschinendaten – Archivieren von Historischen Daten • Wie Partitionen aus DWH Tabellen Ziele: • Nur die zur Zeit wichtige Daten im Live System vorhalten • Keine Daten verlieren, die noch wichtig werden könnten Anforderung: Große Datenmengen aufbewahren und nur bei Bedarf SELTEN analysieren
  • 10. Seite 10Gunther Pippèrr © 2014 http://www.pipperr.de Die Herausforderung in der Praxis  Integration in die bestehende IT Landschaft – Alle Kernprozesse sind bereits im DWH effizient abgebildet – Berichtwesen / Reporting bereits aufgesetzt Motivation: • Lizenz Kosten erzwingen bereits vor dem Erreichen technischer „Problemgrößen“ neue Lösungen • Storage Kosten steigen überproportional bei Anforderungen an Performance / Verfügbarkeit / Volumen IST DWH Neu • Implementierung • Migration von Alt Daten • Schulung von Mitarbeitern Neu IST DWH Aufwand: IntegrationMigration Neu
  • 11. Seite 11Gunther Pippèrr © 2014 http://www.pipperr.de Wo setzt die Integration an?  Zugriff auf die Daten über die Datenbank  Logische Integration über das Berichtswesen DBNoSQL Reporting DB NoSQL Reporting Bestehende BI/Reporting Umgebung Bestehende Zugriffsberechtigung und Userverwaltung Vollständige Umsetzung des NoSQL Konzepts Wie wird der Zugriff auf die Daten kontrolliert und protokolliert – Stichwort Berechtigungskonzept
  • 12. Seite 12Gunther Pippèrr © 2014 http://www.pipperr.de Integration der DB‘s in das Hadoop Ökosystem MapReduce Daten vom Oracle NoSQL Store lesen HDFS Hadoop Filesystem Ergebnisse ablegen 12c Als "External Table" Daten ablegen Hive Als "External Table" lesen Nur EE Edition der Oracle NoSQL! Daten sammeln Integration - "External Table“ Prinzip - „SQL*Loader“ Prinzip - Data Reader in der DatenbankDaten auswerten
  • 13. Seite 13Gunther Pippèrr © 2014 http://www.pipperr.de Umsetzung Wie kann die Integration technisch gelingen?
  • 14. Seite 14Gunther Pippèrr © 2014 http://www.pipperr.de Hadoop Sicht – Ziel – Eine zentrale Abfrage (1)  Ziel: mit einer Abfrage ein Ergebnisse aus allen Quellen erhalten Oracle RDBMS Abfragen • Performance • Wartbarkeit/Pflege • Kosten Auswahl Kriterien: MapReduce JobsSQL Abfragen Kein direkter Master für die Daten Apache Drill Oracle Big Data SQL
  • 15. Seite 15Gunther Pippèrr © 2014 http://www.pipperr.de Hadoop Sicht – Ziel – Eine zentrale Abfrage (2)  Prinzip des umgekehrten ETL – Quelldaten erstmal einfach in Rohformat speichern – Die Quelldaten werden nicht aufbereitet! • Die Abfragen auf die Daten passen sich flexible an die Daten an, (soweit möglich) – Mehrere Quellen werden kombiniert  Abfrage Systeme über mehrere Datenquellen – Apache Drill • SQL Meta Suche – Oracle Big Data SQL – ein neues Oracle Produkt
  • 16. Seite 16Gunther Pippèrr © 2014 http://www.pipperr.de Datenbank Sicht – Ziel – eine SQL Abfrage  Ziel: Eine SQL Abfrage aus der Datenbank Oracle RDBMS "External Table" Data Pump SQL Abfrage • Performance • Wartbarkeit/Pflege • Kosten Auswahl Kriterien: SQL*Loader SQL AbfragenHDFSHDFS Hive Der Master ist die Oracle Datenbank Konnektoren Java in der Datenbank MapReduce Jobs Oracle Gateway Heterogeneous Services JDBC? SQL Abfragen ?
  • 17. Seite 17Gunther Pippèrr © 2014 http://www.pipperr.de Konnektoren  ORACLE RDBMS (1)  "External Table" Prinzip – Daten verbleiben im HDFS – CSV Dateien / Hive Tabellen als Oracle Tabellen lesen • Eigene Skripte mit "PREPROCESSOR" für "External Table" einbinden • FUSE Mount Points im Filesystem für "traditionelle" Zugriffe einbinden – HDFS als "normales" Filesystem einbinden • Kostenpflichtige Lösung: Oracle SQL Connector for HDFS - OSCH – Ehemals Oracle Direct Connector for Hadoop Distributed File System • Direkt vom HDFS die Daten per Java Klassen aus der DB lesen
  • 18. Seite 18Gunther Pippèrr © 2014 http://www.pipperr.de Konnektoren  ORACLE RDBMS (2)  „External Table" Prinzip – Daten verbleiben im HDFS – Data Pump "External Table" als Oracle Tabellen lesen • Tabellen / Partitionen in das HDFS archivieren und in der DB löschen • Bei Bedarf die Daten wieder einbinden • FUSE Mount Point – HDFS als Filesystem für die Archivierung nützen • Als "External Table" einbinden – Oracle Direct Connector – "External Table" im Data Pump Format Oracle "External Table" TYPE oracle_datapump können NICHT mit "impdb" als Import Quelle verwendet werden, da das Export File Format unterschiedlich ist!
  • 19. Seite 19Gunther Pippèrr © 2014 http://www.pipperr.de Konnektoren  ORACLE RDBMS (3)  SQL*Loader Prinzip – Daten werden in das jeweilige Ziel geladen – Oracle*Loader für Hadoop • Für das einlesen der Daten vom Hadoop Cluster – Quest (veraltet?) • Data Connector for Oracle and Hadoop ( Erweiterung Sqoop) – Apache Sqoop(TM) • Open Source SQL*Loader für Hadoop – lesen UND schreiben => Apache Flume Mehr für das zentrale Sammeln von Log Daten: Einsammeln, filtern und in das HDFS schreiben
  • 20. Seite 20Gunther Pippèrr © 2014 http://www.pipperr.de Konnektoren  ORACLE RDBMS (4)  Data Konnektoren über Java IN der Datenbank – Eigene Java Programm lesen Daten aus der DB von Hadoop • MapReduce Framework aus der Datenbank heraus aufrufen • Wie ein SOA Adapter oder ein klassisches REST Interface – MapReduce Jobs per Java mit Oracle Klassen mit 12c r2 in Vorbereitung
  • 21. Seite 21Gunther Pippèrr © 2014 http://www.pipperr.de Wie kann das praktisch umgesetzt werden? Wie fange ich da nun an?
  • 22. Seite 22Gunther Pippèrr © 2014 http://www.pipperr.de Unser Ziel – Eine zentrale Log Ablage  Alert.log  listener.log  DB Job Logs  Audit$ Logs  Statspack/AWR/ASH  Trace Files  SQL Text und Execution Pläne
  • 23. Seite 23Gunther Pippèrr © 2014 http://www.pipperr.de Die Aufgabe- Ein eigener Oracle Audit Vault (1)  Zentrales Sammeln und Auswertung aller Security Log Daten alle Datenbanken im Unternehmen – Ausgewertet wird: • AUD$ Einträge • Listener.log • Alert.log – Über eine zentrale Oracle Datenbank sollen die Ergebnisse mit Apex ausgewertet werden Anforderung: Autorisierung und Unveränderbarkeit der Daten sicherstellen
  • 24. Seite 24Gunther Pippèrr © 2014 http://www.pipperr.de Qual der Wahl!  Wo anfangen? – Welche Produkte wählen? ? ? ? ? Wie verwalte und warte ich das Ganze? Was kann ich mir leisten? Was muss ich am wenigsten installieren /konfigurieren? Hadoop PIG Apache Drill SqoopHive Flume Oracle*Loader für Hadoop - OLH Oracle BIG Data SQL OSCH – Oracle SQL Connector for HDFS
  • 25. Seite 25Gunther Pippèrr © 2014 http://www.pipperr.de HDFS Architektur Übersicht – Variante Oracle Adapter AUD$ Hadoop Connector Quellen pro Maschine Audit DB Ext Table Ext Table Ext Table APEX Listener.ora Audit.log sys.log HIVE Oracle Dumps Ext Table Ext Table Ext Table Ext Table Hadoop Connector Hadoop Connector Daten verbleiben im HDFS Zugriffsberechtigungen werden in der Oracle DB gepflegt Remote: flume Local: pig Format AUD_<DBID>_<SID>_<YYYYDDMM> Logs Hadoop Client Hadoop Client Hadoop Client
  • 26. Seite 26Gunther Pippèrr © 2014 http://www.pipperr.de HDFS Architektur Übersicht – Variante Open Source Quelle Ext Table Listener.ora Audit.log sys.log Remote: flume Ext Table Aud$ XML Logs Logs Logs Default Connector Java MapReduce Preprozesso rJava MapReduce HIVE FUSEAUD$ Sqoop Local: pig Quellen pro Maschine Audit DB APEX
  • 27. Seite 27Gunther Pippèrr © 2014 http://www.pipperr.de Umsetzung – "External Table" Konnektoren  Oracle SQL Connector for HDFS OSCH – Data Pump Table Exports möglich • Vorteil: Schnelles wiedereinlesen • Nachteil: – Für andere Tools nicht lesbar! – Evtl.. Datenbank-Versions abhängig! – Es können keine Daten angefügt werden! – Direktes Erzeugen von Hive Tabellen • Vorteil: auch andere Werkzeuge können mit den Daten arbeiten – CSV Dateien HDFS Oracle Dumps Location Files Hadoop Connector Ext Table Hadoop API HIVE Zur Zeit nur für Datenbanken unter Linux verfügbar! Aud$ Exports Listener.log alert.log
  • 28. Seite 28Gunther Pippèrr © 2014 http://www.pipperr.de OSCH - Oracle SQL Connector for HDFS  SQL Abfrage über eine "External Table" Location Files Oracle Datenbank Präprozessor HDFS_STREAM Ext Table Aud$ Exports Listener.log - alert.logHive Table Delimited Text Data Pump HDFS API SQL Connector for HDFS Oracle Server Hadoop Node HDFS Location Files = URI für die Daten im HDFS Location Files Location Files
  • 29. Seite 29Gunther Pippèrr © 2014 http://www.pipperr.de OSCH – Die Bedeutung der Location Files  Location Files – Pointer auf die Daten im HDFS – Die Location Files enthalten die einzelnen Ziel Dateien auf dem HDFS – Werden beim „-createTable“ unter dem Verzeichnis des DIRECTORY Objekts anleget – Ändern die sich die Daten im HDFS können diese Dateien mit „-publish“ aktualisiert werden – Beispiel: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <locationFile> <header> <version>1.0</version> <fileName>osch-20140831075440-588-1</fileName> <createDate>2014-08-30T19:10:08</createDate> <publishDate>2014-08-31T07:54:40</publishDate> <productName>Oracle SQL Connector for HDFS Release 3.0.0 - Production</productName> <productVersion>3.0.0</productVersion> </header> <uri_list> <uri_list_item size="11723955" compressionCodec="">HDFS://bigdatalite.localdomain:8020/tmp/auditGPI/part-m-00003</uri_list_item> </uri_list> </locationFile>
  • 30. Seite 30Gunther Pippèrr © 2014 http://www.pipperr.de Installation Oracle Connector for HDFS  Hadoop Client auf DB Host aufsetzen  Zip Archive auspacken und Umgebung anpassen  Oracle DB User einrichten/konfigurieren – Recht read/write/execute auf das OSCH_BIN Directory für den User zusätzlich vergeben!  Mit dem „external Command Tool“ die „External Table“ anlegen  Abfragen
  • 31. Seite 31Gunther Pippèrr © 2014 http://www.pipperr.de Oracle SQL Connector for Hadoop OSCH (1)  „Oracle SQL Connector for Hadoop“ für HIVE verwenden – "External Table" erzeugen mit: Auf der zentralen Datenbank für die Auswertung der Log Daten hadoop jar $OSCH_HOME/jlib/orahdfs.jar oracle.hadoop.exttab.ExternalTable -D oracle.hadoop.exttab.hive.tableName=ext_ora_audit_gpi -D oracle.hadoop.exttab.hive.databaseName=default -D oracle.hadoop.exttab.sourceType=hive -D oracle.hadoop.exttab.tableName=ext_ora_audit_gpi_hive -D oracle.hadoop.connection.url=jdbc:oracle:thin:@//localhost:1521/orcl -D oracle.hadoop.connection.user=scott -D oracle.hadoop.exttab.defaultDirectory=HADOOP_EXT_TABS -createTable
  • 32. Seite 32Gunther Pippèrr © 2014 http://www.pipperr.de Oracle SQL Connector for Hadoop OSCH (2)  Oracle SQL Connector for Hadoop  4. "External Table" DDL abfragen mit „-getDDL“ / überprüfen: ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY "HADOOP_EXT_TABS" … PREPROCESSOR "OSCH_BIN_PATH":'hdfs_stream' …. ) ) LOCATION ( 'osch-20140830073731-58-1', 'osch-20140830073731-58-2', 'osch-20140830073731-58-3', 'osch-20140830073731-58-4' ) ) Location Files
  • 33. Seite 33Gunther Pippèrr © 2014 http://www.pipperr.de Probleme über Probleme …..  CLASSPATH muss die Jar Files von Hive enthalten – Bei Problem im Hadoop Kommando Script direkt anpassen  HIVE Tabelle darf keine Spalten vom Typ „BINARY“ enthalten  Problem mit Datumsformaten und Null Spalten – Export per Scoop => null wird 'null' – Die Generiert Anweisung=> – "TIMESTAMP" CHAR DATE_FORMAT DATE MASK 'YYYY-MM-DD' NULLIF "TIMESTAMP"=0X'5C4E', => N – Benötigt wird aber ein => – "TIMESTAMP" CHAR DATE_FORMAT DATE MASK 'YYYY-MM-DD' NULLIF "TIMESTAMP"=0X'276E756C6C27'‚ => 'null'
  • 34. Seite 34Gunther Pippèrr © 2014 http://www.pipperr.de Oracle Loader for Hadoop - OLH  Daten in die Datenbank einlesen Oracle Datenbank ApplicationsManager Hive Table MapReduce Job Delimited Text Data Pump Format Oracle Server Hadoop Node HDFSAVRO Custom Format Oracle Loader for Hadoop Offline Load Online Load • JDBC • OCI direct Path
  • 35. Seite 35Gunther Pippèrr © 2014 http://www.pipperr.de Oracle Loader for Hadoop – OLH (1)  Dateien im „Data Pump Export“ Format von HDFS Daten für den Import erzeugen  Online Mode – Daten werden direkt in die Datenbank geladen  Offline Mode – Daten werden zuerst aus dem Hadoop in Data Pump oder CSV Format erzeugt und können später traditionell eingebunden werden  Ablauf:  Tabelle in der Oracle DB anlegen  Job Konfigurationsdatei für den MapReduce Job anlegen  Job Starten und Daten aus Hive / CSV Daten exportieren und in Richtung Oracle DB importieren Nachteil: An dem Data Pump Dump können keine weitern Daten angefügt werden Dump müssen über select * und weitere "External Table" zusammen gefügt werden
  • 36. Seite 36Gunther Pippèrr © 2014 http://www.pipperr.de Oracle Loader for Hadoop – OLH (2)  Probleme: – Bei der Verwendung von Hive Tabellen müssen noch einige Jar Files einzeln angegeben werden! – Fehler: – Lösung hadoop jar /u01/connectors/olh/jlib/oraloader.jar oracle.hadoop.loader.OraLoader -conf hdfs_job_config.xml -libjars /usr/lib/hive/lib/hive-metastore-0.12.0-cdh5.0.0.jar ,/usr/lib/hive/lib/hive-serde-0.12.0-cdh5.0.0.jar ,/usr/lib/hive/lib/libthrift-0.9.0.cloudera.2.jar ,/usr/lib/hive/lib/hive-common-0.12.0-cdh5.0.0.jar Error: java.lang.ClassNotFoundException: org.apache.hadoop.hive.metastore.TableType at .. Und weitere
  • 37. Seite 37Gunther Pippèrr © 2014 http://www.pipperr.de Lizenz?  Lizensierung Oracle Big Data Connectors – Pro Prozessor der Hadoop Clusters – Kosten: • Oracle Technology Global Price List July 22, 2014 • 2000,- USA (Dollar) per Hadoop Cluster Processor See: http://docs.oracle.com/cd/E53356_01/doc.30/e53065/bda.htm#BIGLI113 See :http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf
  • 38. Seite 38Gunther Pippèrr © 2014 http://www.pipperr.de "External Table" per FUSE Projekt  HDFS Filesystem per FUSE als Linux Filesystem einbinden – Mit Hilfe der FUSE Technology (Mountable HDFS - mount point for HDFS) kann auf das HDFS mit Standard Oracle Methoden wie auf ein normales Filesystem zugegriffen werden. – Laut Oracle Doku langsamer als die Oracle Big Data Connectors (Faktor 5) und CPU Lastig (3' Fach höher) – https://wiki.apache.org/hadoop/MountableHDFS yum install hadoop-hdfs-fuse.x86_6 hadoop-fuse-dfs dfs://<name_node_hostname>:<namenode_port>
  • 39. Seite 39Gunther Pippèrr © 2014 http://www.pipperr.de "External Table" mit PREPROCESSOR  Einbinden von Skripten über die PREPROCESSOR Anweisung  Ein Shell Script wird aufgerufen und liefert Daten zurück – Die Dateiangaben im Location Part können als Parameter übergeben werden, damit kann der Job parametrisiert werden – Im Shell Script kann der Connect auf die Daten erfolgen – Standard Out Pipe wird mit der "External Table" verknüpft Diese Lösung ist damit Lizenzkostenfrei!
  • 40. Seite 40Gunther Pippèrr © 2014 http://www.pipperr.de Beispiel „external Table“ mit PREPROCESSOR  Beispiel: CREATE TABLE PREPREP_EXT( wert VARCHAR2(2000) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY DATA_LOAD ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE PREPROCESSOR EXT_COMMAND:'loadFromHadoop.sh' SKIP 0 LOGFILE EXT_DATA:'data_load.log' BADFILE EXT_DATA:'data_load.bad' NODISCARDFILE FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' MISSING FIELD VALUES ARE NULL ) LOCATION (EXT_DATA:'hadoop_locator.dat') ) REJECT LIMIT 0 NOPARALLEL NOMONITORING ;
  • 41. Seite 41Gunther Pippèrr © 2014 http://www.pipperr.de „External Table“ mit PREPROCESSOR (2)  Im Script wird die entsprechende Logik aufgerufen – Lade die Daten aus dem Hadoop auf den DB Server • hdfs dfs –cat /user/auditdat/logfile.a.. – Stelle die Daten der "External Table" zur Verfügung • Über Standard out wird verknüpft #!/bin/sh #Laufzeitumgebung setzen export PATH=$PATH:/bin:/sbin/:/usr/bin export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec export HADOOP_CONF_DIR=/etc/hadoop/conf.bigdatalite # Übergabe Parameter Datei auslesen und Inhalt als Parameter verwerten FILENAME=`/bin/cat $1` #Mit HDFS Bordmitteln die Datei auswerten /usr/lib/hadoop-hdfs/bin/hdfs dfs -cat $FILENAME
  • 42. Seite 42Gunther Pippèrr © 2014 http://www.pipperr.de DEMO  External Table Demo Aus Hadoop mit Board mitteln lesen
  • 43. Seite 43Gunther Pippèrr © 2014 http://www.pipperr.de Hadoop Sqoop 2 einsetzen  Sqoop 2 Data Loader – Eine Art SQL*Loader? Oracle RDBMS AUD$ ApplicationsManager C 2 A 2 B 3 A 2 G 7 Y 8 Hive Table Sqoop Client Sqoop Metadata JDBC Configure and start Job Store Job Configuration MapReduce Job AUD$_QUELL_DB_SID Daten aus der Quelldatenbank exportieren und in Hadoop ablegen
  • 44. Seite 44Gunther Pippèrr © 2014 http://www.pipperr.de Sqoop 2 – Installation und Setup  Software herunterladen und auspacken – JDBC Treiber für Oracle kopieren  Connect zum Hadoop Cluster konfigurieren – Mindestens ein Hadoop Client muss installiert sein  Server Prozess starten  Daten transferieren
  • 45. Seite 45Gunther Pippèrr © 2014 http://www.pipperr.de Flexibler Import mit Sqoop  Daten aufteilen mit – Select <spalte> from <table> where <condition> – Eigene SQL Abfrage  Parallele Abarbeitung  Inkrementelles Laden über eine where Bedingung Bei Test auf der Oracle BigData Appliance „Exception in thread „main“ groovy.lang.MissingPropertyException: No such property: terminal for class: jline.Terminal“ Lösung: unset CLASSPATH export CLIENT_LIB=/usr/lib/sqoop2/client-lib /usr/lib/sqoop2/bin/sqoop.sh client
  • 46. Seite 46Gunther Pippèrr © 2014 http://www.pipperr.de Beispiel Sqoop 2  Am Sqoop Server anmelden  Connection Objekt anlegen – JDBC Zugriff auf die Oracle DB konfigurieren  Job Objekt definieren – Wie soll der Job abgearbeitet werden  Job starten und Daten nach Hadoop importieren sqoop:000> create connection --cid 1 sqoop:000> create job --xid 1 --type import sqoop:000> start job --jid 1 $SQOOP_HOME/bin/sqoop.sh client sqoop:000> set server --host nosqldb01 --port 12000 --webapp sqoop
  • 47. Seite 47Gunther Pippèrr © 2014 http://www.pipperr.de Sqoop ist nicht „SQL Injektion“ save!  In der AUD$ hieß ein User 'TESTER – Beim Laden im Log: SELECT * FROM SYSTEM.AUD$ WHERE ''TESTER' <= USERID AND USERID < '+����'
  • 48. Seite 48Gunther Pippèrr © 2014 http://www.pipperr.de Vergleich der SQL*Loader Werkzeuge  Kostenpflichtig  => Laden in die Oracle Datenbank  Parallelisierung auf Oracle zugeschnitten Apache Sqoop  Open Source  Laden von und nach Hadoop  Version 1.4 für Hadoop 1  Version 1.9 für Hadoop 2  Parallel Verarbeitung ? Oracle SQL*Loader - OLH
  • 49. Seite 49Gunther Pippèrr © 2014 http://www.pipperr.de Apache Flume  Eine Art „syslog“ Demon  Übernimmt den Transport der Log Daten – Log Daten in Hive ablegen Flume sammelt und überträgt HDFS Sink Listener.ora Flume Agent – Tier Collector – Tier Storage – Tier C 2 A 2 B 3 A 2 G 7 Y 8 Hive Table Source Channel Logfiles
  • 50. Seite 50Gunther Pippèrr © 2014 http://www.pipperr.de Beispiel für den Einsatz mit dem Listener.log  Ein Log Eintrag: Lister Log Log.xml Oracle Datenbank Server Nur Flume keine weiteren Libraries installiert Flume Agent Source Channel Sink Flume Agent Source Channel HDFS Sink Ein Hadoop Knoten
  • 51. Seite 51Gunther Pippèrr © 2014 http://www.pipperr.de Flume Konfiguration vi /usr/lib/flume-ng/conf/agent-conf.properties agent.sources = OraListener agent.channels = memoryChannel agent.sinks = avro-forward # Channel type exec agent.sources.OraListener.type = exec agent.sources.OraListener.command = tail -F /opt/oracle/diag/tnslsnr/oradb12c01/listener/alert/log.xml # The channel can be defined as follows agent.sources.OraListener.channels = memoryChannel #sink agent.sinks.avro-forward.type = avro agent.sinks.avro-forward.hostname = 10.10.10.12 agent.sinks.avro-forward.port = 44444 #Specify the channel the sink should use agent.sinks.avro- forward.channel = memoryChannel # Each channels type is defined agent.channels.memoryChannel.type = memory agent.channels.memoryChannel.capacity = 100 # starten export JAVA_HOME=/usr/java/jdk1.7.0_67 /usr/lib/flume-ng/bin/flume-ng agent -n agent -c /usr/lib/flume-ng/conf -f /usr/lib/flume-ng/conf/agent- conf.properties HDFS Agent vi /etc/flume-ng/conf/agent2-conf.properties agent2.sources = OraLogFiles agent2.channels = memoryChannel agent2.sinks = hdfsSink # Channel type avro agent2.sources.OraLogFiles.type = avro agent2.sources.OraLogFiles.bind = 10.10.10.12 agent2.sources.OraLogFiles.port = 44444 # The channel can be defined as follows agent2.sources.OraLogFiles.channels = memoryChannel # Each sinks type must be defined agent2.sinks.hdfsSink.type = HDFS agent2.sinks.hdfsSink.hdfs.path = HDFS://bigdatalite.localdomain:8020/user/oracle/gpi agent2.sinks.hdfsSink.hdfs.filePrefix = OraLogs- agent2.sinks.hdfsSink.hdfs.rollCount = 1000 agent2.sinks.hdfsSink.hdfs.batchSize = 10 #Specify the channel the sink should use agent2.sinks.hdfsSink.channel = memoryChannel # Each channels type is defined agent2.channels.memoryChannel.type = memory agent2.channels.memoryChannel.capacity = 100 # starten flume-ng agent -n agent2 -c conf -f /etc/flume- ng/conf/agent2-conf.properties Listener Agent
  • 52. Seite 52Gunther Pippèrr © 2014 http://www.pipperr.de Was ergibt sich daraus für unsere Aufgabe? (1)  Bei Verwendung des Oracle Big Data Connectors für den Export: – Von jeder DB wird täglich die Aud$ exportiert • Format Dump AUD_<DBID>_<SID>_<YYYYMMDD> • Lokales PL/SQL Package (mit Hilfe einer Log Tabelle) führt den Export durch – Monatlich werden die Daten von der zentralen Datenbank in einen Monats Dump verdichtet – Nachteil: • Hadoop Client auf jeder Datenbank notwendig • Windows wird schwierig • Kosten • Dumps müssen ersten durch "Umwege" verdichtet werden
  • 53. Seite 53Gunther Pippèrr © 2014 http://www.pipperr.de Was ergibt sich daraus für unsere Aufgabe? (2)  Lösung mit Sqoop und Hive – Zentral vom einem Server • Tägliche wird die AUD$ Tabelle in eine Hive Tabelle exportiert – Vorteil: • Keine Installation auf den Quell Servern – Nachteil: • Geringere Performance
  • 54. Seite 54Gunther Pippèrr © 2014 http://www.pipperr.de Die Daten auswerten Was fange ich jetzt mit den Daten an?
  • 55. Seite 55Gunther Pippèrr © 2014 http://www.pipperr.de Auswerten der Daten  Hive Tabellen in Oracle einbinden – Mit dem OLH einfach - aber Lizenzkosten pflichtig  Hive Tabellen per JDBC direkt abfragen – Open Source wie Hue:
  • 56. Seite 56Gunther Pippèrr © 2014 http://www.pipperr.de Fragen zum Betrieb Wie kann ich das über die Dauer der Jahre warten?
  • 57. Seite 57Gunther Pippèrr © 2014 http://www.pipperr.de Ein Hadoop Cluster betreiben  Backup Konzept? – Ausfallsicherheit und Daten Redundanz sind kein Schutz vor logischen Fehlern!  Datenquellen entkoppeln – Wie lange können die Vorsystem ihre Daten halten? • Buffer Konzepte notwendig?  Upgrade – Patch Konzept für Treiber und OS • Z.B. einzelne Knoten rollierend jeden Monat patchen – Software Upgrade? • Was tun bei einem Mayor Release?
  • 58. Seite 58Gunther Pippèrr © 2014 http://www.pipperr.de Fazit Lohnt sich der Aufwand?
  • 59. Seite 59Gunther Pippèrr © 2014 http://www.pipperr.de Größtes Problem  Viele Updates und unübersichtliche Kompatibilitäten der ganze Werkzeugpalette – Was wird es auch in Zukunft noch geben?  Mapping von Datentypen – Viele Detailprobleme  Java Out of Memory Effekte beim Laden – Jobs bleiben einfach im Hadoop "hängen"
  • 60. Seite 60Gunther Pippèrr © 2014 http://www.pipperr.de Fazit – Ein Apache Hadoop Cluster bietet sich als eine gute Lösung für die Anforderung eines zentralen Audit Vaults für Log Daten an – Die notwendigen Werkzeuge für die Umsetzung der Anforderung sind verfügbar – Die Orchestrierung des Ganzen ist jedoch die große Herausforderung bei einem solchem Projekt – Der damit verbunden Aufwand sollte nicht unterschätzt werden – Der große Vorteil der Eigenentwicklung einer Audit Valut Lösung liegt darin, mit diesem Projekt einen guten Einstieg in diese neue Technologie ohne großes Business Risiko umsetzen zu können
  • 61. Seite 61Gunther Pippèrr © 2014 http://www.pipperr.de Ihre Erfahrungen? ?
  • 62. Seite 62Gunther Pippèrr © 2014 http://www.pipperr.de Fragen Oracle und Hadoop NO:SQL
  • 63. Seite 63Gunther Pippèrr © 2014 http://www.pipperr.de Quellen  Oracle – BIG Data – https://www.oracle.com/bigdata/products.html  Mehr über das Thema und die Quellen im Detail siehe: – http://www.pipperr.de/dokuwiki/doku.php?id=nosql:hadoop_integration – http://www.pipperr.de/dokuwiki/doku.php?id=nosql_datenbank
  • 64. Seite 64Gunther Pippèrr © 2014 http://www.pipperr.de Gunther Pippèrr - IT-Architekt - Berater • High-Tech • Real Estate • Utility • Communications • IT System Architekt • Technische Projektleitung • Design und Implementierung von Datenbank Anwendungen • Entwurf und Umsetzung von IT Infrastrukturen zum Datenmanagement Gunther Pippèrr arbeitet seit mehr als 16 Jahre intensiv mit den Produkten der Firma Oracle im Bereich Datenbanken/Applikationsserver und Dokumenten-Management. Herr Pippèrr hat sich tiefes Wissen über den Aufbau komplexer IT Architektur aneignen können und hat dieses in der Praxis erfolgreich umgesetzt. Herr Pippèrr hat eine Abschluss als Dipl. Ing. Technische Informatik (FH) an der FH Weingarten. Industry Expertise Background Functional Expertise  Datenbank Architekt für ein Projekt zur Massendatenverarbeitung in der Telekommunikation  Architekt und technische Projektverantwortung für ein Smart Metering Portal für das Erfassen von Energiezählerdaten und Asset Management  Architekt und Projektleitung , Datenbank Design und Umsetzung für die Auftragsverwaltung mit Steuerung von externen Mitarbeitern für den Sprachdienstleister von deutschen Technologiekonzern  Architekt und technische Projektverantwortung für IT Infrastrukturprojekte, z.B.:  Zentrale Datenhaltung für Münchner Hotelgruppe mit über 25 Hotels weltweit,  Redundante Cluster Datenbank Infrastrukturen für diverse größere Web Anwendungen wie Fondplattform und Versicherungsportale, Loyalty Card Anwendungen  CRM- und Ausschreibungsportal für großen Münchner Bauträger Selected Experience http://www.pipperr.de http://orapowershell.codeplex.com Web