Oracle R Enterprise

Oracle R Enterprise (#2)

On a vu dans l’article précédent que la version communautaire de R permettait difficilement de travailler avec de grands volumes. Pour cela, on lui préférera la distribution Oracle R Enterprise qui fait partie de l’option Oracle Advanced Analytics.

La mise en oeuvre repose sur quatre composants détaillés ci-après:

1- Une base de données Oracle Enterprise Edition

On utilisera une version 12.2 pour cet exemple, son installation n’est pas décrite ici car elle ne présente pas de spécificité. On notera juste la nécessité d’installer le patch 20173897 pour les versions <12.2.

2- Une distribution R sur le serveur de base de données

Oracle R Distribution est utilisé dans cet article mais on aurait tout aussi bien pu utiliser la version communautaire.

L’installation est réalisée sur un système OEL 6.7 à l’aide d’une commande yum (exploitant le repository public-yum.oracle.com):

 
# cat /etc/oracle-release
Oracle Linux Server release 6.7
#
# yum install R.x86_64

Néanmoins, la documentation mentionne que le package libRmath-static devrait être installé mais il s’est avéré que cela n’était pas le cas lors d’un déploiement avec yum.

J’ai donc téléchargé directement le package (depuis ce lien) qui a été installé avec la commande rpm:

 
# rpm -Uvh libRmath-static-3.2.0-2.el6.x86_64.rpm

A l’issue de l’opération, les packages suivants devraient être installés:

 
[oracle@psu888 ~]$ rpm -qa | grep -E "R-|libR"
R-3.2.0-2.el6.x86_64
libRmath-devel-3.2.0-2.el6.x86_64
R-devel-3.2.0-2.el6.x86_64
libRmath-static-3.2.0-2.el6.x86_64
libRmath-3.2.0-2.el6.x86_64
R-core-3.2.0-2.el6.x86_64
[oracle@psu888 ~]$

On peut alors lancer R et vérifier qu’il s’agit bien de la distribution Oracle:

 
[oracle@psu888 ~]$ R

Oracle Distribution of R version 3.2.0  (--) -- "Full of Ingredients"
Copyright (C)  The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

You are using Oracle's distribution of R. Please contact
Oracle Support for any problems you encounter with this
distribution.

> q()
Save workspace image? [y/n/c]: n
[oracle@psu888 ~]$

3- Oracle R Enterprise Server

On télécharge ensuite les archives ore-server et ore-supporting à partir de cette page.

 
[oracle@psu888 ~]$ cd ORE
[oracle@psu888 ORE]$ ll
total 110296
-rw-r--r-- 1 oracle dba 109435939 Feb 21 12:02 ore-server-linux-x86-64-1.5.zip
-rw-r--r-- 1 oracle dba   3504064 Feb 21 12:02 ore-supporting-linux-x86-64-1.5.zip
[oracle@psu888 ORE]$
[oracle@psu888 ORE]$ unzip ore-server-linux-x86-64-1.5.zip
Archive:  ore-server-linux-x86-64-1.5.zip
  inflating: server.sh
  inflating: server/ORE_1.5_R_x86_64-unknown-linux-gnu.tar.gz
...
  inflating: server/rquser.sql
[oracle@psu888 ORE]$ unzip ore-supporting-linux-x86-64-1.5.zip
Archive:  ore-supporting-linux-x86-64-1.5.zip
  inflating: supporting/Cairo_1.5-8_R_x86_64-unknown-linux-gnu.tar.gz
...
  inflating: supporting/statmod_1.4.21_R_x86_64-unknown-linux-gnu.tar.gz
[oracle@psu888 ORE]$

On peut alors lancer l’installation via la script server.sh:

 
[oracle@psu888 ORE]$ ll
total 110360
-rw-r--r-- 1 oracle dba      109435939 Feb 21 12:02 ore-server-linux-x86-64-1.5.zip
-rw-r--r-- 1 oracle dba        3504064 Feb 21 12:02 ore-supporting-linux-x86-64-1.5.zip
drwxr-xr-x 3 oracle oinstall      4096 Feb 21 12:14 server
-r-xr-xr-x 1 oracle oinstall     55193 Oct 22  2015 server.sh
drwxr-xr-x 2 oracle oinstall      4096 Feb 21 12:14 supporting
[oracle@psu888 ORE]$ ./server.sh

Oracle R Enterprise 1.5 Server.

Copyright (c) 2012, 2015 Oracle and/or its affiliates. All rights reserved.

Checking platform .................. Pass
Checking R ......................... Pass
Checking R libraries ............... Pass
Checking ORACLE_HOME ............... Pass
Checking ORACLE_SID ................ Pass
Checking sqlplus ................... Pass
Checking ORACLE instance ........... Pass
Checking CDB/PDB ................... Fail
  ERROR: cannot install ORE in a root container
  PDB to use for ORE installation [list]: PDB_IOTST04
Checking CDB/PDB ................... Pass
Checking ORE ....................... Pass

Choosing RQSYS tablespaces
  PERMANENT tablespace to use for RQSYS [list]: TBS01
  TEMPORARY tablespace to use for RQSYS [list]: TEMP
Choosing RQSYS password
  Password to use for RQSYS:

Choosing ORE user
  ORE user to use [list]: C##RAF

Current configuration
  R Version ........................ Oracle Distribution of R version 3.2.0  (--)
  R_HOME ........................... /usr/lib64/R
  R_LIBS_USER ...................... /soft/oracle/product/rdbms/12.2.0.1/R/library
  ORACLE_HOME ...................... /soft/oracle/product/rdbms/12.2.0.1
  ORACLE_SID ....................... IOSHR88D1_2
  PDB .............................. PDB_IOTST04

  Existing R Version ............... None
  Existing R_HOME .................. None
  Existing ORE data ................ None
  Existing ORE code ................ None
  Existing ORE libraries ........... None

  RQSYS PERMANENT tablespace ....... TBS01
  RQSYS TEMPORARY tablespace ....... TEMP

  ORE user type .................... Existing
  ORE user name .................... C##RAF
  ORE user PERMANENT tablespace .... TBS01
  ORE user TEMPORARY tablespace .... TEMP
  Grant RQADMIN role ............... No

  Operation ........................ Install/Upgrade/Setup

Proceed? [yes] yes

Removing R libraries ............... Pass
Installing R libraries ............. Pass
Installing ORE libraries ........... Pass
Installing RQSYS data .............. Pass
Configuring ORE .................... Pass
Installing RQSYS code .............. Pass
Installing ORE packages ............ Pass
Creating ORE script ................ Pass
Installing migration scripts ....... Pass
Installing supporting packages ..... Pass
Granting ORE privileges ............ Pass

Done
[oracle@psu888 ORE]$

On vérifie que les logs ne contiennent pas d’erreur:

 
[oracle@psu888 ORE]$ ll *.log
-rw-r--r-- 1 oracle oinstall    9 Feb 21 12:18 outcdb.log
-rw-r--r-- 1 oracle oinstall  444 Feb 21 12:25 rqconfig.log
-rw-r--r-- 1 oracle oinstall  388 Feb 21 12:26 rqgrant.log
-rw-r--r-- 1 oracle oinstall 2787 Feb 21 12:25 rqinst.log
-rw-r--r-- 1 oracle oinstall 7871 Feb 21 12:26 rqproc.log
[oracle@psu888 ORE]$
[oracle@psu888 ORE]$ grep ORA- *.log
[oracle@psu888 ORE]$

4- Oracle R Enterprise Client (& librairie MKL)

On télécharge le client R Oracle à partir de https://oss.oracle.com/ORD/. Ici, il s’agit de la distribution ORE 3.2.0 pour Windows.

L’installation ne présente pas de difficulté particulière:

 

A l’issue de l’installation, un écran informe de la possibilité d’appuyer R sur la librairie Intel MKL:

Cette librairie spécialisée doit être téléchargée depuis le site d’Intel :

L’installation s’avère la aussi très simple:

L’interfaçage R/MKL repose sur l’ajout dans le PATH du système des localisations des dll libOrdBlasLoader.dll et mkl_rt.dll:

Dans R, on peut alors vérifier à l’aide de la commande Sys.BlasLapack() que la librairie est bien utilisable:

Pour finaliser la mise en place du client ORE, il faut ensuite installer quelques packages additionnels (archives ore-client et ore-supporting) que l’on récupère auparavant à partir de cette page. Leur déploiement peut être réalisé à partir du GUI R via le menu « Packages > Install package(s) from local zip files… »:

A noter qu’il m’a fallu démarrer le client R en tant qu’administrateur pour que le déploiement des packages fonctionne correctement: 

Test d’Oracle R Enterprise

Après avoir chargé le package ORE dans la session cliente, on vérifie que les méthodes ore.* fonctionnent correctement:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *