Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Overview of running R in the Oracle Database

536 visualizaciones

Publicado el

These are the slides from my presentation on Running R in the Database using Oracle R Enterprise. The second half of the presentation is a live demo of using the Oracle R Enterprise. Unfortunately the demo is not listed in these slides

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Overview of running R in the Oracle Database

  1. 1.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Running  R  in  the  Database  using     Oracle  R  Enterprise     Brendan Tierney Code  Demo  
  2. 2.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           §  Data  Warehousing  since  1997   §  Data  Mining  since  1998   §  Analy)cs  since  1993   Brendan  Tierney  
  3. 3.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Agenda   •  What  is  R?   •  Oracle  Advanced  Analy)cs  Op)on   •  Oracle  R  Technologies  &  Oracle  R  Enterprise   •  Examples  of  using  ORE   •  Crea)ng  &  running  R  in  the  Database   •  How  to  run  R  in  the  Database  using  SQL   •  Using  ORE  with  other  products   Code  Demo  
  4. 4.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Agenda   •  What  is  R?   •  Oracle  Advanced  Analy)cs  Op)on   •  Oracle  R  Technologies  &  Oracle  R  Enterprise   •  Examples  of  using  ORE   •  Crea)ng  &  running  R  in  the  Database   •  How  to  run  R  in  the  Database  using  SQL   •  Using  ORE  with  other  products  
  5. 5.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           R   §  R  Open  source  sta)s)cal  compu)ng  and  graphics   language   §  Started  in  1993  as  an  alterna)ve  to  SAS,  SPSS  and   other  proprietary  sta)s)cal  packages   •  Originally  called  S,  renamed  to  R  in  1996   §  R  is  a  client  and  server  bundled  together  as  one   executable   •  It  is  a  single  user  tool   •  It  is  not  mul)-­‐threaded   •  Constrained  to  a  single  CPU   §  Millions  of  R  users  worldwide   §  Thousands  of  libraries  available  at   •  hXp://cran.r-­‐project.org   §  Free   Milestones:   2017-­‐01-­‐09:  9870  packages   2016-­‐06-­‐01:  8492  packages   2015-­‐03-­‐13:  6400  packages   2015-­‐02-­‐15:  6325  packages   2014-­‐10-­‐29:  6000  packages   2013-­‐11-­‐08:  5000  packages   2012-­‐08-­‐23:  4000  packages   2011-­‐05-­‐12:  3000  packages   2009-­‐10-­‐04:  2000  packages   2007-­‐04-­‐12:  1000  packages   2004-­‐10-­‐01:  500  packages   2003-­‐04-­‐01:  250  packages  
  6. 6.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           §  Is  used  every  where   §  Par)cularly  in  USA   –  And  else  where  
  7. 7.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Examples  of  R  
  8. 8.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           > library(RJDBC) > # Create connection driver and open > connectionjdbcDriver <- JDBC(driverClass="oracle.jdbc.OracleDriver", classPath="c:/ojdbc6.jar") > jdbcConnection <- dbConnect(jdbcDriver, "jdbc:oracle:thin:@//localhost:1521/orcl", "dmuser", "dmuser") > #list the tables in the schema > #dbListTables(jdbcConnection) > #get the DB connections details - it get LOTS of info - Do not run unless it is really needed > dbGetInfo(jdbcConnection) > # Query on the Oracle instance name. > #instanceName <- dbGetQuery(jdbcConnection, "SELECT instance_name FROM v$instance") TABLE_NAME1 1 INSUR_CUST_LTV_SAMPLE2 2 OUTPUT_1_2 > #print(instanceName)tableNames <- dbGetQuery(jdbcConnection, "SELECT table_name from user_tables where table_name not like 'DM$%' and table_name not like 'ODMR$%'") > print(tableNames) > viewNames <- dbGetQuery(jdbcConnection, "SELECT view_name from user_views")print(viewNames) 1 MINING_DATA_APPLY_V 2 MINING_DATA_BUILD_V 3 MINING_DATA_TEST_V 4 MINING_DATA_TEXT_APPLY_V 5 MINING_DATA_TEXT_BUILD_V 6 MINING_DATA_TEXT_TEST_V > dbDisconnect(jdbcConnection) Using  RJDBC  
  9. 9.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           > library(ROracle) > drv <- dbDriver("Oracle") > # Create the connection string > host <- "localhost" > port <- 1521 > sid <- "orcl" >connect.string <- paste("(DESCRIPTION=”, "(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))", > "(CONNECT_DATA=(SID=", sid, ")))", sep = "") > con <- dbConnect(drv, username = "dmuser", password = "dmuser",dbname=connect.string) > rs <- dbSendQuery(con, "select view_name from user_views") > # fetch records from the resultSet into a data.frame > data <- fetch(rs) > # extract all rows > dim(data) [1] 6 1 > data VIEW_NAME 1 MINING_DATA_APPLY_V 2 MINING_DATA_BUILD_V 3 MINING_DATA_TEST_V 4 MINING_DATA_TEXT_APPLY_V 5 MINING_DATA_TEXT_BUILD_V 6 MINING_DATA_TEXT_TEST_V > dbCommit(con) > dbClearResult(rs) > dbDisconnect(con) Using  ROracle   Needs  Oracle  Client   in  the  search  path   Pulls  the  data  to  the   Client   Has  a  set  of  R   func)ons  tuned  for   the  Oracle  DB  
  10. 10.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           The  Challenges     §  Scalability   §  Regardless  of  the  number  of  cores  on  your  CPU,  R  will  only  use  1  on  a   default  build   §  Performance   §  R  reads  data  into  memory  by  default.  Easy  to  exhaust  RAM  by  storing   unnecessary  data.  Typically  R  will  throw  an  excep)on  at  2GB.   §  Paralleliza)on  can  be  challenge.  Is  not  Default.  Packages  available   §  Produc)on  Deployment   §  Difficul)es  deploying  R  in  produc)on   §  Typically  need  to  re-­‐code  in  …..  
  11. 11.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Agenda   •  What  is  R?   •  Oracle  Advanced  Analy)cs  Op)on   •  Oracle  R  Technologies  &  Oracle  R  Enterprise   •  Examples  of  using  ORE   •  Crea)ng  &  running  R  in  the  Database   •  How  to  run  R  in  the  Database  using  SQL   •  Using  ORE  with  other  products  
  12. 12.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Comprehensive  Advanced  Analy)cs  Plaform  
  13. 13.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Technique   Algorithms   Applicability   Classifica)on   Logis)c  Regression  (GLM)   Decision  Trees   Naïve  Bayes   Support  Vector  Machine   Classical  Sta)s)cal  Technique   Popular  /  Rules  /  Transparency   Embedded   Wide  /  Narrow  Data  /  Text   Regression       Mul)ple  Regression   Support  Vector  Machine   Classical  Sta)s)cal  Technique   Wide  /  Narrow  Data  /  Text     Anomaly  Detec)on       One  Class  SVM   Lack  Examples   AXribute  Importance       Minimum  Descrip)ve  Length   AXribute  Reduc)on   Iden)fy  Useful  Data   Reduce  Data  Noise   Associa)on  Rules       Apriori   Market  Basket  Analysis   Link  Analysis   Clustering   Enhanced  K-­‐Means   O-­‐Cluster   Expecta)on  Maximiza)on   Product  Grouping   Text  Mining   Gene  and  Protein  Analysis   Feature  Extrac)on   Non-­‐Nega)ve  Matrix  Factoriza)on   Principal  Components  Analysis   Singular  Vector  Decomposi)on   Text  Analysis   Feature  Reduc)on   In-­‐Database  Data  Mining  Algorithms  
  14. 14.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Oracle  Data  Mining   §  PL/SQL  Package   §  DBMS_DATA_MINING   §  DBMS_DATA_MINING_TRANSFORM   §  DBMS_PREDICTIVE_ANALYTICS   §  SQL  Func)ons   –  PREDICTION   –  PREDICTION_PROBABILITY   –  PREDICTION_BOUNDS   –  PREDICTION_COST   –  PREDICTION_DETAILS   –  PREDICTION_SET   –  CLUSTER_ID   –  CLUSTER_DETAILS   –  CLUSTER_DISTANCE   –  CLUSTER_PROBABILITY   –  CLUSTER_SET   –  FEATURE_ID   –  FEATURE_DETAILS   –  FEATURE_SET   –  FEATURE_VALUE   §  12c  –  Predic)ve  Queries   §  aka    Dynamic  Queries   §  Transi)ve  dynamic  Data  Mining  models   §  Can  scale  to  many  100+  models  all  in  one   statement    
  15. 15.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Sta)s)cal  Func)ons  in  Oracle   All  of  these  are   FREE     with  the  Database   These  are  oren   forgoXen  about  
  16. 16.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Comprehensive  Advanced  Analy)cs  Plaform  
  17. 17.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Comprehensive  Advanced  Analy)cs  Plaform  
  18. 18.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Agenda   •  What  is  R?   •  Oracle  Advanced  Analy)cs  Op)on   •  Oracle  R  Technologies  &  Oracle  R  Enterprise   •  Examples  of  using  ORE   •  Crea)ng  &  running  R  in  the  Database   •  How  to  run  R  in  the  Database  using  SQL   •  Using  ORE  with  other  products  
  19. 19.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Oracle  R  Technologies   R  Distribu)on   Oracle's  supported  redistribu)on  of  open  source  R,  provided  as  a  free   download  from  Oracle,  enhanced  with  dynamic  loading  of  high   performance  linear  algebra  libraries.     Oracle  R  Enterprise   Integra)on  of  R  with  Oracle  Database.  A  component  of  the  Oracle   Advanced  Analy)cs  Op)on.  Oracle  R  Enterprise  makes  the  open  source  R   sta)s)cal  programming  language  and  environment  ready  for  the   enterprise  with  scalability,  performance,  and  ease  of  produc)on   deployment.   Oracle  R  Advanced  Analy)cs  for   Hadoop   High  performance  na)ve  access  to  the  Hadoop  Distributed  File  System   (HDFS)  and  MapReduce  programming  framework  for  R  users.  Oracle  R   Advanced  Analy)cs  for  Hadoop  is  a  component  of  Oracle  Big  Data   Connectors  sorware  suite.     ROracle   An  open  source  R  package,  maintained  by  Oracle  and  enhanced  to  use  the   Oracle  Call  Interface  (OCI)  libraries  to  handle  database  connec)ons  -­‐   providing  a  high-­‐performance,  na)ve  C-­‐language  interface  to  Oracle   Database.  
  20. 20.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Oracle  R  Enterprise   §  R  installed  in  ORACLE_HOME   §  Fully  integrated  with  the  database   §  Overcomes  the  limita)ons  of  R   §  U)lizes  the  DB  performance  and  scalability   features   §  Full  integra)on  into  the  DB  engine   §  Can  run  R  inside  the  DB   §  Can  store  R  object  in  the  DB   §  Can  run  R  objects  using  SQL  &  PL/SQL   §  Easily  integrated  into  other  Oracle  Tools   and  Applica)ons   §  Greatly  expands  the  sta)s)cs  &  analy)cs     §  Easily  integrates  new  “bells  &  whistles”   package  comes  available  
  21. 21.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           Oracle  R  Enterprise  
  22. 22.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           The  Magic      :  The  Transparency  Layer   §  No  need  to  learn  a  different  programming  paradigm  or  environment     •  If  you  are  an  R  programmer   §  Operate  on  database  data  as  though  they  were  R  objects  using  R  syntax     §  Require  minimal  change  to  base  R  scripts  for  database  data     §  Implicitly  translates  R  to  SQL  for  in-­‐database  execu)on,  performance,  and   scalability    
  23. 23.      www.oraly)cs.com  t  :  @brendan)erney  e  :  brendan.)erney@oraly)cs.com           > AggData <- aggregate(CUSTOMER_V$CUST_ID, by = list(CUST_GENDER = CUSTOMER_V$CUST_GENDER),
 FUN = length) 
 > # Display the results 
 > AggData 
 CUST_GENDER x 
 F F 18325 
 M M 37175 select  cust_gender,  count(*)  X   from      customer_v   group  by  cust_gender;    

×