einfach. gut. beraten. Oracle Big Data Konnektoren: Hadoop und die Oracle DB DOAG Konferenz + Ausstellung 2016 Nürnberg Philipp Loer [email protected] www.ordix.de Agenda Hadoop Hive OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System Sqoop: Eine Alternative? Live-Demo DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 2 Relationale Datenbank vs. Big Data Relationale Datenbank DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer Big Data 3 Hadoop-Komponenten Hadoop 2.0 Map Reduce Andere YARN HDFS DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 4 Hadoop vs. RDBMS RDBMS Hadoop Nur strukturierte Daten Un-, semi- oder strukturierte Daten Schema on write Schema on read Hohe Datenintegrität Geringe Datenintegrität Nicht linear skalierbar Nahezu linear skalierbar Write / Read / Upadate many times Write once / Read many DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 5 Agenda Hadoop Hive OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System Sqoop: Eine Alternative? Live-Demo DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 6 Hive-Architektur Hive Server 2 Client Metastore (Data Dictionary) Big Data Cluster (Hadoop) DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 7 Hive-Architektur – Hive Server 2 Hive Thrift Client Client Applications Hive JDBC Driver Hive ODBC Driver Hive Thrift Server Hive Driver Hive Metastore Processing & Resource Management MapReduce v2 TEZ MapReduce v1 YARN Distributed Storage DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer HDFS 8 Hive – Physikalische Speicherung Speicherung der Daten erfolgt weiterhin in HDFS. Jede Tabelle (bzw. Partition) wird in einem eigenen Verzeichnis im HDFS-Dateisystem gespeichert. Interne Tabellen der Default-Datenbank befinden sich in Unterverzeichnissen des HDFS-Verzeichnisses /user/hive/warehouse. Für weitere Datenbanken wird hier ein Unterverzeichnis <Datenbankname.db> erstellt. Partitionen liegen in Unterverzeichnissen des Tabellenverzeichnisses. Die Partition Entwickler der nach der Spalte Job partitionierten Tabelle emp der Hive-Datenbank Scott befände sich im Verzeichnis /user/hive/warehouse/scott.db/emp/job=entwickler/ Die Daten externer Tabellen befinden sich ebenfalls in HDFS, jedoch außerhalb dieser Verzeichnisstruktur. DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 9 Hive – Beispiel CREATE TABLE CREATE TABLE IF NOT EXISTS page_view( viewTime INT, userid BIGINT, page_url STRING, ip VARCHAR(64) COMMENT 'IP Address of the User' ) COMMENT 'This is the page view table‘ PARTITIONED BY(page_url STRING) CLUSTERED BY(userid) INTO 256 BUCKETS ROW FORMAT DELIMITED FIELDS TERMINATED BY '\;' LINES TERMINATED BY '\n' STORED AS TEXTFILE; DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 10 Agenda Hadoop Hive OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System Sqoop: Eine Alternative? Live-Demo DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 11 OLH – Oracle Loader for Hadoop Ermöglicht das Laden von Daten aus Hadoop in eine Oracle DB Daten werden partitioniert, sortiert und in Oracle Datentypen konvertiert Vorteil: Auslagerung von Aufgaben in das Hadoop Cluster zur Reduzierung der Datenbank-Last während des Ladevorgangs Zwei Modi: Online und Offline Im Online Mode werden die Daten direkt in eine Oracle Datenbank geladen. Es gibt dabei zwei Möglichkeiten: JDBC oder Direct Path Im Offlline Mode werden die vorbereiteten Daten in Data Pump Dateien in HDFS abgelegt und können dann zu einem späteren Zeitpunkt geladen werden oder durch den Oracle SQL Connector for Hadoop genutzt werden Konfiguration erfolgt über die Anlage einer XML-Datei hadoop jar <OLH_HOME>/jlib/oraloader.jar oracle.hadoop.loader.OraLoader \ -conf <PATH_TO_CONFIG.xml>\ -D mapred.reduce.tasks=4 DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 12 OLH – Konfiguration: Input / Output DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 13 OLH – Konfiguration: Table Info DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 14 OLH – Konfiguration: Connect DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 15 Agenda Hadoop Hive OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System Sqoop: Eine Alternative? Live-Demo DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 16 OSCH – Oracle SQL Connector for HDFS Erlaubt den Zugriff aus einer Oracle Datenbank auf das Hadoop Cluster Zugriff erfolgt durch die Anlage einer externen Tabelle Nur lesender Zugriff, kein DML, keine Indexes Join mit anderen Tabellen in der Oracle Datenbank möglich Verwendung wie auch die bisher bekannten externen Tabellen Daten in Hadoop: Hive-Tabellen Textdateien in HDFS Vom Oracle Loader for Hadoop (OLH) erstellte Data Pump Dateien in HDFS Ziel Zugriff auf Daten in Hadoop über externe Tabelle Bulk Load von Daten aus Hadoop DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 17 OSCH – Beispiel CREATE TABLE DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 18 Agenda Hadoop Hive OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System Sqoop: Eine Alternative? Live-Demo DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 19 Was kann Sqoop? Import und Export von Daten aus strukturierten Datenspeichern (RDBMS, NoSQL-DB etc.). Zusammenarbeit mit Oozie (Big Data Workflow Management), um Import- und Export-Aufgaben zu ermöglichen. Sqoop besitzt eine mehrschichtige Architektur, die es ermöglicht, neue Datenspeicher durch die Erstellung spezifischer Konnektoren anzubinden. DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 20 Sqoop-Kommandozeile Sqoop ist ein kommandozeilenbasiertes Werkzeug Wichtigste Befehle: sqoop import bzw. sqoop export Beispiel: sqoop import \ --connect jdbc:oracle:thin:@//ppl_centos65:1521/ordix \ --table EMP \ --username scott \ --password tiger Speicherung der Daten in HDFS, per default als csv-Datei Andere Dateiformate sind möglich Import- und Export-Befehle haben weitere Optionen DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 21 Sqoop Import – Hive Daten können durch Sqoop direkt in Hive-Tabellen importiert werden. Zu verwendende Option: --hive-import Während des Hive-Imports werden die Daten von den Datentypen des Quellsystems in Hive-Datentypen konvertiert (z. B. ab Hive 1.2: VARCHAR2 in VARCHAR). Dateiformat entspricht dem Dateiformat, mit dem die Tabelle erstellt wurde (z. B. Textfile mit Tabulator als Trennzeichen, SequnceFile etc.). Nach Abschluss des Imports kann die Tabelle wie eine „normale“ Hive-Tabelle verwendet werden. DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 22 Sqoop-Konnektoren Generic JDBC: Kann genutzt werden, um auf jede Datenbank zuzugreifen, die JDBC unterstützt. Default Connector: Unterstützt den Zugriff auf Oracle, MySQL, PostgreSQL, SQL Server und DB2. Fast Path Connector: MySQL und PostgreSQL OraOOP: Fast Path Connector für Oracle von Cloudera DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 23 Sqoop Server 2 – Coming soon … RDBM S Neu-Implemtierung von Sqoop mit Client-Server-Modell Derzeit (Stand November 2016) nicht für den produktiven Einsatz vorgesehen Hadoop Sqoop Server JDBC Treiber Map Job Hadoo p Metadaten Repository connectors connections jobs DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 24 Agenda Hadoop Hive OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System Sqoop: Eine Alternative? Live-Demo DOAG Konferenz + Ausstellung 2016, Oracle Big Data Konnektoren, Philipp Loer 25 Vielen Dank für Ihre Aufmerksamkeit! Zentrale Paderborn Karl-Schurz-Str. 19a 33100 Paderborn Tel.: 05251 1063-0 Fax: 0180 1 67349 0 Seminarzentrum Wiesbaden Kreuzberger Ring 13 65205 Wiesbaden Tel.: 0611 77840-00 Weitere Geschäftsstellen in Essen, Gersthofen, Köln und Münster [email protected] www.ordix.de Wir Vielen informieren Dank für Sie stets aktuell Ihre Aufmerksamkeit! in unserem Blog: https://blog.ordix.de Zentrale Paderborn Karl-Schurz-Str. 19a 33100 Paderborn Tel.: 05251 1063-0 Fax: 0180 1 67349 0 Seminarzentrum Wiesbaden Kreuzberger Ring 13 65205 Wiesbaden Tel.: 0611 77840-00 Weitere Geschäftsstellen in Essen, Gersthofen, Köln und Münster [email protected] www.ordix.de