Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Oracle Data Warehouse Mit Big Data neue Horizonte für das Data Warehouse ermöglichen Alfred Schlaucher, Detlef Schroeder DATA WAREHOUSE.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Oracle Data Warehouse Mit Big Data neue Horizonte für das Data Warehouse ermöglichen Alfred Schlaucher, Detlef Schroeder DATA WAREHOUSE."—  Präsentation transkript:

1 1 Oracle Data Warehouse Mit Big Data neue Horizonte für das Data Warehouse ermöglichen Alfred Schlaucher, Detlef Schroeder DATA WAREHOUSE

2 2 Big Data Buzz Word oder eine neue Dimension und Möglichkeiten Oracles Technologie zu Speichern von unstrukturierten und teilstrukturierten Massendaten Cloudera Framwork Connectors in die neue Welt Oracle Loader for Hadoop und HDFS Big Data Appliance Mit Oracle R Enterprise neue Analyse-Horizonte entdecken Big Data Analysen mit Endeca Themen

3 3 Anforderungen Warum R Die R-Entwicklungsumgebung Oracle R- Enterprise Der transparente Tabellen-Zugriff Statistische Analysen mit R in der Datenbank Visualisierung von Ergebnissen (Plotting) Visualisierung von Ergebnissen (OBIEE) Einbinden in umfangreiche Analyse-Szenarien Themen

4 4 Geringere Latenzen bei der Datenbereitstellung Linerare Skalierung Vorhersehbare Aufwände und Durchsatz Anforderungen: Schnellere und elegantere Analyse-Abläufe Ressourcen

5 5 Weniger Datenbewegung Flexiblere Tools und flexibler Datenaustausch Mehr Gesamtunternehmens- daten in der Analyse Anforderungen: Effizienterer und leichterer Umgang mit Daten und Informationen Leichte Zugänge Mehr Informa- tionen Ressourcen

6 6 Versteckte Beziehungen entdecken R Statistische Programmiersprache users sales history returns online PCA 5 Factor 3Factor 1Clustering 4 Groups

7 7 Analysieren integrierter Data Interaktives Arbeiten, Erstellen von Ergebnissen und Weiterverarbeiten Ad Hoc Analysieren Anforderungen: Flexibles Arbeiten User Facts Mehr Möglich- keiten Ressourcen Leichte Zugänge Mehr Informa- tionen

8 8 Warum nutzen immer mehr Anwender R Warum R Ist schnell Ist ansprechbar - offene Kommunikation Schläft nicht Point Kann mehr Ist günstiger Was kosten die übrigen Tools? Oft mehr Funktionen, als in klassischen Tools Neue Funktionen, sind oft in R als erstes implemtiert Die Entwickler der Funktionen sind oft per Mail direkt erreichbar Weltweit wird mit R gearbeitet

9 9 Warum sollte man sich für R interessieren Gehört zu den neuen aufkommenden Trends – Next big thing in Avanced Analytics – Moderne statistische Programmiersprache – Ausbildungsinstitute und Universitäten nutzen R für die Ausbildung (Sie ersetzen traditionelle Tools) – Advanced Analytics ist zunehmend kritisches Unterscheidungsmerkmal im DWH Technologie Stack R wird durch Oracle R Enterprise skalierbar Kostengünstige Alternative zu SAS

10 10 Auswahl bei den GUIs Bereiche: – R Console Plot-Bereich Ergebnis-Bereich Messages Standard GUI / Rstudio / Rcommander/.../... Graphische Bediener-Oberflächen Live

11 11 Daten und Objekte

12 12 > alter <- c(19,20,20,19,25,26,22,25,29) > geschl <- c(1,2,2,1,2,2,2,1,2) > geschl.faktor <- factor(geschl) Vektor Faktor > bsp.data.frame <- data.frame(alter,geschl.faktor) Data-Frame round(tapply(alter,geschl,mean,na.rm=TRUE),0) Einfache Beispiele zur Darstellung der Sprachmimik Live

13 13 Daten-Handling R Engine Lokale Daten Datenbank df <-read.csv(file.choose()) class(df) names(df) objects() dim(df) Live

14 14 Daten-Visualisierung mit R gallery.r-enthusiasts.com/ Live

