Tutoriel : Développement SQL pour les scientifiques des données RTutorial: SQL development for R data scientists

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Dans ce didacticiel pour les scientifiques des données, découvrez comment créer une solution de bout en bout pour la modélisation prédictive basée sur la prise en charge des fonctionnalités R dans SQL Server 2016 ou SQL Server 2017.In this tutorial for data scientists, learn how to build end-to-end solution for predictive modeling based on R feature support in either SQL Server 2016 or SQL Server 2017. Ce didacticiel utilise une base de données NYCTaxi_sample sur SQL Server.This tutorial uses a NYCTaxi_sample database on SQL Server.

Vous utilisez une combinaison de code R, de données SQL ServerSQL Server et de fonctions SQL personnalisées pour générer un modèle de classification qui indique la probabilité que le chauffeur obtienne un pourboire sur un trajet en taxi particulier.You use a combination of R code, SQL ServerSQL Server data, and custom SQL functions to build a classification model that indicates the probability that the driver might get a tip on a particular taxi trip. Vous déployez également votre modèle R sur SQL ServerSQL Server et utilisez des données de serveur pour générer des scores basés sur le modèle.You also deploy your R model to SQL ServerSQL Server and use server data to generate scores based on the model.

Cet exemple peut être étendu à tous les types de problèmes réels, tels que la prédiction des réponses des clients aux campagnes de vente ou la prédiction des dépenses ou de la participation lors d’un événement.This example can be extended to all kinds of real-life problems, such as predicting customer responses to sales campaigns, or predicting spending or attendance at events. En outre, le modèle pouvant être appelé à partir d’une procédure stockée, vous pouvez facilement l’incorporer dans une application.Because the model can be invoked from a stored procedure, you can easily embed it in an application.

La procédure pas à pas étant conçue pour présenter R Services (dans la base de données)R Services (In-Database) aux développeurs R, les tâches sont effectuées à l’aide de R, dans la mesure du possible.Because the walkthrough is designed to introduce R developers to R Services (dans la base de données)R Services (In-Database), R is used wherever possible. Toutefois, cela ne signifie pas que R est le meilleur outil pour toutes les tâches.However, this does not mean that R is necessarily the best tool for each task. Dans de nombreux cas, SQL ServerSQL Server peut offrir de meilleures performances, en particulier pour des tâches telles que l’agrégation de données et l’ingénierie de caractéristiques.In many cases, SQL ServerSQL Server might provide better performance, particularly for tasks such as data aggregation and feature engineering. Ces tâches peuvent notamment profiter de nouvelles fonctionnalités dans SQL Server 2019 (15.x)SQL Server 2019 (15.x), telles que les index columnstore optimisés en mémoire.Such tasks can particularly benefit from new features in SQL Server 2019 (15.x)SQL Server 2019 (15.x), such as memory optimized columnstore indexes. Nous essayons d’indiquer les optimisations possibles au cours de la procédure.We try to point out possible optimizations along the way.

Conditions préalables requisesPrerequisites

Nous vous recommandons d’effectuer cette procédure pas à pas sur une station de travail cliente.We recommend that you do this walkthrough on a client workstation. Vous devez être en mesure de vous connecter, sur le même réseau, à un ordinateur SQL ServerSQL Server avec SQL Server et le langage R activé.You must be able to connect, on the same network, to a SQL ServerSQL Server computer with SQL Server and the R language enabled. Pour obtenir des instructions sur la configuration de la station de travail, consultez Configurer un client de science des données pour le développement R sur SQL Server.For instructions on workstation configuration, see Set up a data science client for R development.

Vous pouvez également exécuter la procédure pas à pas sur un ordinateur qui possède à la fois SQL ServerSQL Server et un environnement de développement R, mais nous ne recommandons pas cette configuration pour un environnement de production.Alternatively, you can run the walkthrough on a computer that has both SQL ServerSQL Server and an R development environment, but we don't recommend this configuration for a production environment. Si vous devez placer le client et le serveur sur le même ordinateur, veillez à installer un deuxième ensemble de bibliothèques Microsoft R pour envoyer un script R depuis un client « distant ».If you need to put client and server on the same computer, be sure to install a second set of Microsoft R libraries for sending R script from a "remote" client. N’utilisez pas les bibliothèques R qui sont installées dans les fichiers de programme de l’instance SQL Server.Do not use the R libraries that are installed in the program files of the SQL Server instance. Plus précisément, si vous utilisez un ordinateur, vous avez besoin de la bibliothèque RevoScaleR dans ces deux emplacements pour prendre en charge les opérations du client et du serveur.Specifically, if you are using one computer, you need the RevoScaleR library in both of these locations to support client and server operations.

  • C:\Program Files\Microsoft\R Client\R_SERVER\library\RevoScaleRC:\Program Files\Microsoft\R Client\R_SERVER\library\RevoScaleR
  • C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleRC:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR

