Connexion R/Oracle
Il est possible d’interconnecter R avec un SGBD Oracle afin de traiter directement les informations stockées en base. On évite ainsi une étape fastidieuse d’échange de données: déchargement dans un fichier externe (csv, XML etc…) puis rechargement dans R. La méthode présentée ici est basée sur le package ROracle.
A noter que j’utilise un téléchargement et une installation manuelle des composants car ma machine n’accède pas directement à internet. Dans le cas contraire, il est tout à fait possible d’utiliser la commande install.packages depuis la console R.
Téléchargements des packages depuis le site du CRAN :
- RTools: http://cran.r-project.org/bin/windows/Rtools/
- DBI: http://cran.r-project.org/web/packages/DBI/index.html
- ROracle: http://cran.r-project.org/web/packages/ROracle/index.html
Installation de Rtools
L’installation ne présente aucune difficulté et la plupart des choix par défaut conviennent. Par préférence personnelle, je modifie néanmoins la destination d’installation pour C:\Program Files\R\Rtools :

D’autre part, j’autorise l’installeur à modifier le PATH du système pour y inclure le chemin des binaires de Rtools :
Configuration des variables d’environnement
Deux variables d’environnement OCI_LIB64 et OCI_INC doivent être valorisées en fonction des chemins d’installation du client Oracle.

Dans mon cas, l’ORACLE_HOME est C:\Oracle\product\12.1.0\dbhome_1 :
- OCI_LIB64=C:\Oracle\product\12.1.0\dbhome_1\BIN
- OCI_INC=C:\Oracle\product\12.1.0\dbhome_1\oci\include
Installation des packages
L’installation est réalisée en ligne de commande en tant qu’administrateur (clic-droit sur l’icône « Invite de commande » puis « Exécuter en tant qu’administrateur »).
La distribution Oracle installée sur ma machine est en 64 bits, j’utilise donc les binaires R x64 pour les étapes d’installation suivantes:
- Installation de DBI
- Installation de ROracle
Test de la connectivité
On peut donc directement accéder les données d’un SGBD Oracle à partir de R. En revanche, il faut bien garder à l’esprit que les données sont ingérées (via un fetch) par R. Elles montent donc en mémoire sur le poste client et cela peut poser des problèmes pour les datasets très volumineux.
C’est la limite de cette méthode (et de R en version communautaire plus largement). Ce problème est adressé par la distribution R maintenue par Oracle : ORE (pour Oracle R Enterprise) qui est en mesure de déléguer les opérations lourdes au SGBD lui-même. A suivre dans un prochain billet…




