Configurer un client de science des données pour le développement R sur SQL ServerSet up a data science client for R development on SQL Server

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

L’intégration de R est disponible dans SQL Server 2016 (et versions ultérieures) quand vous incluez l’option de langage R dans SQL Server 2016 R Services ou une installation Machine Learning Services (en base de données).R integration is available in SQL Server 2016 or later when you include the R language option in an SQL Server 2016 R Services or SQL Server Machine Learning Services (In-Database) installation.

Pour développer et déployer des solutions R pour SQL Server, installez Microsoft R Client sur votre station de travail de développement pour obtenir RevoScaleR ainsi que d’autres bibliothèques R.To develop and deploy R solutions for SQL Server, install Microsoft R Client on your development workstation to get RevoScaleR and other R libraries. La bibliothèque RevoScaleR, qui est également requise sur l’instance SQL Server distante, coordonne les demandes de traitement entre les deux systèmes.The RevoScaleR library, which is also required on the remote SQL Server instance, coordinates computing requests between both systems.

Cet article explique comment configurer une station de travail de développement de client R pour interagir avec une instance SQL Server distante activée pour le Machine Learning et l’intégration de R.In this article, learn how to configure an R client development workstation so that you can interact with a remote SQL Server enabled for machine learning and R integration. Après avoir effectué les étapes décrites dans cet article, vous aurez les mêmes bibliothèques R que celles disponibles sur SQL Server.After completing the steps in this article, you will have the same R libraries as those on SQL Server. Vous saurez également comment envoyer (push) les calculs d’une session R locale vers une session R à distance sur SQL Server.You will also know how to push computations from a local R session to a remote R session on SQL Server.

Composants client-serveurClient-server components

Pour valider l’installation, vous pouvez utiliser l’outil RGUI intégré comme décrit dans cet article ou lier les bibliothèques à RStudio ou à tout autre IDE que vous utilisez généralement.To validate the installation, you can use built-in RGUI tool as described in this article, or link the libraries to RStudio or any another IDE that you normally use.

Notes

Au lieu d’installer les bibliothèques clientes, vous pouvez également utiliser un serveur autonome comme client riche, option privilégiée par certains clients pour une utilisation dans des scénarios plus poussés.An alternative to client library installation is using a standalone server as a rich client, which some customers prefer for deeper scenario work. Un serveur autonome est entièrement découplé de SQL Server. Cependant, comme il possède les mêmes bibliothèques R, vous pouvez l’utiliser comme client pour l’analytique en base de données SQL Server.A standalone server is fully decoupled from SQL Server, but because it has the same R libraries, you can use it as a client for SQL Server in-database analytics. Vous pouvez également l’utiliser pour les tâches non liées à SQL et notamment pour importer et modéliser des données à partir d’autres plateformes de données.You can also use it for non-SQL-related work, including the ability to import and model data from other data platforms. Si vous installez un serveur autonome, vous pouvez trouver l’exécutable R à l’emplacement suivant : C:\Program Files\Microsoft SQL Server\140\R_SERVER.If you install a standalone server, you can find the R executable at this location: C:\Program Files\Microsoft SQL Server\140\R_SERVER. Pour valider votre installation, ouvrez une application console R afin d’exécuter des commandes à l’aide de R.exe (disponible à cet emplacement).To validate your installation, open an R console app to run commands using the R.exe at that location.

Outils couramment utilisésCommonly used tools

Que vous soyez un développeur R qui débute avec SQL ou un développeur SQL qui découvre R et l’analytique en base de données, vous aurez besoin d’un outil de développement R et d’un éditeur de requête T-SQL comme SQL Server Management Studio (SSMS) pour exploiter toutes les fonctionnalités de l’analytique en base de données.Whether you are an R developer new to SQL, or a SQL developer new to R and in-database analytics, you will need both an R development tool and a T-SQL query editor such as SQL Server Management Studio (SSMS) to exercise all of the capabilities of in-database analytics.

