• Ir al contenido principal
  • Skip to secondary menu
  • Ir a la barra lateral primaria
  • Ir al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Noticias
    • Opinión
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Boletín
  • Contacto
  • Acerca de Analytics Lane
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • GearBest
      • GeekBuying
      • JoyBuy

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Criptografía
  • Python
  • Matlab
  • R
  • Julia
  • JavaScript
  • Herramientas
  • Opinión
  • Noticias

Uso de JDBC en R para conexión a base de datos

septiembre 14, 2018 Por Daniel Rodríguez 2 comentarios

Database

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.

Introducción

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.

Instalación de RJDBC en R

El paquete RJDBC se encuentra disponible en el CRAN, por lo que únicamente se ha de utilizar el comando:

install.packages("RJDBC")

Acceso a base de datos JDBC en R

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:

  • SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver
  • Oracle: oracle.jdbc.driver.OracleDriver
  • SQLite: org.sqlite.JDBC
  • Postgres: org.postgresql.Driver
  • MySQL: com.mysql.jdbc.Driver

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:

  • SQL Server: jdbc:sqlserver://serverName
  • Oracle: jdbc:oracle:thin:@<host>:<port default=1521>:<SID>
  • SQLite: jdbc:sqlite:pathToFilename.db
  • Postgres: jdbc:postgresql://serverName:5432/mydbname
  • MySQL: jdbc:mysql://serverName/mydbname

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)

Ejemplos de uso

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.

SQLite

drv 	= JDBC('org.sqlite.JDBC', fileName)
jdbcStr = paste('jdbc:sqlite:', fileName, sep='')
con     = dbConnect(drv, jdbcStr, '', '')

Oracle

drv     = JDBC('oracle.jdbc.driver.OracleDriver', fileName)
jdbcStr = paste('jdbc:oracle:thin:@', server, ':', port, ':', sid, sep='')
con     = dbConnect(drv, jdbcStr, user, pass)

Postgress

drv     = JDBC( 'org.postgresql.Driver', fileName)
jdbcStr = paste('jdbc:postgresql://' server ':' port '/' database',  sep='')
con     = dbConnect(drv, jdbcStr, user, pass)

Conclusiones

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

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Contenido relacionado

Archivado en:R Etiquetado con:Bases de datos, Java

Interacciones con los lectores

Comentarios

  1. Pablo Cirre dice

    noviembre 12, 2018 en 10:31 am

    Muchisimas gracias por el aporte, ya lo estamos usando!
    Sin duda java es ideal para entornos de aprendizaje, pero no prefieres python?

    Responder
    • Daniel Rodríguez dice

      noviembre 14, 2018 en 11:16 am

      Gracias por el comentario Pablo. Yo no creo que ningún entorno sea mejor que otro en todos los escenarios. Por eso es bueno conocer un poco de R, Python, Julia u otros, aunque en el día a día se trabaje el más adecuada en cada situación.

      Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Publicidad


Barra lateral primaria

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

¡Síguenos en redes sociales!

  • facebook
  • github
  • telegram
  • pinterest
  • rss
  • tumblr
  • twitter
  • youtube

Publicidad

Tiendas afiliadas

Ayúdanos realizando tus compras sin coste adicional con los enlaces de la tienda. ¡Gracias!

Entradas recientes

Creación de un certificado Let’s Encrypt en Windows con Win-Acme

enero 22, 2021 Por Daniel Rodríguez Dejar un comentario

Aplicaciones de Node en producción con PM2

enero 20, 2021 Por Daniel Rodríguez Dejar un comentario

SQLite en Python

enero 18, 2021 Por Daniel Rodríguez Dejar un comentario

Publicidad

Es tendencia

  • Seleccionar filas y columnas en Pandas con iloc y loc bajo Python
  • ¿Cómo eliminar columnas y filas en un dataframe pandas? bajo Python
  • Intercambiar archivos en VirtualBox bajo Herramientas
  • Contar palabras en una celda Excel bajo Herramientas
  • Codificación JSON Archivos JSON con Python: lectura y escritura bajo Python

Publicidad

Lo mejor valorado

5 (3)

Ordenar una matriz en Matlab en base a una fila o columna

5 (3)

Automatizar el análisis de datos con Pandas-Profiling

5 (5)

Diferencias entre var y let en JavaScript

5 (6)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

5 (3)

Unir y combinar dataframes con pandas en Python

Publicidad

Comentarios recientes

  • Daniel Rodríguez en Calculadora de probabilidades de ganar a la lotería
  • abel en Calculadora de probabilidades de ganar a la lotería
  • David Arias en Diferencias entre regresión y clasificación en aprendizaje automático
  • Juan Aguilar en Archivos JSON con Python: lectura y escritura
  • Camilo en Contar palabras en una celda Excel

Publicidad

Footer

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Noticias
  • Opinión

Programación

  • JavaScript
  • Julia
  • Matlab
  • Python
  • R

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Lo más popular
  • Tienda

Tiendas Afiliadas

  • AliExpress
  • Amazon
  • BangGood
  • GearBest
  • Geekbuying
  • JoyBuy

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Tiendas afiliadas

Ayúdanos realizando tus compras sin coste adicional con los enlaces de la tienda. ¡Gracias!

Amazon

2018-2020 Analytics Lane · Términos y condiciones · Política de Cookies · Política de Privacidad · Herramientas de privacidad · Contacto