15 15 R code und/oder SQL Modelle laufen In-Database Große Datenmengen Built-in security Oracle R Enterprise Oracle Advanced Analytics - Oracle R Enterprise and Oracle Data Mining

16 16 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

17 17 RAM Mögliche Szenarien mit Oracle R-Enterprise 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 R Engine Parallelisierung durch die Datenbank File System R Engine R-Analysen über SQL-Funktionen (Batch) R Engine Parallelisierung durch die Datenbank File System SQL

18 18 Oracle R Enterprise – Data Sources User tables Oracle Datenbank Bulk import File systems Database Links SQLResults R user on desktop External Tables File systems Direkter Zugriff Andere Datenbanken Direkter Zugriff RODBC, DBI, etc R Engine Andere R Packages Import / Load Data R Engine Other R packages Oracle R Enterprise packages R Engine Other R packages Oracle R Enterprise packages R Engine Andere R Packages Oracle R Enterprise packages Andere Datenbanken Oracle R Enterprise packages Push Pull Select...Fro..Table(....) begin Create Function end Parallel Aufrufe Transparent Layer

19 19 Transparency Layer Support ORE bietet eine in-database execution – Funktionalität als transparente Schicht an Whats transparent about it? – R Benutzte benötigen nur R Syntax – Benutzer sehen Datenbank-Objecke 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!

20 20 ORE Packages PackageDescription ORETop Level Package for Oracle R Enterprise OREbaseCorresponds to Rs base package OREstatCorresponds to Rs stat package OREgraphicsCorresponds to Rs graphics package OREedaOREs exploratory data analysis package containing SAS PROC- equivalent functionality ORExmlOREs package supporting XML translation between R and Oracle Database - internal ORHCOracle R Hadoop Connector ©2012 Oracle – All Rights Reserved

21 21 Funktionen und Methoden

22 22 Funktions- und Methodenübersicht Mathematische Funktionen: abs, sign, sqrt, ceiling, floor, trunc, cummax, cummin, cumprod, cumsum, log, log10, log2, log1p, acos, acosh, asin, asinh, atan, atanh, exp, expm1, cos, cosh, sin, sinh, tan, tanh, gamma, lgamma, digamma, trigamma, round, signif, pmin, pmax, zapsmall Basis Statistik: mean, summary, min, max, sum, any, all, median, range, IQR, fivenum, mad, quantile, sd, var, table, rowSums, colSums, rowMeans, colMeans Rechnen:+, -, *, /, ^, %, %/% Vergleichen: ==, >, = Logik: &, |, xor Mengenbezogene Abgleiche: unique, %in% Zuweisungen: Live