Pour les scénarios de développement R simples, vous pouvez utiliser l’exécutable RGUI fourni avec la distribution R de base dans MRO et SQL Server.For simple R development scenarios, you can use the RGUI executable, bundled in the base R distribution in MRO and SQL Server. Cet article explique comment utiliser RGUI pour les sessions R locales et distantes.This article explains how to use RGUI for both local and remote R sessions. Pour améliorer la productivité, vous devez utiliser un IDE complet, tel que RStudio ou Visual Studio.For improved productivity, you should use a full-featured IDE such as RStudio or Visual Studio.

Disponible en téléchargement distinct, SSMS permet de créer et d’exécuter des procédures stockées sur SQL Server, y compris celles contenant du code R.SSMS is a separate download, useful for creating and running stored procedures on SQL Server, including those containing R code. Presque tout le code R que vous écrivez dans un environnement de développement peut être incorporé à une procédure stockée.Almost any R code that you write in a development environment can be embedded in a stored procedure. Vous pouvez consulter d’autres didacticiels pour en savoir plus sur SSMS et le code R incorporé.You can step through other tutorials to learn about SSMS and embedded R.

1 - Installer des packages R1 - Install R packages

Les packages R de Microsoft sont disponibles dans plusieurs produits et services.Microsoft's R packages are available in multiple products and services. Sur une station de travail locale, nous vous recommandons d’installer Microsoft R Client.On a local workstation, we recommend installing Microsoft R Client. R Client fournit RevoScaleR, MicrosoftML, SQLRUtils et d’autres packages R.R Client provides RevoScaleR, MicrosoftML, SQLRUtils, and other R packages.

  1. Téléchargez Microsoft R Client.Download Microsoft R Client.

  2. Dans l’Assistant Installation, acceptez ou modifiez le chemin d’installation par défaut, acceptez ou modifiez la liste des composants et acceptez les termes du contrat de licence Microsoft R Client.In the installation wizard, accept or change default installation path, accept or change the components list, and accept the Microsoft R Client license terms.

Une fois l’installation terminée, un écran de bienvenue vous présente le produit et la documentation.When installation is finished, a welcome screen introduces you to the product and documentation.

  1. Créez une variable d’environnement MKL_CBWR pour garantir la cohérence de la sortie des calculs d’Intel Math Kernel Library (MKL).Create an MKL_CBWR system environment variable to ensure consistent output on Intel Math Kernel Library (MKL) calculations.
  • Dans le Panneau de configuration, cliquez sur Système et sécurité > Système > Paramètres système avancés > Variables d’environnement.In Control Panel, click System and Security > System > Advanced System Settings > Environment Variables.
  • Créez une nouvelle variable système nommée MKL_CBWR, avec une valeur définie sur AUTO.Create a new System variable named MKL_CBWR, with a value set to AUTO.

2 - Localiser les exécutables2 - Locate executables

Localisez et listez le contenu du dossier d’installation pour vérifier que R.exe, RGUI et les autres packages sont installés.Locate and list the contents of the installation folder to confirm that R.exe, RGUI, and other packages are installed.

  1. Dans l’Explorateur de fichiers, ouvrez le dossier C:\Program Files\Microsoft\R Client\R_SERVER\bin pour vérifier l’emplacement de R.exe.In File Explorer, open the C:\Program Files\Microsoft\R Client\R_SERVER\bin folder to confirm the location of R.exe.

  2. Ouvrez le sous-dossier x64 pour vérifier la présence de RGUI.Open the x64 subfolder to confirm RGUI. Vous allez utiliser cet outil à l’étape suivante.You will use this tool in the next step.

  3. Ouvrez C:\Program Files\Microsoft\R Client\R_SERVER\library pour passer en revue la liste des packages installés avec R Client, y compris RevoScaleR, MicrosoftML et d’autres.Open C:\Program Files\Microsoft\R Client\R_SERVER\library to review the list of packages installed with R Client, including RevoScaleR, MicrosoftML, and others.

3 - Démarrer RGUI3 - Start RGUI

