La utilización de JDBC en R para acceder a las bases de datos ofrecer grandes ventajas frente a la utilización de paquetes específicos. En primer lugar, al utilizar un API estándar es más fácil cambiar el motor de base de datos. Por otro lado, al utilizar una maquina virtual Java la solución se hace independientemente del sistema operativo.
Tabla de contenidos
En muchas soluciones analíticas es necesario poder importar los datos desde una base de datos. Cuando los datos no cambian se puede trabajar con una extracción de estos, pero no en caso contrario. En R existen múltiples paquetes para acceder a diferentes bases de datos como pueden ser: RSQLite, RPostgres o ROracle. La utilización de un paquete diferente para cada motor de base de datos presenta un problema cuando se desea cambiar el mismo. En la mayoría de los casos se tendrá que revisar el código de utilizado y puede ser necesario reescribirlo. Una solución a este problema se puede encontrar en el paquete RJDBC.
El paquete RJDBC utiliza JDBC para acceder a los datos. JDBC (Java Database Connectivity) es un API que permite ejecutar operaciones sobre bases de datos desde Java. Al utilizar Java la conexión es independientemente del sistema operativo en el que se ejecute. Los drivers necesarios para acceder a las bases de datos son Java y existen para la mayoría de las bases de datos del mercado.
El paquete RJDBC se encuentra disponible en el CRAN, por lo que únicamente se ha de utilizar el comando:
install.packages("RJDBC") El proceso de conexión a las bases de datos desde R es tremendamente sencillo. Inicialmente se ha de cargar importar la librería en el espacio de trabajo. Una vez realizado este proceso se ha de cargar el controlador para la base de datos y abrir una conexión con este.
# Se carga el paquete para utilizar los drivers JDBC
library(RJDBC)
# Carga del driver
drv = JDBC("java.class", "javaClassFile.jar")
# Apertura de la conexión
conn = dbConnect(drv, "URL:Database", "username", "password") La cadena de texto "java.class" depende de la base de datos, como ejemplo se puede enumerar las mas populares:
Por otro lado, la URL a la base de datos se ha de configurar de manera diferente dependiendo del tipo de base datos utilizado. Al igual que antes se pueden enumerar las estructuras de las bases de datos más populares:
La utilización de la base de datos se realiza mediante las funciones del paquete DBI, las consultas y resto de accesos a la base de datos se realizan con los comandos de este paquete.
Finalmente, al finalizar el trabajo con la base de datos se ha de cerrar la conexión.
# Cierre de la conexión dbDisconnect(conn)
A continuación, se muestra múltiples ejemplos de cómo se ha de realizar la conexión a diferentes bases de datos. En concreto se muestra las conexiones a SQLite, Oracle y Postgres.
drv = JDBC('org.sqlite.JDBC', fileName)
jdbcStr = paste('jdbc:sqlite:', fileName, sep='')
con = dbConnect(drv, jdbcStr, '', '') drv = JDBC('oracle.jdbc.driver.OracleDriver', fileName)
jdbcStr = paste('jdbc:oracle:thin:@', server, ':', port, ':', sid, sep='')
con = dbConnect(drv, jdbcStr, user, pass) drv = JDBC( 'org.postgresql.Driver', fileName)
jdbcStr = paste('jdbc:postgresql://' server ':' port '/' database', sep='')
con = dbConnect(drv, jdbcStr, user, pass) En esta entrada se ha visto cómo utilizar el paquete RJDBC para acceder a bases de datos desde R. Al estar basado el Java se garantiza que el código se puede utilizar en cualquier sistema en el que se encuentre tanto Java como R. Permitiendo también trabajar con cualquier base de datos.
Imágenes: Pixabay
Cuando comenzamos un análisis de datos, uno de los primeros pasos suele ser resumir las…
En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…
En la serie Creación de una API REST con Express y TypeScript construimos una API…
Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…
En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…
Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…
This website uses cookies.