<Insert Picture Here> NoSQL-Datenbanken und Hadoop im Zusammenspiel mit dem Data Warehouse Carsten Czarski Oracle Deutschland B.V. & Co KG Big Data … Betrachten von Daten … … die bislang nicht betrachtet wurden Neue Beziehungen finden ... Bessere Entscheidungen fällen … Was sind "Big Data": Die drei "V" • Velocity: Daten entstehen mit hoher Geschwindigkeit – im Sekundentakt oder schneller • Volume: Es entstehen große Datenmengen, von denen man nichts wegwerfen möchte • Variety: Daten entstehen in vielen Varianten; ein relationales Datenmodell ist schwierig bis unmöglich Die Ausgangssituation Unstructured Schema-less SQL Schema Information Density Reporting DBMS (DWH) Data Mining DBMS (OLTP) ETL Erfassen Verarbeiten Auswerten RDBMS Sicher DBA DataCenter Big Data Daten, die bislang nicht betrachtet wurden Unstructured Verteilte Dateisysteme NoSQL MapReduce Hive, Java-Code, etc. Schema-less NoSQL Databanken “R” Fachabt. Entwickler Agil, flexibel (Java-)Code!!! SQL Schema Information Density Reporting DBMS (DWH) Data Mining DBMS (OLTP) ETL Erfassen Verarbeiten Auswerten RDBMS Sicher DBA DataCenter Big Data An die Datenbank denken: Daten, die bislang nicht betrachtet wurden Spatial, Graph, TEXT, XML, Stat. Funktionen und mehr ... Unstructured HDFS Hive, Java-Code, etc. Schema-less Oracle NoSQL DB Schema NoSQL MapReduce Big Data Connectors RDBMS Oracle RDBMS Oracle (OLTP) (DWH) Oracle R Enterprise Oracle BI EE Oracle Advanced Analytics ODI Information Density Erfassen Verarbeiten Auswerten Fachabt. Entwickler Agil, flexibel (Java-)Code!!! SQL RDBMS Sicher DBA DataCenter Oracle Big Data Platform Die Komponenten im einzelnen: Hadoop Hadoop: Was ist das? • "Shared Nothing" Compute Architecture • Open Source – Im Gegensatz zur Google-Implementierung • Batchorientiert • API gesteuert – Definition und Aufteilung der Teilaufgaben ist Sache des Entwicklers • Massive Parallelisierung in extrem großen Clustern • Automatische Behandlung eines Knoten-Ausfalls Hadoop Distributed Filesystem (HDFS) Client / Program Hält die "File Allocation Table" und "weiss", wo die Daten liegen NameNode Lesen / Schreiben DataNodes Halten die Daten Jeder Block ist dreimal vorhanden Hadoop MapReduce NameNode "Weiss, wo die Daten liegen" Aggregate berechnen Client / Program Aggregierte Ergebnisse JobTracker Verteilung von Teilaufgaben DataNodes Ausführung der Teilaufgaben MapReduce: Was ist das? MapReduce is a software framework introduced by Google to support distributed computing on large data sets on clusters of computers.[ • • • • Ein Hadoop-Cluster führt MapReduce-Programme aus Ein Reducer erhält Daten von einem Mapper Mapper und Reducer arbeiten massiv parallel Nahezu alle Programmiersprachen denkbar MapReduce: Ein Beispiel Input Reader The cloud is water vapor. But is water vapor useful? But it is! Map process the, 1 vapor, 1 cloud, 1 but, 1 is, 1 is, 1 water, 1 Map process water, 1 but, 1 vapor, 1 it, 1 useful, 1 is, 1 Partition, Compare, Redistribute the, 1 is, 1 cloud, 1 but, 1 is, 1 but, 1 is, 1 http://en.wikipedia.org/wiki/MapReduce Water,1 vapor, 1 vapor, 1 it, 1 water, 1 useful, 1 MapReduce: Ein Beispiel the, 1 is, 1 cloud, 1 but, 1 is, 1 but, 1 is, 1 Reducer the, 1 is, 3 cloud, 1 but, 2 Consolidate and Write water,1 vapor, 1 vapor, 1 it, 1 water, 1 useful, 1 Reducer water, 2 it, 1 vapor, 2 useful, 1 the, 1 is, 3 it, 1 cloud, 1 but, 2 useful, 1 water, 2 vapor, 2 Oracle Big Data Platform Die Komponenten im einzelnen: NoSQL DB NoSQL: Was ist das? • Not-only-SQL (2009) • Sammelbegriff für nichtrelationale Datenbanken, die … • • • • massiv parallelisierbar sind weitgehend ohne Datenmodell arbeiten die Datenkonsistenz nicht zwingend durchsetzen sehr entwicklerspezifisch sind • Derzeit noch keine Standardisierung vorhanden • Keine Abfragesprache (eben "NoSQL") • Massive Produktvielfalt (über 122 auf nosql-database.org) • Produkte nur schwer vergleichbar Oracle NoSQL Database • Key-Value Datenhaltung • Basiert auf BerkeleyDB JE HA • Konsistenz und Persistenz konfigurierbar • ACID-Transaktionen • Extrem skalier- und parallelisierbar • Hochverfügbarkeit per Replikation • Transparentes Loadbalancing • Einfache Installation und Einrichtung Oracle NoSQL Database Zugriffe per API (Java) Oracle NoSQL Database Ein Codebeispiel: Java : config = new KVStoreConfig("carstenstore", "sccloud032:5000"); store = KVStoreFactory.getStore(config); store.put( Key.createKey("EMP_7839_ENAME"), Value.createValue("KING".getBytes()) ); store.put( Key.fromByteArray(new String("EMP_7839_SAL").getBytes()), Value.createValue("5000".getBytes()) ); store.close(); : "Schreibekonsistenz" einer Transaktion Commit-Verhalten … • Festlegung auf Ebene der Operation oder allgemein • Commit-Policy • Default: NO_SYNC NoSQL DB im Rechenzentrum SQL Zugriff Strukturierte Analyse Application NoSQL DB Driver HDFS, Hadoop Externe Tabellen auf eine NoSQL DB • Grundlage: Preprocessing external tables • Preprocessor-Utility: nosql_stream • Zusammenspiel mit Formatter-Programm • Wandelt KV-Paare der NoSQL DB in Text um • Übergabe an SQL*Loader Driver der Datenbank Application NoSQL DB Driver Ext. Tabelle Datenbankserver nosql_stream Formatter-Programm Externe Tabellen auf eine NoSQL DB • Hier: Einfaches Beispiel (Zufallszahlen) • Alle Strukturen möglich SQL> select * from ( 2 select * from nosql_data order by 1 3 ) where rownum< 20; KEY VALUE ---------- ---------0 21 1 22 2 66 3 10 4 69 5 25 : : Oracle NoSQL DB External Tables Direkte Verbindung zwischen NoSQL DB und RDBMS Unstructured HDFS MapReduce Jobs Schema-less Oracle NoSQL DB Schema RDBMS Oracle Big Data Connectors ODI nosql_stream (OLTP)Formatter-Programm Information Density Acquire Organize Oracle R Enterprise Oracle RDBMS BI EE Oracle Oracle Advanced (DWH) Analytics Analyze Oracle Big Data Platform Big Data Connectors Oracle Big Data Connectos • Oracle Loader for Hadoop Daten aus einem Hadoop Cluster direkt in die Oracle-Datenbank laden • Oracle SQL Connector for HDFS Direkter Zugriff auf das HDFS für die Oracle-Datenbank • Oracle Data Integrator (ODI) Application Adapter for Hadoop Einbinden eines Hadoop Jobs in einen ODI-Prozess • Oracle R Connector for Hadoop (ORCH) Ausführen von R-Prozessen direkt im Hadoop Cluster per MapReduce http://www.oracle.com/technetwork/bdc/big-data-connectors/index.html Oracle Loader für Hadoop • Aufbereitung von Daten für das RDBMS Oracle: Partitionieren, sortieren, transformieren • Direkt aus dem Hadoop Cluster in die Oracle-Datenbank laden • Online mode: Lade per JDBC oder OCI • Offline mode: Erzeuge externe Tabellen (Data Pump Format) • Unterstützte Versionen: 10.2.0.5 oder 11.2.0.3 Oracle Loader for Hadoop Input / Output • Eingabeformate • Out-of-the-box vorhandene Implementierungen: • Avro Binary Files, Hive Tables, Delimited Textfiles • Eigene Implementierungen möglich • Ableitung aus der Hadoop-Klasse InputFormat • Ausgabeformate • Direct JDBC • External Tables SQL Loader Format • External Tables Data Pump Format Oracle Big Data Connectors Direkte Verbindung zwischen Hadoop und RDBMS Loader for Hadoop Unstructured HDFS MapReduce Jobs Schema-less Schema Oracle NoSQL DB RDBMS Oracle Big Data Connectors ODI Direct Connector (OLTP)for HDFS Information Density Acquire Organize Oracle R Enterprise Oracle RDBMS BI EE Oracle Oracle Advanced (DWH) Analytics Analyze Oracle Big Data Platform Big Data Appliance Big Data Appliance X3-2: Hardware •6, 12 oder 18 Knoten pro Rack – 1152 GB memory (Full Rack) – 288 cores (Full Rack) – 648 TB Storage-Rohkapazität (Full Rack) •40 Gb/s InfiniBand Fabric – Inter-rack Connectivity – Inter-node Connectivity •10 Gb/s Ethernet Connectivity – Data center connectivity Big Data Appliance: Software "Integrated Software" ist im Preis enthalten • • • • • • • Oracle Linux 5.8 mit UEL Kernel Oracle Java VM Cloudera CDH4 Cloudera Manager 4 Open Source Distribution of R NoSQL Database Community Edition 2.0 Big Data Appliance Enterprise Manager Plugin Support für die "Integrated Software": • Im Supportumfang enthalten (außer NoSQL DB CE) [email protected] http://tinyurl.com/apexcommunity http://sql-plsql-de.blogspot.com http://oracle-text-de.blogspot.com http://oracle-spatial.blogspot.com http://plsqlexecoscomm.sourceforge.net http://plsqlmailclient.sourceforge.net Twitter: @cczarski @oraclebudb