Datenaustausch Hadoop & Oracle DB Carsten Herbe metafinanz Informationssysteme GmbH München

Ähnliche Dokumente
einfach. gut. beraten. Oracle Big Data Konnektoren: Hadoop und die Oracle DB DOAG Konferenz + Ausstellung 2016 Nürnberg Philipp Loer

Datenaustausch Hadoop & Oracle DB. DOAG Konferenz 2013 Nürnberg, November 2013 Carsten Herbe metafinanz Informationssysteme GmbH

Big Data: Die ersten Schritte eines Oracle Experten

Hadoop & SQL Wie Hadoop um SQL erweitert werden kann. Oracle/metafinanz Roadshow 11./18. Februar

Oracle Data Warehouses und Big Data im Zusammenspiel

Data Mart (Star Schema) Offload nach Hadoop

Big Data Konnektoren: Hadoop und die Oracle DB

Big Data in der Praxis

Oracle Data Warehouses und Big Data im Zusammenspiel

Hadoop Demo HDFS, Pig & Hive in Action. Oracle DWH Konferenz 2014 Carsten Herbe

NoSQL-Datenbanken und Hadoop im Zusammenspiel mit dem Data Warehouse

Hadoop & SQL Oracle BI & DWH Konferenz /20. März 2013, Kassel. Carsten Herbe metafinanz Informationssysteme GmbH

einfach. gut. beraten. Big Data und SQL - das passt! DOAG Konferenz + Ausstellung , Nürnberg Philipp Loer

Konferenz Nürnberg NoSQL Vortrag Taiwan/Taipei Zusammen ein Team? ORACLE UND HADOOP. Seite 1. Gunther Pippèrr

ODI und Big Data Möglichkeiten und ein Erfahrungsbericht Dr. Holger Dresing Oracle Deutschland B.V. & Co. KG Hannover

Big Data in Azure. Ein Beispiel mit HD Insight. Ralf Stemmer

GESTERN OWB, HEUTE ODI

PHP- Umgang mit Datenbanken (1)

Konferenz Nürnberg NoSQL Vortrag Taiwan/Taipei Zusammen ein Team? ORACLE UND HADOOP. Seite 1. Gunther Pippèrr 2014

Performante Verarbeitung großer Datenbanken am praktischem Beispiel

Outsourcing von Big Data //

Safexpert Oracle Datenbank Konnektor

Einführung OWB Java API

Oracle Big Data Technologien Ein Überblick

DWx2r XSD/XML-Processing. Testversion

Hadoop. Eine Open-Source-Implementierung von MapReduce und BigTable. von Philipp Kemkes

CALUMMA ETL Tool Benutzerhandbuch

Die Oracle Datenbank in die Welt von Hadoop und NoSQL integrieren

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Neue Wege zur Oracle-Migration

Big Data: Apache Hadoop Grundlagen

Dr. Gernot Schreib, b.telligent GmbH & Co.KG DATENFLÜSSE IM DWH EINSATZ VON 3 RD -PARTY SOFTWARE

Die CONNECT Storage Engine für MySQL Zugriff auf verschiedenste Daten

SODA Die Datenbank als Document Store Rainer Willems Oracle Deutschland B.V. & Co. KG Dreieich Schlüsselworte

Oracle Version 5 für MS-DOS

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

Installationsanleitung für die netzbasierte Variante Ab Version 3.6. KnoWau, Allgemeine Bedienhinweise Seite 1

Fehlerbehandlung mittels DML Error Logging

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

Unified-E SQL Adapter

APEX Datenverwaltung Wo sind die Daten gerade?

LDAP Connector. Installation und Konfiguration. Version 2017 Summer Release

Zugriff auf SAP-ERP/BI-Daten mit Oracle Data Integrator

MySQL Queries on "Nmap Results"

THEMA: SAS DATA INTEGRATION STUDIO FÜR MEHR TRANSPARENZ IM DATENMANAGEMENT EVA-MARIA KEGELMANN

Das Leben der Anderen

