Sign inSign up

tijenet/rstudio-odbc

By tijenet

•Updated 7 months ago

RStudio Server (4.3.3) pre-configured with Microsoft ODBC Driver 18 for SQL Server.

Image
Data science
Databases & storage
0

1.3K

tijenet/rstudio-odbc repository overview

⁠📊 RStudio Server + MS ODBC Driver 18 para SQL Server

Una imagen de Docker robusta y "plug-and-play", diseñada para Analistas de Datos y Analistas de BI que necesitan conectarse a bases de datos de SQL Server o Azure SQL directamente desde RStudio Web.

⁠💡 ¿Por qué usar esta imagen?

Configurar RStudio junto con los drivers de Microsoft en entornos corporativos suele ser un dolor de cabeza debido a los firewalls de las oficinas que bloquean las descargas de apt-get (errores 403 Forbidden). Esta imagen resuelve ese problema: ya trae el driver precompilado junto con las librerías necesarias. Solo haces pull y estás listo para programar tus procesos de ETL o análisis de datos.

⁠🛠️ Stack Tecnológico

  • Base: rocker/rstudio:4.3.3 (Basado en Ubuntu 22.04 LTS).
  • Driver: Microsoft ODBC Driver 18 for SQL Server (msodbcsql18).
  • Librerías de R preinstaladas: DBI y odbc (Cargadas y listas desde CRAN).
  • Herramientas de sistema integradas: unixodbc-dev, curl, ca-certificates, gnupg2.

⁠🚀 Instalación y Uso Rápido

La forma más limpia de levantar tu entorno de análisis es usando Docker Compose.

⁠1. Usando Docker Compose (Recomendado)

Crea un archivo llamado docker-compose.yml en tu directorio local:

version: '3.8'

services:
  rstudio-bi-env:
    image: tijenet/rstudio-odbc:latest
    container_name: rstudio_sql_server
    ports:
      - "8787:8787"
    environment:
      - PASSWORD=TuPasswordSeguro123!  # Obligatorio para entrar a RStudio
      - USER=rstudio                   # Usuario por defecto
    volumes:
      # Mapea tu carpeta local al entorno de RStudio para no perder tus scripts
      - ./r_workspace:/home/rstudio/workspace 
    restart: unless-stopped

Levanta el contenedor ejecutando:

docker compose up -d
⁠2. Usando Docker CLI

Si prefieres un comando directo en la terminal:

docker run -d \
  -p 8787:8787 \
  -e PASSWORD=TuPasswordSeguro123! \
  -v $(pwd)/r_workspace:/home/rstudio/workspace \
  --name rstudio_sql_server \
  tijenet/rstudio-odbc:latest

👉 Acceso: Abre tu navegador y ve a http://localhost:8787. Inicia sesión con el usuario rstudio y la contraseña que configuraste.

⁠💻 Ejemplos de Conexión en R

Una vez dentro de tu entorno en RStudio, puedes usar estas plantillas de código para empezar a consultar tus datos inmediatamente.

⁠Conexión Estándar a SQL Server (On-Premise o VPN)

Nota importante: El ODBC Driver 18 requiere conexiones cifradas por defecto. Si el SQL Server de tu oficina no tiene un certificado SSL oficial, el parámetro TrustServerCertificate="yes" es obligatorio para que no rechace la conexión.

library(DBI)
library(odbc)

# 1. Establecer conexión
con <- dbConnect(odbc::odbc(),
                 Driver   = "ODBC Driver 18 for SQL Server",
                 Server   = "192.168.1.100",  # IP de tu servidor o nombre de host
                 Database = "Tu_DataWarehouse",
                 UID      = "usuario_lectura",
                 PWD      = "password_secreto",
                 TrustServerCertificate = "yes") # Vital para evitar errores de SSL

# 2. Extraer datos para análisis
query <- "SELECT TOP 1000 * FROM Ventas_Historicas ORDER BY Fecha DESC"
df_ventas <- dbGetQuery(con, query)

# 3. Ver los primeros registros
head(df_ventas)

# 4. Cerrar conexión
dbDisconnect(con)
⁠Conexión a Azure SQL Database

Para bases de datos en la nube de Microsoft, la conexión es directa y el certificado SSL es nativo, por lo que requieres el parámetro Encrypt="yes".

library(DBI)
library(odbc)

con_azure <- dbConnect(odbc::odbc(),
                 Driver   = "ODBC Driver 18 for SQL Server",
                 Server   = "tu-servidor-bi.database.windows.net",
                 Database = "BI_Produccion",
                 UID      = "admin_azure",
                 PWD      = "password_azure",
                 Encrypt  = "yes")

# Escribir un dataframe local de vuelta a la base de datos
# dbWriteTable(con_azure, name = "Resultados_Modelo", value = mi_dataframe, append = TRUE)

dbDisconnect(con_azure)

⁠⚠️ Resolución de Problemas (Troubleshooting)

  • Error: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:...] Este es el error más común al migrar del Driver 17 al 18. Se soluciona añadiendo TrustServerCertificate = "yes" a tu cadena de conexión en R, como se muestra en los ejemplos.

  • No puedo guardar archivos en RStudio: Si tienes problemas de permisos con el volumen mapeado, asegúrate de que la carpeta local ./r_workspace exista antes de levantar el contenedor o dale permisos de escritura (chmod 777 r_workspace en Linux/Mac).

Tag summary

Content type

Image

Digest

sha256:1e0edfef1…

Size

643 MB

Last updated

7 months ago

docker pull tijenet/rstudio-odbc