Tutoriel : Développement SQL pour les scientifiques des données R

S’applique à : SQL Server 2016 (13.x) et ultérieur

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. Ce didacticiel utilise une base de données NYCTaxi_sample sur SQL Server.

Vous utilisez une combinaison de code R, de données SQL 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. Vous déployez également votre modèle R sur SQL Server et utilisez des données de serveur pour générer des scores basés sur le modèle.

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. En outre, le modèle pouvant être appelé à partir d’une procédure stockée, vous pouvez facilement l’incorporer dans une application.

La procédure pas à pas étant conçue pour présenter R Services (dans la base de données) aux développeurs R, les tâches sont effectuées à l’aide de R, dans la mesure du possible. Toutefois, cela ne signifie pas que R est le meilleur outil pour toutes les tâches. Dans de nombreux cas, SQL 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. Ces tâches peuvent notamment profiter de nouvelles fonctionnalités dans SQL Server, telles que les index columnstore optimisés en mémoire. Nous essayons d’indiquer les optimisations possibles au cours de la procédure.

Prérequis

Nous vous recommandons d’effectuer cette procédure pas à pas sur une station de travail cliente. Vous devez être en mesure de vous connecter, sur le même réseau, à un ordinateur SQL Server avec SQL Server et le langage R activé. 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.

Vous pouvez également exécuter la procédure pas à pas sur un ordinateur qui possède à la fois SQL Server et un environnement de développement R, mais nous ne recommandons pas cette configuration pour un environnement de production. 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 ». N’utilisez pas les bibliothèques R qui sont installées dans les fichiers programme de l’instance SQL Server. 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.

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

Packages R supplémentaires

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). Vous devez installer les packages à la fois sur le client où vous développez la solution et sur l’ordinateur SQL Server où vous déployez la solution.

Sur une station de travail cliente

Dans votre environnement R, copiez les lignes suivantes et exécutez le code dans une fenêtre de console (Rgui ou un IDE). Certains packages installent également les packages nécessaires. En tout, environ 32 packages sont installées. Vous devez avoir une connexion Internet pour terminer cette étape.

# 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 serveur

Plusieurs options s’offrent à vous pour installer des packages sur 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. 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.

Notes

N’installez pas les packages dans une bibliothèque utilisateur du serveur, même si vous y êtes invité. Si vous les installez dans une bibliothèque utilisateur, l’instance SQL Server ne peut pas trouver ni exécuter les packages. Pour plus d’informations, consultez Installer de nouveaux packages R avec sqlmlutils.

  1. Sur l’ordinateur SQL Server, ouvrez RGui.exe en tant qu’administrateur. 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).

  2. À l’invite R, exécutez les commandes R suivantes :

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 ». Pour plus d’informations, consultez RDocumentation pour le package de base.

Si vous pensez que les packages sont déjà installés, vérifiez la liste des packages installés en exécutant installed.packages().

Étapes suivantes