Cómo integrar PostgreSQL – PostGIS en R

La combinación de PostgreSQL y R permite aprovechar el poder y la eficiencia de PostgreSQL y la gran funcionalidad analítica de R. La unión de ambos permite a los usuarios la realización de análisis espaciales muy potentes.

El objetivo de este post es mostrar cómo podemos integrar PostgreSQL y PostGIS en R a través de RStudio.

integracion PostgreSQL PostGIS en R

Configuración de PostgreSQL

El primer paso es asegurarnos de que tenemos todos los programas necesarios instalados. Además de R y RStudio, será necesario instalar PostgreSQL. Se puede obtener la última versión disponible aquí.

En este post, las versiones utilizadas son:

R

3.6.1

RStudio

1.2.5033

PostgreSQL

12

Para el tutorial, se ha creado mediante PgAdmin4 una base de datos PostgreSQL con la extensión PostGIS y se le han añadido una tabla denominada roads con datos espaciales.

Conexión a una base de datos PostgreSQL – PostGIS desde R

Una vez se esté configurado correctamente PostgreSQL, se puede empezar a trabajar desde RStudio. Para ello, se deben instalar una serie de paquetes: DBI, RPostgres y sf.

  • El paquete DBI proporciona funciones para el acceso a varios Sistemas de Gestión de Bases de Datos. Actualmente, da soporte para PostreSQL, MariaDB, SQLite, GoogleBigQuery y MySQL.
  • El paquete RPostgres introduce una interfaz compatible con DBI para gestionar bases de datos postgres y la extensión espacial PostGIS en R.
  • El paquete sf para la representación de objetos geográficos en R. Para más información pueden consultarse post anteriores.

Para poder establecer una conexión es necesario conocer seis parámetros:

  • Controlador: nombre del driver para la conexión.  Se puede obtener más información en la sección de Controladores.
  • Servidor: la ruta de red al servidor de la base de datos.
  • Base de datos: el nombre de la base de datos a la que se quiere establecer la conexión.
  • Usuario: el ID de red del usuario o la cuenta local del servidor.
  • Contraseña: la contraseña de la cuenta.
  • Puerto: generalmente se establece en 5432.

Listar tablas de una Base de Datos en R

El paquete DBI incluye la función dbListTables(conexión) que permite listar todas las tablas que contiene la base de datos a la que se ha realizado la conexión:

El resultado que se muestra en consola es:

Se mostrarán todas las tablas que contiene la base de datos en cuestión.

Con la función st_read del paquete sf, podemos «leer» y crear una variable con los datos de la tabla de la BD que deseemos en R, para realizar cualquier tipo de análisis:

Obteniendo por consola:

Lanzar consultas desde RStudio

Existen una serie de funciones que nos permiten lanzar consultas directamente contra la base de datos y visualizar sus resultados:

  • dbSendQuery(conexión, consulta) para lanzar consultas.
  • dbFetch(resultado, n) para obtener los nelementos (filas) del conjunto de resultados.
  • dbClearResult(resultado) para limpiar los resultados obtenidos de una consulta.

hacerqueris

Se puede lanzar cualquier consulta que se lanzaría directamente desde PgAdmin o desde otro gestor de base de datos.

Cerrar conexión con la base de datos

Para finalizar, es importante asegcerrar la conexión a la base de datos. Para ello, se emplea la función dbDisconnect(conexión).

# 8.0 Cerrar conexión dbDisconnect(con)

Código completo

El código completo del tutorial es el siguiente:

 

Let’s connect!

Date de alta en nuestro newsletter
y recibe este ebook gratuito

Y una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos

Deja un comentario