Übersicht SAP-BI. DOAG Regionaltreffen

MySQL Installation. AnPr

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

<Insert Picture Here> z/os Migration und Integration

Wir bauen uns ein Data Warehouse mit MySQL

Hadoop Eine Erweiterung für die Oracle DB?

Node.js der Alleskönner. Kai Donato MT AG Ratingen

Development auf der Plattform SAP HANA

Installation und Konfiguration

Daten, Datenbanken, Datenbankmanagmentsysteme

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Database Connectivity-API (JDBC)

Oracle 10g Einführung

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

GML und Bibliothek oracle.sdoapi

1.1 Datenbankprogramm Oracle für MCIS MDA

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Inhalt. Nero - Verbindung zu Remote Adressen Seite 1 von 10

Big Data Konnektivität Einführung und Demos für die Platform Peter Welker (Trivadis GmbH) Berater / Partner

Hochschule Darmstadt Data Warehouse SS 2015 Fachbereich Informatik Praktikumsversuch 5

Zünde den Turbo-Boost! (LOB-Migration beschleunigt)

5000 User+, Erfahrungen im Produktivbetrieb einer Saas-DB. DOAG 2011 Konferenz + Ausstellung Bernhard Vogel & Frank Szilinski, esentri

Darüber hinaus bietet SQuirreL eine Vielzahl von Plug-ins, mit denen der Funktionsumfang des Programms erheblich erweitert werden kann.

Reporting Lösungen für APEX wähle Deine Waffen weise

Big-Data-Technologien - Überblick - Prof. Dr. Jens Albrecht

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

Für Querdenker Was ODI anders macht als OWB und umgekehrt

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

PL/SQL Unit Tests mit SQL Developer

Pervasive.SQL ODBC Treiber. ab ABACUS er-Version Installationsanleitung

Oracle-Legitimation mit einer Standard-BI Lösung (SAS) in der Praxis. Christian Schütze metafinanz - Informationssysteme GmbH

Safexpert Oracle Datenbank Konnektor. Stand: IBF-Automatisierungs-und Sicherheitstechnik GmbH A-6682 Vils Bahnhofstraße 8

Oracle & Java HOW TO

Big Data Konnektivität Einführung und Hands-On Workshop Für die Platform Peter Welker (Trivadis GmbH) Berater/ Partner

Hinweis zur Erreichbarkeit unserer Support-Hotline per Bitte nutzen Sie ab sofort zur Kontaktaufnahme per die folgende Adresse:

Elasticsearch und die Oracle Datenbank

Entwicklungsumgebung für die Laborübung

Connectivity zwischen den Welten

Anleitung: Verbindung mit der Datenbank

R.I.P Oracle-Datenbank. ggg

XML in der Oracle Datenbank

T:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_ _lids7.basisschulung_import_export.

Möglichkeiten für bestehende Systeme

desk.modul : WaWi- Export

Microsoft Dynamics NAV 2013 SOAP und OData Webservices mit.net nutzen Dipl.-Inf. (FH) Ingo Jansen

Workflows in APEX mit Camunda

Java Database Connectivity-API (JDBC)

Einleitung Big Data... Hadoop...

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW

Webbasierte Informationssysteme

Big Data und Oracle bringen die Logistik in Bewegung

Oracle Data Integrator Ein Überblick

Transkript:

Datenaustausch Hadoop & Oracle DB Carsten Herbe metafinanz Informationssysteme GmbH München Schlüsselworte Hadoop, Sqoop, Sqoop 2, Hive, Oracle Big Data Konnektoren Einleitung Neben der klassischen Data Warehouse Welt entsteht im Kontext von Big Data mit Hadoop als zentrale Datenplattform eine technologisch (und auch methodisch) völlig neue Welt. Diese beiden Welten sind jedoch nicht isoliert, ihr volles Potential kann sich nur entfalten, wenn Daten zwischen ihnen ausgetauscht werden können. Z.B. möchte man vorhandene Stammdaten nach Hadoop laden um sie mit den dortigen Daten zu verknüpfen. Oder aggregierte Analyseergebnisse aus Hadoop werden in das Oracle Data Warehouse geladen um die Ergebnisse den Anwendern der klassischen BI Tools zur Verfügung zu stellen. Abb. 1: Beispiel Big Data Architektur In diesem Dokument wird beschrieben, wie man Daten zwischen Hadoop bzw. dem Hadoop Distributed File System HDFS - und Oracle Datenbanken austauscht. Dazu werden zwei Lösungen vorgestellt: das Open Source Werkzeug Sqoop und die kommerziellen Big Data Konnektoren von Oracle.

Exkurs Hive Für den Datenaustausch zwischen HDFS und relationalen Datenbanken spiel Hive eine besondere Rolle, daher wird im Folgenden kurz erklärt, was Hive ist. Hadoop als Datenspeicher für unstrukturierte Daten auf der eine Seite und Oracle als relationale Datenbank für sehr strukturierte Daten auf der anderen Seite, wie passt das zusammen? Wenn man Daten aus der Oracle Datenbank nach HDFS lädt, behalten sie natürlich ihre Tabellenstruktur. Und umgekehrt lassen sich nur Daten aus HDFS nach Oracle laden, die auch in eine Datenbanktabelle hineinpassen. Mit Hive hat man die Möglichkeit, Tabellen-Metadaten für Daten in HDFS zu definieren. Diese werden weiterhin wie gewohnt in HDFS als z.b. CSV-Dateien gespeichert. Abb. 2: Hive Architektur Diese Metadaten werden im Hive Metastore abgelegt. Dort stehen sie anderen Hive-Nutzern zur Verfügung. Und über HCatalog, welches seit März 2013 zu Hive gehört, können diese Metadaten auch von anderen Tools wie z.b. Pig genutzt werden. Zusätzlich zu den Metadaten bietet Hive mit der SQL-ähnlichen Abfragesprache HiveQL die Möglichkeit, Daten mit SQL in HDFS zu analysieren (SELECT) oder sogar neue Daten in HDFS bzw. Hive zu erzeugen (INSERT). Natürlich gelten hier die gleichen Einschränkungen wie für HDFS: Es gibt kein Update und keine Einzelsatzverarbeitung). Werden also Daten mit einer Oracle Datenbank ausgetauscht, bietet es sich an die Hive Metadaten zu nutzen. Dies ist aber keine Voraussetzung.

Sqoop Sqoop ist ein Open Source Tool zum Austausch von Daten in HDFS (bzw. Hive) und verschieden Datenbanken, darunter natürlich auch Oracle. Dazu bietet Sqoop verschiedene Konnektoren, welche per JDBC auf das Datenbanksystem zugreifen. Auch Sqoop hat einen Metastore, in dem bereits erstellte Sqoop Jobs (d.h. definierte Datentransfers: Quelle, Ziel und welche Daten zu transferieren sind) gespeichert werden. Dieser kann von verschieden Nutzern geteilt werden, um bereits definierte Jobs mehrfach auszuführen. In erster Linie ist Sqoop aber eine Client Anwendung, bei der auch die JDBC Treiber lokal installiert werden müssen. Typischerweise wird Sqoop auf einem Hadoop Cluster Knoten installiert. Abb. 3: Sqoop Architektur Beispiel Import von Oracle nach HDFS: sqoop import --connect jdbc:oracle:thin:@//dbserver:1521/orcl --username scott --table SCOTT.EMP --columns "employee_id,first_name,last_name,job_title" --where 'rownum=1' --target-dir /user/mfhadoop -P [--hive-import] Der Parameter P gibt an, dass das Passwort von der Konsole gelesen wird. Mit dem optionalen hiveimport werden die entsprechenden Hive-Metadaten erzeugt.