23 23 Funktions- und Methodenübersicht Strings: tolower, toupper, casefold, toString, chatr, sub, gsub, substr, substring, paste, nchar Data Frames Kombinieren / Ergänzen: cbind, rbind, merge Combine vectors: append Vector creation: ifelse Subset: [, [[, $, head, tail, window, subset, Filter, na.omit, na.exclude, complete.cases Daten umgruppieren: split, unlist Datenverwalten: eval, with, within, transform Apply Varianten: tapply, aggregate, by Regression: ore.lm() - a variant of lm() Werte-Checks: is.na, is.finite, is.infinite, is.nan Metadaten Funktionen: attributes, nrow, NROW, ncol, NCOL, nlevels, names, row, col, dimnames, dim, length, row.names, col.names, levels, reorder Live

24 24 Funktions- und Methodenübersicht Graphik: hist, boxplot, plot, smoothScatter Garbage collection: gc (Löschen von temp. tabellen) Konvertierungen: as.ore.{character, factor, integer, logical, numeric, vector} Test Funktionen: is.ore.{character, factor, integer, logical, numeric, vector} Save: ore.push (table is automatically refreshed in R memory) Hypothesen-Test: wilcox.test, ks.test, var.test, binom.test, chisq.test, t.test, bartlett.test Bessel Funktionen: Bessel(I,J,K,Y) Gamma Funktionen: gamma, lgamma, digamma, trigamma (part of mathematical functions group) Verteilungen: Density, cumulative distribution, and quantile functions for standard distributions Matrix: %*% (matrix multiplication), crossprod (matrix cross-product), tcrossprod (matrix cross-product A times transpose of B) Live

25 25 Arbeiten mit Tabellen in der Datenbank

26 26 Beispiele für den transparenten Zugriff 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") 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. 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 Live

27 27 Zugriff auf Datenbank-Tabellen ore.connect(user = "RU",sid = "ORCL",host = "localhost",password = "RU",port = 1521) ore.sync() ore.ls() class(GESAMTSICHT)

28 28 Orientierung über die Struktur der Tabellen dim(GESAMTSICHT) names(GESAMTSICHT)

29 29 Orientierung über die Struktur der Tabellen str(GESAMTSICHT)

30 30 Ausschnitt der Daten anzeigen lassen head(GESAMTSICHT)

31 31 Durchschnittliche Bewertung Berechnen tapply(NUTZ_NR,PRODUKT_NR,mean)

32 32 Einfache visuelle Darstellung Welche Produkte zeigen auffälliges Verhalten? plot(round(tapply(NUTZ_NR,PRODUKT_NR,mean),2),type="h",xlab = "Produktnummern", ylab ="Bewertungsindex") Produkte mit schlechten Bewertungen

33 33 Histogram hist(round(tapply(NUTZ_NR,PRODUKT_NR,mean),2),ylab = "Produktnummern", xlab ="Bewertungsindex") Die meisten Produkte haben gute Bewertungen im Bereich von 4 - 6

34 34 Neue Datenstrukturen erstellen Durchschnittliche Bewertungen pro Produkt bew_prod <- aggregate(GESAMTSICHT$NUTZ_NR, by=GESAMTSICHT$PRODUKT_NR, FUN = mean) PRODUKT_NR <- c(bew_prod$Group.1) BEWERTUNG <- c(bew_prod$x) df_bew_prod <- data.frame(PRODUKT_NR,BEWERTUNG) Spaltennamen ungeschickt Neue Spaltennamen erstellt

35 35 Neue Datenbanktabelle anlegen ore.create(df_bew_prod,table = "PRODUKT_BEWERTUNG") CREATE table UMSATZ_2012_PRO_ARTIKEL as SELECT a.artikel_id PRODUKT_NR,sum(U.umsatz) UMSATZ_2012 FROM f_Umsatz_range U, D_zeit z, D_artikel a WHERE U.zeit_id = z.zeit_id AND U.artikel_id = a.artikel_id and z.jahr_nummer = 2012 GROUP by a.artikel_id ; produkt_umsatz_bewertung <- merge(PRODUKT_BEWERTUNG,UMSATZ_2012_PRO_ARTIKEL, by="PRODUKT_NR",all=FALSE) Das Objekt produkt_umsatz_bewertung ist neu erstellt worden und könnte auch in die Datenbank gebracht werden. In der Datenbank erstellt Über die R-Engine erstellt

36 36 Neue Strukturen aufbauen Gibt es eine Korrelation zwischen Bewertung und Umsatz? > names(produkt_umsatz_bewertung) [1] "PRODUKT_NR" "BEWERTUNG" "UMSATZ_2012 > attach(produkt_umsatz_bewertung) > df_bewertung_umsatz <- data.frame(BEWERTUNG,UMSATZ_2012) Die neue Tabelle enthält die Spalten Umsatz und Bewertung. Gibt es dazwischen einen Zusammenhang.

37 37 Neue Strukturen aufbauen Gibt es eine Korrelation zwischen Bewertung und Umsatz create table Umsatz_2012_pro_Artikel as select distinct Produkt_nr, umsatz_2012 from gesamtsicht; Umsatz pro Produkt in

38 38

39 39 intersect(colnames(GESAMTSICHT), colnames(UMSATZ_2012_PRO_ARTIKEL))

40 40 Invoke in-database aggregation function Client R Engine Other R packages Oracle R package R user on desktop Oracle Database User tables Transparency Layer aggdata <- aggregate(ONTIME_S$DEST, by = list(ONTIME_S$DEST), FUN = length) class(aggdata) head(aggdata) Source data is an ore.frame ONTIME_S, which resides in Oracle Database The aggregate() function has been overloaded to accept ORE frames aggregate() transparently switches between code that works with standard R data.frames and ore.frames Returns an ore.frame In-db stats ©2012 Oracle – All Rights Reserved select DEST, count(*) from ONTIME_S group by DEST

41 41 ks.test ks.test – tests for the equality of continuous (numeric) vector probability distributions Compares… – a sample with a reference probability distribution (one-sample KS test) – Two samples (two-sample KS test) x <- ore.push(rnorm(500)) y <- ore.push(runif(300)) # Do x and y come from the same distribution? ks.test(x, x) ks.test(x, y) x <- ONTIME_S$ARRDELAY y <- ONTIME_S$DEPDELAY # Do x and y come from the same distribution? ks.test(x, y)

42 42 R-Engine auf DB-Server Gezielte Steuerung von Scripten innerhalb der Datenbank mod <- ore.doEval( function(param) { library(ORE) ore.connect(user="RQUSER", password="RQUSER", sid="ORCL", host=" ",port=1521) ore.sync() ore.attach() mod <- with(ERSTIS,split(alter,geschl)) }); with(ERSTIS,split(alter,geschl)) Oracle Datenbank erstis Oracle Datenbank erstis R-Engine auf DB-Server Tabelle wird in den lokalen Speicher kopiert und lokal analysiert Tabelle bleibt in der DB. Analyse findet im Speicher des DB-Servers statt Das Ergebnis wird zurückgeliefert DB-Server-Maschine

43 43 OREeda Package Functions spezielle Funktionen (SAS analog) ore.corr ore.crosstab ore.freq ore.lm ore.rank ore.sort ore.summary ore.univariate R-Engine auf DB-Server Oracle Datenbank erstis R-Engine auf DB-Server Die Abarbeitung im Memory der Datenbank ist schneller als im Memory der R Engine auf dem Server DB-Server-Maschine DB Memory R Memory

44 44 Gezieltes Ansteuern einer Verarbeitungsvariante (Beispiel Regressions Modell) mod <- ore.doEval( function(param) { library(ORE) ore.connect(user="RQUSER", password="RQUSER, sid="ORCL", host=" ",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 bleiben im Memory Der Oracle Datenbank 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 im Memory der R-Engine auf dem DB-Server Laufzeit: 3 Sekunden Laufzeit: 110 Sekunden

45 45 Funktionen und Prozeduren in der Datenbank

46 46 begin sys.rqScriptCreate('Example1, 'function() { ID <- 1:10 res <- data.frame(ID = ID, RES = ID / 100) res}'); end; / select * from table(rqEval(NULL, 'select 1 id, 1 res from dual', 'Example1')); Aufrufen von R-Scripten über SQL-Statements komplett in der Datenbank (sys.rqScriptCreate) R-Engine auf DB-Server Oracle Datenbank R-Engine auf DB-Server DB-Server-Maschine DB Memory R Memory Select * from Table()

47 47 Visualisieren von Ergebnissen (Plotting)

48 48

49 49

50 50

51 51

52 52 Visualisieren von Ergebnissen (OBIEE)

53 53 Anzeige über Business Intelligence Als Funktion oder gespeicherte Ergebnisse Das Kundenranking wird mit in den Berichten angezeigt

54 54 Einbindung von R-Grafiken in OBIEE Mit Parametern

55 55 Einbinden von R in umfangreichere Analyse-Szenarien

56 56 Cluster-Analyse Baum - Darstellung

57 57 Cluster-Analyse library(cluster)

58 58 Native R MapReduce Native R HDFS Zugriff Mehr Produktivität Integrierte R Umgebung Oracle R Connector for Hadoop ORE Client Host R Engine Hadoop Cluster Software R Engine MapReduce Nodes HDFS Oracle Big Data Appliance Oracle Exadata R Engine ORE ORHC

59 59 Big Data Connectors Oracle 11.2 R Environment Oracle Direct Connector for HDFS External Table Oracle Loader for Hadoop Preprocessor: hdfs_stream CSV Data pump Parallel Execution HDFS hdfs_stream Partitioned + sorted OCI JDBC direct path convential path Hive Table CSV + / n LoaderMap Target Table Offline Mode Online Mode Oracle Server-Machine HDFS Cluster-Machines MapReduce Job Framework Oracle R Connector for Hadoop R-Package Oracle R Enterprise (Advanced Analytics) R-Package

60 60


Herunterladen ppt "1 Oracle Data Warehouse Mit Big Data neue Horizonte für das Data Warehouse ermöglichen Alfred Schlaucher, Detlef Schroeder DATA WAREHOUSE."

Ähnliche Präsentationen


Google-Anzeigen