Oracle R zum Anfassen Alfred Schlaucher Oracle Deutschland (Data Warehouse) Oliver Bracht Andreas Prawitt Oracle Partner eoda
Oracle R zum Anfassen: Die Themen 09:30 Begrüßung 09:45 R Zum Anfassen Einführung 10:15 Minikurs in der Sprache R Sprachmittel, Hilfen, GUIs zum Erstellen der Skripte Schnell und einfach ansprechende Grafiken erstellen 11:00 Pause 11:15 Showcase Teil 1: Data Mining mit R Vergleich der Genauigkeit zweier Modelle 11:35 Oracle R Enterprise Einfache Anwendung, Performance Showcase Teil 2: Data Mining mit R in der Oracle Datenbank 12:20 Mittagspause 13:00 Big Data & R Hadoop, Map Reduce & R R als Instrument für Prototyping für Big Data 13:30 Abschließende Fragen 2
Oracle und R Oracle: Schwergewicht im Datenbank- und Data Warehouse-Segment Tradition im Umgang mit statistischen Analyse / Data Mining Symbiose Open Source R mit Oracle 3
Potentielle Informationsschätze Alle Kundenkontaktpunkte Alle Geschäftsbeziehungen zu dem Kunden Alle historischen Daten Alle öffentlich verfügbaren Kundendaten Plus soziographische Informationen (Referenzdaten) Ergeben ein vollständiges Bild 360 + neue Geschäftsoptionen 5
Informationsdrehscheibe für alle (!) Sachgebiete Harmonisieren Einheitliche verbundene Stammdaten Einheitliches Verständnis über Sachverhalte Standardisierte Kennzahlen Modelle Simulation Data Integration Layer Enterprise Information Layer Referenzdaten Stammdaten Bewegungsdaten User View Layer Advanced Analytics Ad-hoc Query & Reporting Standardisierte Berichte Stammdaten Referenzdaten Bewegungsdaten Neutrale Sicht auf alle Unternehmens- Bereiche Flexibel für alle Endebenutzer zugänglich 7
Analyseverfahren schon im Data Warehouse vorbereiten Alle Modellformen in einem System Umfangreichste R-Unterstützung Integriertes Data Mining Multidimensionale Speicherung als Add On zum Star User View Layer Mining- Struktur Würfel Relational Oracle R Enterprise Oracle Data Miner Oracle OLAP Any SQL Advanced Analytics Ad-hoc Query & Reporting Standardisierte Berichte Modelle Simulation Star Schema und 3 NF 8
R historisch Freie Programmiersprache für statistisches Rechnen und statistische Grafiken Anlehnung an S und Scheme Ursprünglich 1992 von Ross Ihaka und Robert Gentleman an der Universität Auckland entwickelt Seit 1995 GNU Projekt (freie Software) http://www.r-project.org/ Über Pakete-Konzept beliebig erweiterbar (> 6000) Pakete werden verwaltet und verbreitet über Comprehensive R Archive Network (CRAN) Einsatz an den Universitäten, zunehmend auch im kommerziellen Bereich Als Ersatz für SAS und SPSS geeignet 9
10 TIOBE Programming Community Index for September 2013
Zur Einordnung R universelles Sprachmittel - Flexible Sprache - Formulieren beliebiger Aufgabenstellungen - Geringe Einsatzhürden - mehr und flexiblere Analyse-Verfahren - individuelles Vorgehen - Plattform-unabhängig Günstige Alternative - zu SAS, SPSS - zu manch teuren Analyse Umgebungen - Unterstützung Trend zu mehr Advanced Analytics Zusätzliches Arbeitsumfeld für Oracle - Leichte Bereitstellung von Oracle-DB-Daten - Zugang für nicht SQL- affine MA - Erweiterung der Einsatzmöglichkeiten von R durch R - Enterprise Potentielles Prototyping für Big Data - Zugriff auf HDFS - Map Reduce Jobs - Umgehung von Java-Programmierung - Lösung von Schnittstellen-Problemen 11
Bisherige Art der Interaktion R <-> Datenbank read Flat Files extract / export Database export load SQL RODBC / RJDBC / ROracle R script cron job Paradigm shift: R SQL R R memory limitation data size, call-by-value R single threaded Access latency, backup, recovery, security? Ad hoc script execution 12
Collaborative Execution Model 1 2 3 R Engine Other R packages Oracle R Enterprise packages SQL Results Oracle Database User tables R Results R Engine Other R packages Oracle R Enterprise packages User R Engine on desktop R-SQL Transparency Framework intercepts R functions for scalable in-database execution Interactive display of graphical results and flow control as in standard R Submit entire R scripts for execution by Oracle Database Post processing of results Database Compute Engine Scale to large datasets Leverage database SQL parallelism Leverage in-database statistical and data mining capabilities Collaborative execution with in-database R engine R Engine(s) managed by Oracle DB Database manages multiple R engines for database-managed parallelism Efficient parallel data transfer to spawned R engines to emulate map-reduce style algorithms and applications Enables lights-out execution of R scripts Analytic techniques not available in-database 13
Oracle R Enterprise R workspace console Oracle statistics engine Function push-down data transformation & statistics OBIEE, Web Services No changes to the user experience Scale to large data sets Embed in operational systems Development Production Consumption 14
DATA WAREHOUSE
Oracle R zum Anfassen: Die Themen 09:30 Begrüßung 09:45 R Zum Anfassen Einführung 10:15 Minikurs in der Sprache R Sprachmittel, Hilfen, GUIs zum Erstellen der Skripte Schnell und einfach ansprechende Grafiken erstellen 11:00 Pause 11:15 Showcase Teil 1: Data Mining mit R Vergleich der Genauigkeit zweier Modelle 11:35 Oracle R Enterprise Einfache Anwendung, Performance Showcase Teil 2: Data Mining mit R in der Oracle Datenbank 12:20 Mittagspause 13:00 Big Data & R Hadoop, Map Reduce & R R als Instrument für Prototyping für Big Data 13:30 Abschließende Fragen 16
Oracle R Enterprise Oracle Advanced Analytics - Oracle R Enterprise and Oracle Data Mining R code und/oder SQL Modelle laufen In-Database Große Datenmengen Built-in security 17
Oracle R-Angebote Oracle R Distribution Free download, pre-installed on Oracle Big Data Appliance, bundled with Oracle Linux Enterprise support for customers of Oracle R Enterprise, Big Data Appliance, and Oracle Linux Contribute bug fixes and enhancements to open source R ROracle Open source Oracle database interface driver for R based on OCI Maintainer is Oracle rebuilt from the ground up Many bug fixes and optimizations Oracle R Enterprise Transparent access to database-resident data from R Embedded R script execution through database managed R engines Statistics engine Oracle R Connector for Hadoop R interface to Oracle Hadoop Cluster on BDA Access and manipulate data in HDFS, database, and file system Write MapReduce functions using R and execute through natural R interface 18
Mögliche Szenarien mit Oracle R-Enterprise File System R Engine Direkten Zugriff auf alle Tabellen in der Datenbank File System R Engine Auslagern der Analysen in die Datenbank Zurückholen der Ergebnisse Anlegen neuer Objekte in der Datenbank Parallelisierung durch die Datenbank R Engine R R Engine Engine R Engine R Engine R-Analysen über SQL-Funktionen (Batch) File System SQL Parallelisierung durch die Datenbank R Engine R R Engine Engine R Engine 19
Transparency Layer Support ORE bietet eine in-database execution Funktionalität als transparente Schicht an What s transparent about it? R Benutzte benötigen nur R Syntax Benutzer sehen Datenbank-Objekte as spezielle R Objekte Unterstützt weden fast alle R-Funktionen des Basis-Pakets Unterstützt R's Statistik und Graphik-Pakete Funktional vergleichbar mit SAS DATA STEP, läuft allerdings in- Datenbank! 21
Position 1 Position 2 Position 3 Memory Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Memory Oracle Database rq*apply () interface extproc User tables Memory DB R Engine Transparency Layer Oracle R Enterprise packages Other R packages Database Server 23
Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Memory Position 1 Memory Oracle Database rq*apply () interface extproc User tables Memory DB R Engine Transparency Layer Oracle R Enterprise packages Other R packages Database Server wetter <-read.csv(file.choose()) ore.create(wetter,table="tb_wetter") class(df) names(df) objects() dim(df) 24
Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Memory Memory Oracle Database rq*apply () interface extproc User tables Memory DB R Engine Transparency Layer Oracle R Enterprise packages Other R packages Database Server >x <- c(1,2,3) >mod <- ore.doeval ( function() + { + x <- c(10,20,30) + y <- x + }) >x >y mod Position 2 [1] 1 2 3 Error: object 'y' not found [1] 10 20 30 25
Memory Memory Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Memory Oracle Database rq*apply () interface extproc mod <- ore.doeval( function(param) { library(ore) ore.connect(user = "RQ",sid = "ORCL",host = "localhost",password = "RQ",port = 1521) ore.sync() ore.attach("rq") dat <- ore.pull(ontime_s) mod <- lm(arrdelay ~ DISTANCE + DEPDELAY, dat) mod}); User tables DB R Engine Transparency Layer Oracle R Enterprise packages Other R packages Database Server Position 3 mod_local <- ore.pull(mod) class(mod_local) summary(mod_local) 26
DATA WAREHOUSE