Lorsque vous installez R avec SQL Server, vous bénéficiez des mêmes outils R standard pour toutes les installations de base de R, comme RGui, Rterm et ainsi de suite.When you install R with SQL Server, you get the same R tools that are standard to any base installation of R, such as RGui, Rterm, and so forth. Ces outils sont légers. Ils sont utiles pour vérifier les informations de package et de bibliothèque, exécuter des commandes ou des scripts ad hoc ou suivre des didacticiels.These tools are lightweight, useful for checking package and library information, running ad hoc commands or script, or stepping through tutorials. Vous pouvez utiliser ces outils pour accéder aux informations de version de R et vérifier la connectivité.You can use these tools to get R version information and confirm connectivity.

  1. Ouvrez C:\Program Files\Microsoft\R Client\R_SERVER\bin\x64, puis double-cliquez sur RGui pour démarrer une session R à l’aide d’une invite de commandes R.Open C:\Program Files\Microsoft\R Client\R_SERVER\bin\x64 and double-click RGui to start an R session with an R command prompt.

Lorsque vous démarrez une session R à partir d’un dossier de programme Microsoft, plusieurs packages, y compris RevoScaleR, se chargent automatiquement.When you start an R session from a Microsoft program folder, several packages, including RevoScaleR, load automatically.

  1. Entrez print(Revo.version) dans l’invite de commandes pour retourner les informations sur la version du package RevoScaleR.Enter print(Revo.version) at the command prompt to return RevoScaleR package version information. Vous devez disposer de la version 9.2.1 ou 9.3.0 pour RevoScaleR.You should have version 9.2.1 or 9.3.0 for RevoScaleR.

  2. Entrez search() dans l’invite R pour obtenir la liste des packages installés.Enter search() at the R prompt for a list of installed packages.

    Informations de version lors du chargement de RVersion information when loading R

4 - Obtenir les autorisations SQL4 - Get SQL permissions

Dans R Client, le traitement de R est limité à deux threads et aux données en mémoire.In R Client, R processing is capped at two threads and in-memory data. Pour un traitement évolutif à l’aide de plusieurs cœurs et jeux de données volumineux, vous pouvez déplacer l’exécution (appelée contexte de calcul) vers les jeux de données et la puissance de calcul d’une instance de SQL Server distante.For scalable processing using multiple cores and large data sets, you can shift execution (referred to as compute context) to the data sets and computational power of a remote SQL Server instance. Il s’agit de l’approche recommandée pour l’intégration du client à une instance de SQL Server en production, et vous aurez besoin d’autorisations et d’informations de connexion pour que ça fonctionne.This is the recommended approach for client integration with a production SQL Server instance, and you will need permissions and connection information to make it work.

Pour vous connecter à une instance de SQL Server afin d’exécuter des scripts et de charger des données, vous devez disposer d’un compte de connexion valide sur le serveur de base de données.To connect to an instance of SQL Server to run scripts and upload data, you must have a valid login on the database server. Vous pouvez utiliser un compte de connexion SQL ou l’authentification Windows intégrée.You can use either a SQL login or integrated Windows authentication. Nous recommandons généralement d’utiliser l’authentification Windows intégrée. Il est cependant plus simple d’utiliser une connexion SQL dans certains scénarios, en particulier quand votre script contient des chaînes de connexion à des données externes.We generally recommend that you use Windows integrated authentication, but using the SQL login is simpler for some scenarios, particularly when your script contains connection strings to external data.

Le compte utilisé pour exécuter le code doit disposer au minimum d’une autorisation de lecture à partir des bases de données avec lesquelles vous travaillez et de l’autorisation spéciale EXECUTE ANY EXTERNAL SCRIPT.At a minimum, the account used to run code must have permission to read from the databases you are working with, plus the special permission EXECUTE ANY EXTERNAL SCRIPT. La plupart des développeurs ont également besoin des autorisations permettant de créer des procédures stockées et d’écrire des données dans des tables contenant des données d’entraînement ou des données notées.Most developers also require permissions to create stored procedures, and to write data into tables containing training data or scored data.

