Ir al contenido principal

Conectar bases de datos Oracle con R vía JDBC

 Hasta ahora había documentado la conexión de R usando nuestra modesta pero poderosa base de datos pequeñita llamada SQLite.

Debido a mis nuevas funciones se me pidió que conectara una base de datos de Oracle con R y esto lo consulté en la siguiente liga de internet.

Entendemos que existen paquetes de R para un motor específico de una base de datos, pero como lo menciona el autor del post que cito arriba el usar el paquete RJDBC resume en 2 ventajas:

  • Mayor facilidad de mantenimiento nuestros programas R cuando se cambia de motor de base de datos.
  • La independencia del sistema operativo usando la máquina virtual de Java.
Es por ello que el paquete RJDBC es una buena opción para conectar con nuestra diferentes bases de datos.

Vamos a hacer un ejemplo donde conectamos una base de datos Oracle que contiene las defunciones del año 2018 en México.

Lo primero que tenemos que hacer es instalar el paquete RJDBC.

install.packages("RJDBC")

Una vez instalado el paquete tenemos que descargar de la página de Oracle, el conector en especifico que en este caso yo instalé el de la versión de Oracle 12c que es la tiene el Instituto.


Una vez descargado el archivo con extensión Jar procedemos a cargar el driver.

drv = JDBC("oracle.jdbc.driver.OracleDriver","rutadelequipo/ojdbc7.jar")

Después de descargar el drive se hace la conexión a la base de datos.

 con <- dbConnect(drv, "jdbc:oracle:thin:@//servidor:1521/servicio","usuario","contraseña")

Donde puse las palabras servidor, servicio, usuario y contraseña irán los datos de su conexión, en el caso del 1521 es el puerto, que se puede cambiar en caso de que el servicio este "escuchando" otro puerto.

Ahora hacemos una consulta a la tabla de base de datos que acabamos de conectar.

 data <- dbGetQuery(con,"select * from tdefun18")

Y con esto tenemos un dataset para hacer operaciones con él, como saber cuántas defunciones hubo por sexo en 2018.

A continuación un pequeño ejemplo:


Hasta aquí este pequeño post sobre RJDBC.

Saludos.
Miguel Araujo







Comentarios

Entradas populares de este blog

REDATAM en Ubuntu (Linux)

 En un blog alterno, escribí sobre como migraba un "viejo" Intel i5 al sistema operativo Ubuntu en su versión más actual. Me comunique con mi gran colega Lenin de la CELADE en Chile, después de mucho tiempo, y le pedí me diera un pequeño resumen del "estado del arte" de REDATAM me dijo que todo marchaba bien, y pues ahora creo que tengo que actualizarme en contenedores pues el web server se encuentra ahí. Nos pusimos manos a la obra, el instalable desde la página no tiene ninguna extensión de archivo, asumí que era un ejecutable para Linux, no se si la página sufra ataques constantes ya que después quise volver a descargar sin éxito, la página estaba caida, sin embargo rescate el ejecutable anteriormente descargado. Últimamente primero hago y después documento, ya que con todo y mi compañero Deep,  no todo sale a la primera ni como lo dictan sus sugerencias, sobre todo en Linux y MacOS.  Por lo que, les muestro solo el resultado final de esta primera exploración, im...

El problema del gallo - otra vertiente de usar Python en RMarkdown con Posit RStudio

Cuando pensamos que ya se había cruzado el río, el buen gallo - mi amigo el Dany  Lara- no podía insertar código de Python  en un documento de RMarkdown  usando la versión de escritorio de Posit RStudio a pesar de las soluciones como instalar el Python y direccionarlo desde R con la biblioteca reticulate . Si bien se podía ejecutar código del interprete base, al querer correr usando módulos y con ello intentando instalar dichos módulos mandaba el siguiente mensaje: > py_install('matplotlib') Using virtual environment "D:/tu_usuario/Documents/.virtualenvs/r-reticulate" ... WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/matplotlib/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) a...

RMarkdown - Python para usuarios de Posit RStudio

 Al escribir el post anterior pareciera que sería la misma lógica con la versión de escritorio de Posit RStudio , sin embargo al querer ejecutar un chunk de Python en un archivo de RMarkdown , manda que se tienen que actualizar los paquetes, descarga algunas cosas pero al final manda el siguiente mensaje: Show in New Window Error in system2(uv, c("python list", "--all-versions", "--color never", : '"C:\Users\mi_nombre_de_usuario\AppData\Local\R\cache\R\reticulate\uv\bin\uv.exe"' not found Error: Installation of Python not found, Python bindings not loaded. See the Python "Order of Discovery" here: https://rstudio.github.io/reticulate/articles/versions.html#order-of-discovery. La IA de Google aconseja  instalar uv pero el paquete reticulate no tiene ese método. Cuando se pensaba en instalar todo el que yo le llamo ecosistema del lenguaje de programación R se trató con esta última receta, descargar Python e instalarlo en una ...