Tutorial: Desarrollo de SQL Server para científicos de datos en R

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores

En este tutorial para científicos de datos, aprende cómo construir una solución de extremo a extremo para modelado predictivo basada en el soporte de funciones R en SQL Server 2017. Este tutorial utiliza una base de datos demo de NYC Taxi en SQL Server.

Usará una combinación de código R, datos de SQL Server y funciones SQL personalizadas para generar un modelo de clasificación que indique la probabilidad de que el conductor reciba una propina en un recorrido de taxi determinado. También implementará el modelo R en SQL Server y usará datos del servidor para generar puntuaciones según el modelo.

Puedes extender este ejemplo a todo tipo de problemas reales, como predecir las respuestas de los clientes a campañas de ventas, o predecir gastos o asistencia a eventos. Como puedes invocar el modelo desde un procedimiento almacenado, puedes incrustarlo fácilmente en una aplicación.

Como la guía está diseñada para presentar a los desarrolladores de R los Servicios R (In-Database), se utiliza siempre que es posible. Sin embargo, esto no significa que R sea necesariamente la mejor herramienta para cada tarea. En muchos casos, SQL Server podría proporcionar un mejor rendimiento, especialmente en tareas como la agregación de datos e ingeniería de características. Esas tareas pueden beneficiarse de las nuevas características de SQL Server, como los índices de almacén de columnas con optimización para memoria. En el camino le indicaremos posibles optimizaciones.

Prerrequisitos

Se recomienda realizar este tutorial en una estación de trabajo de cliente. Debe poder conectarse en la misma red a un equipo de SQL Server con SQL Server y el lenguaje R habilitados. Para instrucciones sobre la configuración de la estación de trabajo, consulta Configurar un cliente de ciencia de datos para el desarrollo de R en SQL Server.

Como alternativa, puede ejecutar el tutorial en un equipo que tenga tanto SQL Server como un entorno de desarrollo de R, pero esta configuración es desaconsejable en un entorno de producción. Si necesita colocar el cliente y el servidor en el mismo equipo, asegúrese de instalar un segundo conjunto de bibliotecas de Microsoft R para enviar scripts de R desde un cliente "remoto". No uses las bibliotecas R que están instaladas en los archivos de programa de la instancia de SQL Server. Específicamente, si usas un solo ordenador, necesitas la biblioteca RevoScaleR en ambas ubicaciones para soportar operaciones de cliente y servidor.

  • C:\Archivos de programa\Microsoft\R Client\R_SERVER\library\RevoScaleR
  • C:\Archivos de programa\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR

Otros paquetes de R

Esta guía requiere varias bibliotecas de R que no están instaladas por defecto como parte de R Services (In-Database). Debe instalar los paquetes tanto en el cliente donde desarrolle la solución como en el equipo con SQL Server donde la implemente.

En una estación de trabajo de cliente

En el entorno de R, copie las siguientes líneas y ejecute el código en una ventana de la consola (RGui o un IDE). Algunos paquetes también instalan paquetes necesarios. En general, se instalarán unos 32 paquetes. Deberá disponer de conexión a Internet para poder realizar este paso.

# Install required R libraries, if they are not already installed.
if (!('ggmap' %in% rownames(installed.packages()))){install.packages('ggmap')}
if (!('mapproj' %in% rownames(installed.packages()))){install.packages('mapproj')}
if (!('ROCR' %in% rownames(installed.packages()))){install.packages('ROCR')}
if (!('RODBC' %in% rownames(installed.packages()))){install.packages('RODBC')}

En el servidor

Existen varias opciones para instalar paquetes en SQL Server. Por ejemplo, SQL Server proporciona la función Instalar paquetes de R con sqlmlutils, que permite a los administradores de bases de datos crear un repositorio de paquetes y asignar permisos a los usuarios para instalar sus propios paquetes. Sin embargo, si eres administrador en el ordenador, puedes instalar nuevos paquetes usando R, siempre que lo instales en la biblioteca correcta.

Nota

En el servidor, no instales en una biblioteca de usuario aunque te lo pidan. Si instalas en una biblioteca de usuario, la instancia de SQL Server no puede encontrar ni ejecutar los paquetes. Para obtener más información, consulte Instalación de paquetes de R con sqlmlutils.

  1. En el equipo con SQL Server, abra RGui.exe como administrador. Si instalas SQL Server R Services con la configuración predeterminada, puedes encontrar RGui.exe en C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64.

  2. En un símbolo del sistema de R, ejecute los siguientes comandos de R:

install.packages("ggmap", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("mapproj", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("ROCR", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("RODBC", lib=grep("Program Files", .libPaths(), value=TRUE)[1])

En este ejemplo se usa la función grep de R para buscar en el vector de rutas de acceso disponibles y encontrar la ruta de acceso que incluya "Archivos de programa". Para obtener más información, consulte RDocumentation para el paquete base.

Si cree que los paquetes ya están instalados, ejecute installed.packages() para revisar la lista de paquetes instalados.

Paso siguiente