Demandez à l’administrateur de base de données de configurer les autorisations suivantes pour votre compte dans la base de données dans laquelle vous utilisez R :Ask the database administrator to configure the following permissions for your account, in the database where you use R:

  • EXECUTE ANY EXTERNAL SCRIPT pour exécuter un script R sur le serveur.EXECUTE ANY EXTERNAL SCRIPT to run R script on the server.
  • Privilèges db_datareader pour exécuter les requêtes utilisées pour l’entraînement du modèle.db_datareader privileges to run the queries used for training the model.
  • db_datawriter pour écrire les données d’entraînement ou les données notées.db_datawriter to write training data or scored data.
  • db_owner pour créer des objets tels que des procédures stockées, des tables et des fonctions.db_owner to create objects such as stored procedures, tables, functions. Vous avez également besoin de db_owner pour créer des exemples de base de données et des bases de données de test.You also need db_owner to create sample and test databases.

Si votre code nécessite des packages qui ne sont pas installés par défaut avec SQL Server, demandez à l’administrateur de base de données de prévoir l’installation des packages avec l’instance.If your code requires packages that are not installed by default with SQL Server, arrange with the database administrator to have the packages installed with the instance. SQL Server est un environnement sécurisé, qui impose des restrictions quant à l’emplacement d’installation des packages.SQL Server is a secured environment and there are restrictions on where packages can be installed. Pour plus d’informations, consultez la page Install new R packages on SQL Server (Installer de nouveaux packages R sur SQL Server).For more information, see Install new R packages on SQL Server.

5 - Tester les connexions5 - Test connections

En guise d’étape de vérification, utilisez RGUI et RevoScaleR pour vérifier la connectivité au serveur distant.As a verification step, use RGUI and RevoScaleR to confirm connectivity to the remote server. SQL Server doit être activé pour les connexions à distance et vous devez disposer des autorisations requises, y compris des informations de connexion utilisateur et une base de données à laquelle se connecter.SQL Server must be enabled for remote connections and you must have permissions, including a user login and a database to connect to.

Les étapes suivantes nécessitent la base de données de démonstration NYCTaxi_Sample et l’authentification Windows.The following steps assume the demo database, NYCTaxi_Sample, and Windows authentication.

  1. Ouvrez RGUI sur la station de travail cliente.Open RGUI on the client workstation. Par exemple, accédez à ~\Program Files\Microsoft SQL Server\140\R_SERVER\bin\x64 et double-cliquez sur RGui. exe pour le démarrer.For example, go to ~\Program Files\Microsoft SQL Server\140\R_SERVER\bin\x64 and double-click RGui.exe to start it.

  2. RevoScaleR se charge automatiquement.RevoScaleR loads automatically. Vérifiez que RevoScaleR est opérationnel en exécutant la commande suivante : print(Revo.version)Confirm RevoScaleR is operational by running this command: print(Revo.version)

  3. Entrez le script de démonstration qui s’exécute sur le serveur distant.Enter demo script that executes on the remote server. Vous devez modifier l’exemple de script suivant pour donner un nom valide à une instance de SQL Server distante.You must modify the following sample script to include a valid name for a remote SQL Server instance. Cette session démarre comme une session locale, mais la fonction rxSummary s’exécute sur l’instance de SQL Server distante.This session begins as a local session, but the rxSummary function executes on the remote SQL Server instance.

# Define a connection. Replace server with a valid server name.
connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true"

# Specify the input data in a SQL query.
sampleQuery <-"SELECT DISTINCT TOP(100) tip_amount FROM [dbo].nyctaxi_sample ORDER BY tip_amount DESC;"

# Define a remote compute context based on the remote server.
cc <-RxInSqlServer(connectionString=connStr)

# Execute the function using the remote compute context.
rxSummary(formula = ~ ., data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr), computeContext=cc)

Résultats :Results:

Ce script se connecte à une base de données sur le serveur distant, fournit une requête, crée une instruction cc de contexte de calcul pour l’exécution de code à distance, puis fournit la fonction RevoScaleR rxSummary pour retourner un résumé statistique des résultats de la requête.This script connects to a database on the remote server, provides a query, creates a compute context cc instruction for remote code execution, then provides the RevoScaleR function rxSummary to return a statistical summary of the query results.

  Call:
rxSummary(formula = ~., data = RxSqlServerData(sqlQuery = sampleQuery, 
    connectionString = connStr), computeContext = cc)

