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

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores

En este tutorial para científicos de datos, aprenderá a crear una solución completa para el modelado de predicción basado en la compatibilidad con características de R de SQL Server 2016 o SQL Server 2017. En este tutorial se usa una base de datos NYCTaxi_sample 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.

Este ejemplo se puede ampliar a todos los tipos de problemas de la vida real, como predecir las respuestas de los clientes en las campañas de ventas o predecir los gastos o la asistencia a eventos. Dado que el modelo se puede invocar desde un procedimiento almacenado, puede insertarlo con facilidad en una aplicación.

Como el tutorial está diseñado para presentar R Services (en bases de datos) a los desarrolladores de R, se usará R siempre que sea posible, si bien 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 obtener instrucciones sobre la configuración de la estación de trabajo, vea Configuración de un cliente de ciencia de datos para el desarrollo en R.

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 use las bibliotecas de R que están instaladas en los archivos de programa de la instancia de SQL Server. Concretamente, si usa un equipo, necesita tener la biblioteca RevoScaleR en ambas ubicaciones para admitir las operaciones de cliente y de 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

Este tutorial requiere varias bibliotecas de R que no se instalan de forma predeterminada como parte de R Services (en bases de datos). 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 una característica de administración de paquetes de R que permite a los administradores de bases de datos crear un repositorio de paquetes y asignar a los usuarios derechos para instalar sus propios paquetes. Con todo, si es un administrador en el equipo, puede instalar nuevos paquetes mediante R, siempre que instale en la biblioteca correcta.

Nota

En el servidor, no instale en una biblioteca de usuario, aunque se le pida. Si lo hace, la instancia de SQL Server no podrá encontrar ni ejecutar los paquetes. Para más información, vea Instalación de paquetes de R nuevos en SQL Server.

  1. En el equipo con SQL Server, abra RGui.exe como administrador. Si ha instalado SQL Server R Services usando los valores predeterminados, Rgui.exe estará en C:\Archivos de programa\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.

Pasos siguientes