Notes

Si vous utilisez Machine Learning Server ou Data Science Virtual Machine, au lieu de R Client, le chemin d’accès à RevoScaleR est C:\Program Files\Microsoft\ML Server\R_SERVER\library\RevoScaleRIf you are using Machine Learning Server or the Data Science Virtual Machine, instead of R Client, the path to RevoScaleR is C:\Program Files\Microsoft\ML Server\R_SERVER\library\RevoScaleR

Packages R supplémentairesAdditional R packages

Cette procédure pas à pas nécessite certaines bibliothèques R qui ne sont pas installées par défaut dans le cadre de R Services (dans la base de données)R Services (In-Database).This walkthrough requires several R libraries that are not installed by default as part of R Services (dans la base de données)R Services (In-Database). Vous devez installer les packages à la fois sur le client où vous développez la solution et sur l’ordinateur SQL ServerSQL Server où vous déployez la solution.You must install the packages both on the client where you develop the solution, and on the SQL ServerSQL Server computer where you deploy the solution.

Sur une station de travail clienteOn a client workstation

Dans votre environnement R, copiez les lignes suivantes et exécutez le code dans une fenêtre de console (Rgui ou un IDE).In your R environment, copy the following lines and execute the code in a Console window (Rgui or an IDE). Certains packages installent également les packages nécessaires.Some packages also install required packages. En tout, environ 32 packages sont installées.In all, about 32 packages are installed. Vous devez avoir une connexion Internet pour terminer cette étape.You must have an internet connection to complete this step.

# 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')}

Sur le serveurOn the server

Plusieurs options s’offrent à vous pour installer des packages sur SQL Server.You have several options for installing packages on SQL Server. Par exemple, SQL Server fournit une fonctionnalité de gestion des packages R qui permet aux administrateurs de base de données de créer un référentiel de packages et d’affecter aux utilisateurs les droits nécessaires pour installer leurs propres packages.For example, SQL Server provides R package management feature that lets database administrators create a package repository and assign user the rights to install their own packages. Toutefois, si vous êtes administrateur de l’ordinateur, vous pouvez installer de nouveaux packages à l’aide de R, à condition que vous les installiez dans la bibliothèque appropriée.However, if you are an administrator on the computer, you can install new packages using R, as long as you install to the correct library.

Notes

N’installez pas les packages dans une bibliothèque utilisateur du serveur, même si vous y êtes invité.On the server, do not install to a user library even if prompted. Si vous les installez dans une bibliothèque utilisateur, l’instance SQL Server ne peut pas trouver ni exécuter les packages.If you install to a user library, the SQL Server instance cannot find or run the packages. Pour plus d’informations, consultez Installer de nouveaux packages R avec sqlmlutils.For more information, see Installing new R Packages on SQL Server.

  1. Sur l’ordinateur SQL ServerSQL Server, ouvrez RGui.exe en tant qu’administrateur.On the SQL ServerSQL Server computer, open RGui.exe as an administrator. Si vous avez installé SQL Server R Services à l’aide des paramètres par défaut, vous trouverez Rgui.exe dans C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64).If you have installed SQL Server R Services using the defaults, Rgui.exe can be found in C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64).

  2. À l’invite R, exécutez les commandes R suivantes :At an R prompt, run the following R commands:

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])

Cet exemple utilise la fonction grep R pour rechercher le vecteur de chemins disponibles et trouver celui qui comprend « Program Files ».This example uses the R grep function to search the vector of available paths and find the path that includes "Program Files". Pour plus d’informations, consultez https://www.rdocumentation.org/packages/base/functions/grep.For more information, see https://www.rdocumentation.org/packages/base/functions/grep.

Si vous pensez que les packages sont déjà installés, vérifiez la liste des packages installés en exécutant installed.packages().If you think the packages are already installed, check the list of installed packages by running installed.packages().

Étapes suivantesNext steps