Summary Statistics Results for: ~.
Data: RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr) (RxSqlServerData Data Source)
Number of valid observations: 100 

Name       Mean   StdDev   Min Max ValidObs MissingObs
tip_amount 63.245 31.61087 36  180 100      0     
  1. Obtenez et spécifiez le contexte de calcul.Get and set the compute context. Une fois que vous avez défini un contexte de calcul, il reste actif pendant la durée de la session.Once you set a compute context, it remains in effect for the duration of the session. Si vous ne savez pas si le calcul s’effectue en local ou à distance, exécutez la commande suivante. Les résultats qui spécifient une chaîne de connexion indiquent un contexte de calcul distant.If you aren't sure whether computation is local or remote, run the following command to find out. Results that specify a connection string indicate a remote compute context.
# Return the current compute context.
rxGetComputeContext()

# Revert to a local compute context.
rxSetComputeContext("local")
rxGetComputeContext()

# Switch back to remote.
connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true"
cc <-RxInSqlServer(connectionString=connStr)
rxSetComputeContext(cc)
rxGetComputeContext()
  1. Retournez les informations sur les variables dans la source de données, y compris le nom et le type.Return information about variables in the data source, including name and type.
rxGetVarInfo(data = inDataSource)

Les résultats incluent 23 variables.Results include 23 variables.

  1. Générez un nuage de points pour déterminer s’il existe des dépendances entre deux variables.Generate a scatter plot to explore whether there are dependencies between two variables.
# Set the connection string. Substitute a valid server name for the placeholder.
connStr <- "Driver=SQL Server;Server=<your database name>;Database=NYCTaxi_Sample;Trusted_Connection=true"

# Specify a query on the nyctaxi_sample table.
# For variables on each axis, remove nulls. Use a WHERE clause and <> to do this.
sampleQuery <-"SELECT DISTINCT TOP 100 * from [dbo].[nyctaxi_sample] WHERE fare_amount <> '' AND  tip_amount <> ''"
cc <-RxInSqlServer(connectionString=connStr)

# Generate a scatter plot.
rxLinePlot(fare_amount ~ tip_amount, data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr, computeContext=cc), type="p")

La capture d’écran suivante montre l’entrée et le nuage de points en sortie.The following screenshot shows the input and scatter plot output.

Nuage de points dans RGUIScatter plot in RGUI

Pour les projets de développement importants et soutenus, vous devez installer un environnement de développement intégré (IDE).For sustained and serious development projects, you should install an integrated development environment (IDE). Les outils de SQL Server et les outils intégrés à R ne sont pas équipés pour un développement R lourd.SQL Server tools and the built-in R tools are not equipped for heavy R development. Une fois que vous avez un code fonctionnel, vous pouvez le déployer en tant que procédure stockée pour l’exécuter sur SQL Server.Once you have working code, you can deploy it as a stored procedure for execution on SQL Server.

Faites pointer votre IDE vers les bibliothèques R locales : base R, RevoScaleR, etc.Point your IDE to the local R libraries: base R, RevoScaleR, and so forth. L’exécution de charges de travail sur une instance de SQL Server distante se produit pendant l’exécution du script, quand votre script appelle un contexte de calcul distant sur SQL Server, en accédant aux données et aux opérations de ce serveur.Running workloads on a remote SQL Server occurs during script execution, when your script invokes a remote compute context on SQL Server, accessing data and operations on that server.

RStudioRStudio