Beispiel Export von HDFS nach Oracle: sqoop export --connect jdbc:oracle:thin:@//dbserver:1521/orcl --table SCOTT.EMP --export-dir /hdfs/transfer --username scott --fields-terminated-by '\t' --lines-terminated-by '\n' Sqoop 2 Die Architektur von Sqoop beinhaltet einige Nachteile. Abgesehen davon, dass JDBC Treiber lokal zu installieren sind, müssen auch die Verbindungsparameter zur Datenbank inklusive Passwort dem Nutzer bekannt sein. Mit Sqoop 2 wird eine Client-Server-Architektur eingeführt. Die JDBC Treiber werden auf dem Sqoop 2 Server installiert. Dort werden auch die Datenbankverbindungen (Connections) gespeichert. So können diese einmalig von einem Administrator angelegt werden und anschließend von verschieden Nutzern verwendet werden, ohne dass diese die Passwörter kennen müssen. Abb. 4: Sqoop 2 Architektur

Oracle Big Data Konnektoren Speziell für das Laden von Daten aus Hadoop in eine Oracle Datenbank bietet Oracle mit den Big Data Konnektoren ein kommerzielles Produkt an. Insgesamt gibt es vier verschiedene Konnektoren: Oracle SQL Connector for HDFS Oracle Loader for Hadoop Oracle R Connector for Hadoop Oracle Data Integrator Application Adapter for Hadoop In diesem Dokument beschränken wir uns auf die beiden ersten Konnektoren, da diese für den Austausch mit der Oracle Datenbank gedacht sind. Der Oracle R Connector ist für das Arbeiten mit Oracles Version der statistischen Programmiersprache R gedacht. Der Adapter für den Oracle Data Integrator nutzt die normalen Konnektoren. Er kann mittels generierten Hive-Code auch Daten innerhalb von Hadoop verarbeiten. Oracle SQL Connector for HDFS Der Oracle SQL Connector for HDFS ermöglicht über einen External Table aus der Oracle Datenbank auf Daten in HDFS zuzugreifen. Die Daten in HDFS werden durch sogenannte Location Files beschrieben, welche mit Hilfe des Konnektors angelegt werden müssen. Abb. 5: Oracle SQL Connector

Per Kommandozeilentool des SQL Connectors werden die External Table und die Location Files erzeugt. Hier ein Beispiel um alle *.dat Dateien aus dem Verzeichnis /olh_sales in dem External Table SALES_DT_XTAB bereitzustellen: hadoop jar OSCH_HOME/jlib/orahdfs.jar \ oracle.hadoop.exttab.externaltable \ -D oracle.hadoop.exttab.tablename=sales_dt_xtab \ -D oracle.hadoop.exttab.locationfilecount=4 \ -D oracle.hadoop.exttab.datapaths= "hdfs:///user/scott/olh_sales/*.dat" \ -D oracle.hadoop.exttab.columncount=10 \ -D oracle.hadoop.exttab.defaultdirectory=sales_dt_dir \ -D oracle.hadoop.connection.url= jdbc:oracle:thin:@//myhost:1521/myservicename \ -D oracle.hadoop.connection.user=scott \ -createtable Beim Abfragen der External Table greift der HDFS_STREAM Preprocessor parallel per HDFS API auf die Dateien im Hadoop Cluster zu. Pro Location File wird eine eigene Verbindung genutzt. CREATE TABLE hdfsuser.weather_hdfs_ext_tab ( stations_id VARCHAR2(4000 BYTE), mess_datum VARCHAR2(4000 BYTE) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY weather_ext_dir ACCESS PARAMETERS ( RECORDS DELIMITED BY 0X'0A'... PREPROCESSOR osch_bin_path:hdfs_stream FIELDS... ) LOCATION ('osch-...-1',..., 'osch-...-4') ) Der Vorteil des SQL Connectors ist der komfortable Zugriff per External Table auf die Daten in HDFS. Datenbank-User oder Anwendungen können so transparent auf Daten in HDFS zugreifen. Zu beachten ist allerdings, dass die WHERE-Bedingung erst in der Oracle Datenbank greift, also alle Daten vor dem Filtern in die Oracle Datenbank transferiert werden müssen. Es reicht den SQL Connector auf dem Oracle Server zu installieren. Eine Installation auf dem Cluster ist nur notwendig, wenn Hive verwendet wird.

