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 09:45 10:15 Begrüßung R – Zum Anfassen – Einführung Minikurs in der Sprache R Sprachmittel, Hilfen, GUIs zum Erstellen der Skripte Schnell und einfach ansprechende Grafiken erstellen 11:00 11:15 Pause Showcase Teil 1: Data Mining mit R Vergleich der Genauigkeit zweier Modelle 11:35 Oracle R Enterprise Einfache Anwendung, Performance 12:20 13:00 Showcase Teil 2: Data Mining mit R in der Oracle Datenbank Mittagspause Big Data & R Hadoop, Map Reduce & R R als Instrument für Prototyping für Big Data 13:30 2 Abschließende Fragen 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) 360° Ergeben ein vollständiges Bild + 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 User View Layer Advanced Analytics Referenzdaten Stammdaten Bewegungsdaten Ad-hoc Query & Reporting Standardisierte Berichte Stammdaten Referenzdaten Bewegungsdaten 7 Neutrale Sicht auf alle UnternehmensBereiche Flexibel für alle Endebenutzer zugänglich 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 Star Schema und 3 NF 8 User View Layer MiningStruktur Modelle Simulation Oracle R Enterprise Oracle Data Miner Advanced Analytics Würfel Oracle OLAP Ad-hoc Query & Reporting Relational Any SQL Standardisierte Berichte 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 TIOBE Programming Community Index for September 2013 10 Zur Einordnung R – universelles Sprachmittel - Flexible Sprache - Formulieren beliebiger Aufgabenstellungen - Geringe Einsatzhürden - mehr und flexiblere Analyse-Verfahren - individuelles Vorgehen - Plattform-unabhängig 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 11 Günstige Alternative - zu SAS, SPSS - zu manch teuren Analyse –Umgebungen - Unterstützung Trend zu mehr Advanced Analytics Potentielles Prototyping für Big Data - Zugriff auf HDFS - Map Reduce Jobs - Umgehung von Java-Programmierung - Lösung von Schnittstellen-Problemen Bisherige Art der Interaktion R <-> Datenbank read Flat Files extract / export Database export load SQL RODBC / RJDBC / ROracle Paradigm shift: R SQL R R script cron job R memory limitation – data size, call-by-value R single threaded Access latency, backup, recovery, security…? Ad hoc script execution 12 Collaborative Execution Model R Engine 3 2 1 Other R packages Oracle Database SQL R R Engine Oracle R Enterprise packages User tables Results Database Compute Engine User R Engine on desktop • Results • Scale to large datasets • • Leverage database SQL parallelism • Interactive display of graphical results and flow control as in standard R • • Leverage in-database statistical and data mining capabilities • Submit entire R scripts for execution by Oracle Database 13 Oracle R Enterprise packages R Engine(s) managed by Oracle DB R-SQL Transparency Framework intercepts R functions for scalable in-database execution Post processing of results Other R packages • 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 Collaborative execution with Analytic techniques not in-database R engine available in-database Oracle R Enterprise R workspace console Oracle statistics engine OBIEE, Web Services Function push-down – data transformation & statistics No changes to the user experience Development 14 Scale to large data sets Embed in operational systems Production Consumption DATA WAREHOUSE Oracle R zum Anfassen: Die Themen 09:30 09:45 10:15 Begrüßung R – Zum Anfassen – Einführung Minikurs in der Sprache R Sprachmittel, Hilfen, GUIs zum Erstellen der Skripte Schnell und einfach ansprechende Grafiken erstellen 11:00 11:15 Pause Showcase Teil 1: Data Mining mit R Vergleich der Genauigkeit zweier Modelle 11:35 Oracle R Enterprise Einfache Anwendung, Performance 12:20 13:00 Showcase Teil 2: Data Mining mit R in der Oracle Datenbank Mittagspause Big Data & R Hadoop, Map Reduce & R R als Instrument für Prototyping für Big Data 13:30 16 Abschließende Fragen 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 – – – 18 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 Mögliche Szenarien mit Oracle R-Enterprise File System File System R Engine Direkten Zugriff auf alle Tabellen in der Datenbank R Engine Auslagern der Analysen in die Datenbank Zurückholen der Ergebnisse Parallelisierung durch die Datenbank R Engine Engine RREngine R Engine Anlegen neuer Objekte in der Datenbank R Engine R-Analysen über SQL-Funktionen (Batch) File System 19 SQL Parallelisierung durch die Datenbank R Engine Engine RREngine R Engine 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 Memory Position 3 Memory Memory Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Oracle Database DB R Engine Other R packages Transparency Layer rq*Apply () interface Oracle R Enterprise packages User tables extproc Database Server 23 Memory Memory Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Oracle Database DB R Engine Other R packages Transparency Layer rq*Apply () interface Oracle R Enterprise packages User tables Memory extproc Database Server Position 1 wetter <-read.csv(file.choose()) ore.create(wetter,table="TB_WETTER") 24 class(df) names(df) objects() dim(df) Memory Memory Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Oracle Database DB R Engine Other R packages Transparency Layer rq*Apply () interface Oracle R Enterprise packages User tables Memory extproc Database Server Position 2 >x <- c(1,2,3) >mod <- ore.doEval ( function() + { + x <- c(10,20,30) + y <- x + }) >x >y mod 25 [1] 1 2 3 Error: object 'y' not found [1] 10 20 30 Memory Memory Client R Engine Other R packages Transparency Layer Oracle R Enterprise packages Oracle Database DB R Engine Other R packages Transparency Layer rq*Apply () interface Oracle R Enterprise packages User tables Memory extproc Database Server mod <- ore.doEval( function(param) { library(ORE) ore.connect(user = "RQ",sid = "ORCL",host = "localhost",password ore.sync() ore.attach("RQ") dat <- ore.pull(ONTIME_S) mod <- lm(ARRDELAY ~ DISTANCE + DEPDELAY, dat) mod}); 26 Position 3 = "RQ",port = 1521) mod_local <- ore.pull(mod) class(mod_local) summary(mod_local) DATA WAREHOUSE