R zieht ein in das Oracle Data Warehouse Alfred Schlaucher 1 Themen Business Intelligence und Advanced Analytics Vorhersage Algorithmen Oracle Data Miner Oracle R Enterprise 2 Arbeitsteilung Business Intelligence Advanced Analytics Data Mining Data Integration Layer Enterprise Information Layer Process neutral / 3 NF D a t a Wa re hous e 3 Oracle R Enterprise User View Layer Aus Merkmalen Wissen filtern Selbständig Im_Beruf_Seit Kunde_Seit Mehrfachkäufer Level_Ausbildung Alter Ruhestand_Seit ? Anzahl_Ehen Wohnregion Geschlecht Affinität_Videospiele Berufstätig Krank_Seit Sportlich_Aktiv 4 Anzahl Kinder Verheiratet Verheiratet Führerschein Einkommens_Gruppe Wohnsituation Bildung Online_Affinität Führerschein Predictive Analytics Angestellt Raucher Geschieden Weinpräferenz Übersicht Mining-Algorithmen und -Verfahren Problem Algorithmen Klassification Logistic Regression (GLM) Decision Trees Naïve Bayes Support Vector Machine Regression Multiple Regression (GLM) Support Vector Machine Anomaly Detection Attribute Importance One Class SVM Einteilung von Objekten in Gruppen (bekannte Klassen) anhand von gemeinsamen Merkmalen Vorhersage von Eigenschaften in Abhängigkeit von anderen Eigenschaften Association Rules Erkennen von Ausressern und Anomalien Minimum Description Length Finden relevanter Merkmale. Fokussierung auf aussagekräftige (MDL) Attribute Analyse von Beziehungen, Apriori Warenkorb-Analysen Clustering Hierarchical K-Means Hierarchical O-Cluster Feature Extraction Nonnegative Matrix Factorization F1 F2 F3 F4 5 Bedeutung + Anwendung Finden von gemeinsamen Merkmalen zur Bildung von neuen (unbekannten) Gruppen Textanalysen, Finden von immerwiederkehrenden Mustern Vorhersage Analyse-Schritte und Anforderungen Zeitaufwendige Analyseprozesse Daten sammeln Mehrere Interationen Daten identifizieren Workflows von immer wiederkehrenden Arbeitsschritten Ressourcen-intensive Datenanalysen 6 Daten analysieren Daten aufbereiten InDatabase – Analysen Oracle R Enterprise / Oracle Data Mining Analysen in der Datenbank Keine Datenbewegungen Kurze Analysezeiten und schnelleres Arbeiten Große Datenmengen Skalierbar R code und/oder SQL Built-in security 7 Beispiel: “Un-loyale Kunden” Mobiltelefon “Churner” vs. Loyale Kunden Monate Kundenverhältnis Source: Inspired from Data Mining Techniques: For Marketing, Sales, and Customer Relationship Management by Michael J. A. Berry, Gordon S. Linoff 8 Beispiel: “Un-loyale Kunden” Mobiltelefon “Churner” vs. Loyale Kunden Segment #3: IF CUST_MO > 7 AND INCOME < $175K, THEN Prediction = Cell Phone Churner, Confidence = 83%, Support = 6/39 Segment #1: IF CUST_MO > 14 AND INCOME < $90K, THEN Prediction = Cell Phone Churner, Confidence = 100%, Support = 8/39 Monate Kundenverhältnis Source: Inspired from Data Mining Techniques: For Marketing, Sales, and Customer Relationship Management by Michael J. A. Berry, Gordon S. Linoff 9 Oracle Data Miner 11g Release 2 GUI 10 Oracle Data Miner 11g Release 2 GUI “Churner” Modell in Abhängigkeit von Einkommen und Dauer des Kundenverhältnisses 11 R – Statistische Programmiersprache OPEN SOURCE Sprache und Umgebung STATISTISCHE BERECHNUNGEN und Graphik PCA 5 online returns users history STÄRKE liegt in der schnellen graphischen Aufbereitung (Plots) >5,300 statistische Packages sales Clustering 4 Groups Factor 1 28 LEICHT ERWEITERBAR durch Open Source Community 12 16 2 80 60 40 20 0 1 Factor 3 Daten-Visualisierung mit R http:// gallery.r-enthusiasts.com/ 13 Graphische Bediener-Oberflächen Auswahl bei den GUIs Bereiche: R Console Plot-Bereich Ergebnis-Bereich Messages Standard GUI / Rstudio / Rcommander/.../... 14 Warum nutzen immer mehr Anwender R Warum R Kann mehr Oft mehr Funktionen, als in klassischen Tools Ist schnell Neue Funktionen, sind oft in R als erstes implemtiert Point 15 Ist ansprechbar offene Kommunikation Die Entwickler der Funktionen sind oft per Mail direkt erreichbar “Schläft nicht” Weltweit wird mit R gearbeitet Ist günstiger Was kosten die übrigen Tools? Einfache Beispiele zur Darstellung der R-Sprachmimik > alter <- c(19,20,20,19,25,26,22,25,29) Vektor > geschl <- c(1,2,2,1,2,2,2,1,2) > geschl.faktor <- factor(geschl) Faktor > bsp.data.frame Data-Frame <- data.frame(alter,geschl.faktor) round(tapply(alter ,geschl,mean,na.rm=TRUE),0) Einfache statistische Funktion Durchschnittliches Alter pro Geschlecht 16 Klassisches Daten-Handling ohne Oracle R Enterprise Lokale Daten Datenbank R Engine z. B. ODBC z. B. CSV class(df) names(df) objects() dim(df)c Häufiges Datenbewegen, Hauptspeicherlimitierung im Client, lange Laufzeiten df <-read.csv(file.choose()) 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 RAM RAM File System R Engine Direkten Zugriff auf alle Tabellen in der Datenbank RAM RAM File System R Engine Parallelisierung durch die Datenbank Auslagern der Analysen in die Datenbank Zurückholen der Ergebnisse R Engine R Engine R Engine R Engine Anlegen neuer Objekte in der Datenbank RAM RAM R Engine Parallelisierung durch die Datenbank R-Analysen über SQL-Funktionen (Batch) File System SQL R Engine R Engine R Engine R Engine RAM 19 Oracle R Enterprise – Data Sources R user on desktop R Engine Andere Datenbanken Direkter Zugriff RODBC, DBI, etc Oracle R Enterprise Andere R packages Packages Direkter Zugriff Import / Load Data Push Pull Results SQL Transparent Layer Parallel Aufrufe Select ...Fro ..Table(....) begin User tables Oracle Datenbank Database Links Andere Datenbanken 20 File systems Create Function end External Tables File systems Bulk import R Engine R Engine Engine Oracle R R Enterprise Andere R Oracle R Enterprise Other R packages Packages Oracle R Enterprise Other R packages packages packages packages Oracle Transparency Layer Support ORE bietet eine “in-database execution” – Funktionalität als transparente Schicht an Was bedeutet transparent? – R Benutzter benötigen nur R Syntax – Benutzer sehen Datenbank-Objecke als spezielle R Objekte – Unterstützt werden fast alle R-Funktionen des Basis-R-Pakets – Unterstützt R's Statistik und Graphik-Pakete 21 Beispiele für den transparenten Zugriff library(ORE) Connect to a specific schema and database ore.connect("RQUSER","SID","HOST", "PASSWORD",1521) One connection active at a time ore.create( ONTIME_S, table = "NEW_ONTIME_S") Create a database table from a data.frame, ore.frame. Create a view from an ore.frame. ore.create( ONTIME_S, view = "NEW_ONTIME_S_VIEW") ore.drop(table="NEW_ONTIME_S") Drop table or view in database ore.drop(view="NEW_ONTIME_S_VIEW") t <- ore.get("ONTIME_S","RQUSER") Store R object in database as temporary object, returns handle to object. Data frame, matrix, and vector to table, list/model/others to serialized object ore.attach() v <- ore.push(c(1,2,3,4,5)) ore.sync() ore.sync("RQUSER") Synchronize ORE proxy objects in R with tables/views available in database, on a per schema basis ore.sync(table=c("ONTIME_S", "NARROW")) ore.sync("RQUSER", table=c("ONTIME_S", "NARROW")) ore.exists("ONTIME_S", "RQUSER") ore.exec("create table F2 as select * from ONTIME_S") 22 Returns TRUE if named table or view exists in schema Gezielte Steuerung von Scripten innerhalb der Datenbank with(ERSTIS,split(alter,geschl)) Lokale R-Engine auf PC ERSTIS Tabelle wird in den lokalen Speicher kopiert und lokal analysiert 23 Oracle Datenbank Lokale R-Engine auf PC Tabelle bleibt in der DB. Analyse findet im Speicher des DB-Servers statt Das Ergebnis wird zurückgeliefert ERSTIS R-Engineauf aufDB-Server DB-Server R-Engine R-Engine auf DB-Server DB-Server-Maschine mod <- ore.doEval( function(param) { library(ORE) ore.connect(user="RQUSER", password="RQUSER", sid="ORCL", host="192.168.1.16",port=1521) ore.sync() ore.attach() mod <- with(ERSTIS,split(alter,geschl)) }); DB-Server-Maschine Oracle Datenbank Gezieltes Ansteuern einer Verarbeitungsvariante (Beispiel Regressions Modell) mod <- ore.doEval( function(param) { library(ORE) ore.connect(user="RQUSER", password="RQUSER„, sid="ORCL", host="192.168.1.16",port=1521) ore.sync() ore.attach() mod <- ore.lm(lz.1 ~ zuf.inh.1,ERSTIS) mod }); mod_local <- ore.pull(mod) class(mod_local) summary(mod_local) 24 mod <- ore.doEval( function(param) { dat <- ore.pull(ONTIME_S) mod <- lm(ARRDELAY ~ DISTANCE + DEPDELAY, dat) mod }); mod_local <- ore.pull(mod) class(mod_local) summary(mod_local) Daten bleiben im Memory Der Oracle Datenbank Daten im Memory der R-Engine auf dem DB-Server Laufzeit: 3 Sekunden Laufzeit: 110 Sekunden Beispiele für Graphiken praktisch „direkt aus der Beis Datenbank“ 25 Beispiele für Graphiken praktisch „direkt aus dem Netz“ 26 Beispiel für Graphiken: Cluster-Analyse Baum - Darstellung 27 Cluster-Analyse library(cluster) 28 Integrierte R Umgebungen Oracle R Connector for Hadoop Client Host R Engine Oracle Big Data Oracle Exadata Appliance R Engine ORE Native R MapReduce ORHC ORHC Hadoop Cluster Software MapReduce Nodes Native R HDFS Zugriff Mehr Produktivität HDFS 29 R Engine ORE Big Data Connectors und Oracle R Enterprise R Environment R-Package R-Package Oracle R Connector for Hadoop Oracle R Enterprise (Advanced Analytics) Oracle Server-Machine HDFS Cluster-Machines Oracle 11.2 hdfs_stream Oracle Direct Connector for HDFS HDFS External Table Preprocessor: hdfs_stream Hive Table CSV + /n Target Table R Engine R Engine R Engine R Engine RAM CSV Offline Mode Data pump direct path Oracle Loader for Hadoop LoaderMap MapReduce Job Framework 30 Parallel Execution Online Mode Partitioned + sorted convential path OCI JDBC Kontakt und mehr Informationen Oracle Data Warehouse Community Mitglied werden Viele kostenlose Seminare und Events Download – Server: www.ORACLEdwh.de Kontakt über [email protected] Nächste deutschsprachige Oracle DWH Konferenz: 19. + 20. März 2013 Kassel 31 32