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:










