320 likes | 484 Views
R zieht ein in das Oracle Data Warehouse. Alfred Schlaucher. Themen. Business Intelligence und Advanced Analytics Vorhersage Algorithmen Oracle Data Miner Oracle R Enterprise . Arbeitsteilung. Business Intelligence. Advanced Analytics. Data Mining. Oracle R Enterprise.
E N D
R ziehtein in das Oracle Data Warehouse Alfred Schlaucher
Themen Business Intelligence und Advanced Analytics VorhersageAlgorithmen Oracle Data Miner Oracle R Enterprise
Arbeitsteilung Business Intelligence Advanced Analytics Data Mining Oracle R Enterprise Data Integration Layer User View Layer Enterprise Information Layer Process neutral / 3 NF Data Warehouse
Aus Merkmalen Wissen filtern Selbständig Im_Beruf_Seit Angestellt Raucher Geschieden Alter Weinpräferenz Ruhestand_Seit Predictive Analytics ? Kunde_Seit Anzahl Kinder Mehrfachkäufer Verheiratet Level_Ausbildung Verheiratet Anzahl_Ehen Führerschein Wohnregion Einkommens_Gruppe Geschlecht Wohnsituation Affinität_Videospiele Bildung Berufstätig Online_Affinität Krank_Seit Führerschein Sportlich_Aktiv
F1 F2 F3 F4 Übersicht Mining-Algorithmen und -Verfahren Problem Algorithmen Bedeutung + Anwendung Klassification Einteilung von Objekten in Gruppen(bekannteKlassen) anhand von gemeinsamenMerkmalen Logistic Regression (GLM) Decision Trees Naïve Bayes Support Vector Machine Vorhersage von Eigenschaftenin Abhängigkeit von anderenEigenschaften Multiple Regression (GLM) Support Vector Machine Regression Anomaly Detection Erkennen von Ausressern und Anomalien One Class SVM FindenrelevanterMerkmale.Fokussierung auf aussagekräftigeAttribute Attribute Importance Minimum Description Length (MDL) Association Rules Analyse von Beziehungen, Warenkorb-Analysen Apriori Clustering Finden von gemeinsamenMerkmalenzurBildung von neuen (unbekannten)Gruppen Hierarchical K-Means Hierarchical O-Cluster Textanalysen, Finden von immerwiederkehrendenMustern Feature Extraction Nonnegative Matrix Factorization
VorhersageAnalyse-Schritte und Anforderungen Datensammeln ZeitaufwendigeAnalyseprozesse MehrereInterationen Workflows von immerwiederkehrendenArbeitsschritten Ressourcen-intensive Datenanalysen Daten identifizieren Datenanalysieren Datenaufbereiten
InDatabase – AnalysenOracle R Enterprise / Oracle Data Mining Analysen in derDatenbank KeineDatenbewegungen KurzeAnalysezeiten und schnelleresArbeiten GroßeDatenmengen Skalierbar R code und/oderSQL Built-in security • Schneller • Sicher • Skalierbar
Mobiltelefon “Churner” vs.LoyaleKunden Einkommen MonateKundenverhältnis Beispiel: “Un-loyaleKunden” Source: Inspired from Data Mining Techniques: For Marketing, Sales, and Customer Relationship Management by Michael J. A. Berry, Gordon S. Linoff
Segment #3: IF CUST_MO > 7 AND INCOME < $175K, THEN Prediction = Cell Phone Churner, Confidence = 83%, Support = 6/39 Einkommen Segment #1: IF CUST_MO > 14 AND INCOME < $90K, THEN Prediction = Cell Phone Churner, Confidence = 100%, Support = 8/39 MonateKundenverhältnis Beispiel: “Un-loyaleKunden” Mobiltelefon “Churner” vs.LoyaleKunden Source: Inspired from Data Mining Techniques: For Marketing, Sales, and Customer Relationship Management by Michael J. A. Berry, Gordon S. Linoff
Oracle Data Miner 11g Release 2 GUI “Churner” Modell in Abhängigkeit von Einkommen und Dauer des Kundenverhältnisses
R – StatistischeProgrammiersprache PCA 5 online returns users OPEN SOURCE Sprache und Umgebung STATISTISCHE BERECHNUNGEN und Graphik STÄRKE liegt in derschnellengraphischenAufbereitung (Plots) >5,300statistische Packages LEICHT ERWEITERBAR durch Open Source Community history sales Clustering 4 Groups Factor 1 Factor 3 28 16 2 1 80 60 40 20 0
Daten-Visualisierungmit R http://gallery.r-enthusiasts.com/
Graphische Bediener-Oberflächen Auswahl bei den GUIs Bereiche: R Console Plot-Bereich Ergebnis-Bereich Messages Standard GUI / Rstudio /Rcommander/.../...
WarumnutzenimmermehrAnwender R Oft mehrFunktionen, als in klassischen Tools Warum R Kannmehr NeueFunktionen, sind oft in R alserstesimplemtiert Istschnell Point Die EntwicklerderFunktionensind oft per Mail direkterreichbar Istansprechbar - offeneKommunikation Weltweitwirdmit Rgearbeitet “Schläftnicht” Was kosten die übrigen Tools? Istgünstiger
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(alter,geschl.faktor) Data-Frame Einfache statistische Funktion round(tapply(alter ,geschl,mean,na.rm=TRUE),0) Durchschnittliches Alter pro Geschlecht
Klassisches Daten-Handling ohne Oracle R Enterprise LokaleDaten Datenbank R Engine z. B. ODBC z. B. CSV class(df) names(df) objects() dim(df)c df <-read.csv(file.choose()) Häufiges Datenbewegen, Hauptspeicherlimitierung im Client, lange Laufzeiten
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
Mögliche Szenarien mit Oracle R-Enterprise RAM RAM RAM RAM RAM RAM RAM File System Direkten Zugriff auf alle Tabellen in der Datenbank R Engine Parallelisierung durch die Datenbank Auslagern der Analysen in die DatenbankZurückholen der Ergebnisse Anlegen neuer Objekte in der Datenbank File System R Engine Parallelisierung durch die Datenbank R-Analysen über SQL-Funktionen (Batch) R Engine R Engine R Engine R Engine R Engine R Engine R Engine R Engine R Engine File System SQL
Oracle R Enterprise – Data Sources R user on desktop R Engine Oracle R Enterprise packages Andere R Packages DirekterZugriff DirekterZugriff RODBC,DBI, etc AndereDatenbanken Import / Load Data File systems R Engine R Engine R Engine PushPull Oracle R Enterprise packages Oracle R Enterprise packages Oracle R Enterprise packages Andere R Packages Other R packages Other R packages Results SQL Parallel Aufrufe Transparent Layer Select ...Fro ..Table(....)beginCreate Functionend User tables Oracle Datenbank Bulk import Database Links External Tables AndereDatenbanken File systems
Oracle Transparency Layer Support • ORE bieteteine “in-database execution” – FunktionalitätalstransparenteSchicht an • Was bedeutettransparent? • R Benutzterbenötigennur R Syntax • BenutzersehenDatenbank-Objeckealsspezielle R Objekte • Unterstütztwerdenfast alle R-Funktionendes Basis-R-Pakets • Unterstützt R's Statistik und Graphik-Pakete
Beispiele für den transparenten Zugriff Connect to a specific schema and database One connection active at a time Create a database table from a data.frame, ore.frame. Create a view from an ore.frame. library(ORE) ore.connect("RQUSER","SID","HOST", "PASSWORD",1521) ore.create( ONTIME_S, table = "NEW_ONTIME_S") ore.create( ONTIME_S, view = "NEW_ONTIME_S_VIEW") ore.drop(table="NEW_ONTIME_S") ore.drop(view="NEW_ONTIME_S_VIEW") t <- ore.get("ONTIME_S","RQUSER") ore.attach() v <- ore.push(c(1,2,3,4,5)) ore.sync() ore.sync("RQUSER") 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") Drop table or view in database 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 Synchronize ORE proxy objects in R with tables/views available in database, on a per schema basis Returns TRUE if named table or view exists in schema
Gezielte Steuerung von Scripten innerhalb der Datenbank Oracle Datenbank Lokale R-Engine auf PC Lokale R-Engine auf PC with(ERSTIS,split(alter,geschl)) DB-Server-Maschine ERSTIS Tabelle wird in den lokalen Speicher kopiert und lokal analysiert 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)) }); Oracle Datenbank DB-Server-Maschine ERSTIS Tabelle bleibt in der DB. Analyse findet im Speicher des DB-Servers statt Das Ergebnis wird zurückgeliefert R-Engine auf DB-Server R-Engine auf DB-Server R-Engine auf DB-Server
Gezieltes Ansteuern einer Verarbeitungsvariante(Beispiel Regressions Modell) 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) 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) Daten im Memory der R-Engine auf dem DB-Server Daten bleiben im Memory Der Oracle Datenbank Laufzeit: 3 Sekunden Laufzeit: 110 Sekunden
Beis Beispiele für Graphiken praktisch „direkt aus der Datenbank“
Beispiele für Graphiken praktisch „direkt aus dem Netz“
Beispiel für Graphiken: Cluster-Analyse Baum - Darstellung
Cluster-Analyse library(cluster)
Integrierte R UmgebungenOracle R Connector for Hadoop Client Host Oracle Big DataAppliance Oracle Exadata R Engine R Engine Native R MapReduce Native R HDFS Zugriff MehrProduktivität ORE ORHC ORHC HadoopClusterSoftware MapReduceNodesHDFS R Engine ORE
Big Data Connectors und Oracle R Enterprise R Environment R-Package R-Package Oracle R Enterprise (Advanced Analytics) Oracle R Connector for Hadoop RAM Oracle Server-Machine HDFS Cluster-Machines Oracle 11.2 hdfs_stream ExternalTable Oracle Direct Connector for HDFS HDFS Preprocessor: hdfs_stream Hive Table CSV + / n Data pump Offline Mode CSV JDBC OCI convential path direct path R Engine R Engine R Engine R Engine Parallel Execution Oracle Loader for Hadoop Online Mode LoaderMap Partitioned + sorted MapReduce Job Framework Target Table
Kontakt und mehr Informationen Oracle Data Warehouse Community Mitglied werdenViele kostenlose Seminare und Events Download – Server: www.ORACLEdwh.de Kontakt über Alfred.Schlaucher@oracle.com Nächste deutschsprachige Oracle DWH Konferenz: 19. + 20. März 2013 Kassel