Oracle Loader for Hadoop Mit dem Oracle Loader for Hadoop werden Daten per Map Reduce Job direkt in die Zieltabelle geladen. Alternativ kann ein Datapump-File in HDFS erzeugt werden. Auf dieses kann man dann mit Hilfe des SQL Connectors per External Table zugreifen. Die Quelldaten können in den verschiedensten Formaten vorliegen: Delimited Text, Avro, Hive und sogar Custom Formats. Abb. 6: Oracle Loader for Hadoop Beim Online Load, wenn die Daten also direkt in die Zieltabelle geschrieben werden, kann dies per JDBC oder per OCI direct path Load gemacht werden. Der Loader wird mittels einer XML Datei konfiguriert. Die Zieltabelle muss dabei in der Datenbank schon existieren. <?xml version="1.0"?> <configuration> <name>mapreduce.inputformat.class</name> <value>oracle.hadoop.loader.lib.input.delimitedtextinputformat</value> <name>mapred.input.dir</name> <value>/user/mfhadoop/produkt_klima_tageswerte_20111025_20121023_15000.txt< /value> <name>oracle.hadoop.loader.input.fieldnames</name> <value>f0,f1,f2,f3,f4,f5,f6</value> <name>mapreduce.outputformat.class</name> <value>oracle.hadoop.loader.lib.output.jdbcoutputformat</value>

<name>oracle.hadoop.loader.targettable</name> <value>hdfsuser.klima_tageswerte</value> <name>mapred.output.dir</name> <value>/user/oracle/loader_output</value> <name>oracle.hadoop.loader.connection.url</name> <value>jdbc:oracle:thin:@//localhost:1521/orcl</value> <name>oracle.hadoop.loader.connection.password</name> <value>mfhadoop</value> <name>oracle.hadoop.loader.connection.user</name> <value>hdfsuser</value> </configuration> Der Oracle Loader for Hadoop lässt sich per Kommandozeile starten. Die Daten werden abhängig von der Konfiguration direkt in die DB oder in ein Data Pump File in HDFS geschrieben. > export OLH_HOME="/home/oracle/connectors/oraloader-2.2.0-h1" > export HADOOP_CLASSPATH="$HADOOP_CLASSPATH:/home/oracle/connectors/oraloader- 2.2.0-h1/jlib/*" > hadoop jar $OLH_HOME/jlib/oraloader.jar oracle.hadoop.loader.oraloader -conf loader_config.xml Der Oracle Loader for Hadoop ist auf allen Cluster Knoten zu installieren.

Fazit Für den Datentransfer von HDFS in die Oracle Datenbank stehen mit dem Open Source Tool Sqoop und dem kommerziellen Oracle Big Data Konnektoren verschiedene Alternativen zur Auswahl. Als erstes wird man sicherlich aus Kostengründen auf Sqoop zurückgreifen. Sollte die Performance nicht ausreichen oder ist ein Zugriff aus der Datenbank per External Table notwendig, können die Oracle Konnektoren in Betracht gezogen werden. Wenn Daten von der Oracle DB nach HDFS transferiert werden, ist Sqoop zurzeit die einzige Möglichkeit, da die Oracle Big Data Konnektoren (Version 2.2) dies zumindest aktuell nicht unterstützen. Generell bietet es sich dabei an, die Daten als Hive Daten abzulegen, so dass die Tabellen-Metadaten über die Struktur der Tabelle auch in Hadoop zur Verfügung stehen. Kontaktadresse: Carsten Herbe metafinanz Informationssysteme GmbH Leopoldstr. 146 D-80804 München Telefon: +49 (0) 89 360531-5039 Fax: +49 (0) 89 360531-5015 E-Mail carsten.herbe@metafinanz.de Internet: www.metafinanz.de