Lorsque vous utilisez RStudio, vous pouvez configurer l’environnement pour utiliser les bibliothèques R et les exécutables qui correspondent à celles d’une instance de SQL Server distante.When using RStudio, you can configure the environment to use the R libraries and executables that correspond to those on a remote SQL Server.

  1. Vérifiez la version des packages R installés sur SQL Server.Check R package versions installed on SQL Server. Pour plus d’informations, consultez Récupérer les informations du package R.For more information, see Get R package information.

  2. Installez Microsoft R Client ou l’une des options de serveur autonome pour ajouter RevoScaleR et d’autres packages R, y compris la distribution R de base utilisée par votre instance de SQL Server.Install Microsoft R Client or one of the standalone server options to add RevoScaleR and other R packages, including the base R distribution used by your SQL Server instance. Choisissez une version au même niveau ou d’un niveau inférieur (les packages sont à compatibilité descendante) qui fournit les mêmes versions de package que celles qui se trouvent sur le serveur.Choose a version at the same level or lower (packages are backward compatible) that provides the same package versions as on the server. Pour plus d’informations sur la version, consultez la carte des versions dans l’article suivant : Mise à niveau des éléments R et Python.For version information, see the version map in this article: Upgrade R and Python components.

  3. Dans RStudio, mettez à jour votre chemin R pour qu’il pointe vers l’environnement R qui fournit RevoScaleR, Microsoft R Open et d’autres packages Microsoft.In RStudio, update your R path to point to the R environment providing RevoScaleR, Microsoft R Open, and other Microsoft packages.

  • Pour une installation du client R, accédez au dossier C:\Program Files\Microsoft\R Client\R_SERVER\bin\x64For an R Client installation, look for C:\Program Files\Microsoft\R Client\R_SERVER\bin\x64
  • Pour un serveur autonome, accédez à C:\Program Files\Microsoft SQL Server\140\R_SERVER\Library ou C:\Program Files\Microsoft SQL Server\130\R_SERVER\LibraryFor a standalone server, look for C:\Program Files\Microsoft SQL Server\140\R_SERVER\Library or C:\Program Files\Microsoft SQL Server\130\R_SERVER\Library
  1. Fermez, puis ouvrez à nouveau RStudio.Close and then open RStudio.

Lorsque vous rouvrez RStudio, l’exécutable R de R Client (ou serveur autonome) est le moteur R par défaut.When you reopen RStudio, the R executable from R Client (or standalone server) is the default R engine.

Outils R pour Visual Studio (RTVS)R Tools for Visual Studio (RTVS)

Si vous ne disposez pas déjà d’un IDE dédié à R, nous vous recommandons Outils R pour Visual Studio.If you don't already have a preferred IDE for R, we recommend R Tools for Visual Studio.

Connexion à SQL Server depuis RTVSConnect to SQL Server from RTVS

Cet exemple utilise Visual Studio 2017 Community Edition, avec la charge de travail de science des données installée.This example uses Visual Studio 2017 Community Edition, with the data science workload installed.

  1. Dans le menu File (Fichier), sélectionnez New (Nouveau), puis Project (Projet).From the File menu, select New and then select Project.

  2. Le volet gauche contient une liste de modèles préinstallés.The left-hand pane contains a list of preinstalled templates. Cliquez sur R et sélectionnez R Project (Projet R).Click R, and select R Project. Dans la zone Name (Nom), entrez dbtest et cliquez sur OK.In the Name box, type dbtest and click OK.

Visual Studio crée un dossier de projet et un fichier de script par défaut, Script.R.Visual Studio creates a new project folder and a default script file, Script.R.

  1. Entrez .libPaths() sur la première ligne du fichier de script, puis appuyez sur CTRL + ENTRÉE.Type .libPaths() on the first line of the script file, and then press CTRL + ENTER.

Le chemin d’accès à la bibliothèque R actuelle doit s’afficher dans la fenêtre interactive R.The current R library path should be displayed in the R Interactive window.

  1. Cliquez sur le menu R Tools (Outils R) et sélectionnez Windows (Fenêtres) pour afficher la liste des autres fenêtres spécifiques à R que vous pouvez afficher dans votre espace de travail.Click the R Tools menu and select Windows to see a list of other R-specific windows that you can display in your workspace.
  • Affichez l’aide sur les packages dans la bibliothèque actuelle en appuyant sur CTRL + 3.View help on packages in the current library by pressing CTRL + 3.
  • Pour afficher les variables R dans l’Explorateur de variables, appuyez sur CTRL + 8.See R variables in the Variable Explorer, by pressing CTRL + 8.

Étapes suivantesNext steps

Deux didacticiels différents incluent des exercices qui vous permettent de transmettre le contexte de calcul entre une instance de SQL Server locale et distante.Two different tutorials include exercises so that you can practice switching the compute context from local to a remote SQL Server instance.