Machine Learning Services (R, Python) dans SQL Server 2017Machine Learning Services (R, Python) in SQL Server 2017

S’APPLIQUE À : ouiSQL Server (Windows uniquement) nonAzure SQL Database nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server (Windows only) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL Server 2017 Machine Learning Services est un module complémentaire à une instance du moteur de base de données, utilisé pour l’exécution de code R et Python sur SQL Server.SQL Server 2017 Machine Learning Services is an add-on to a database engine instance, used for executing R and Python code on SQL Server. Code s’exécute dans une infrastructure d’extensibilité, isolé des processus de moteur de base, mais totalement disponibles pour les données relationnelles comme des procédures stockées, en tant que script T-SQL qui contient des instructions de R ou Python ou en tant que code R ou Python contenant T-SQL.Code runs in an extensibility framework, isolated from core engine processes, but fully available to relational data as stored procedures, as T-SQL script containing R or Python statements, or as R or Python code containing T-SQL.

Si vous avez utilisé précédemment SQL Server 2016 R Services, Machine Learning Services dans SQL Server 2017 est la nouvelle génération de prise en charge de R, avec les versions mises à jour de base R, RevoScaleR, MicrosoftML, et autres bibliothèques introduites en 2016.If you previously used SQL Server 2016 R Services, Machine Learning Services in SQL Server 2017 is the next generation of R support, with updated versions of base R, RevoScaleR, MicrosoftML, and other libraries introduced in 2016.

Dans la base de données SQL Azure, Machine Learning Services (avec R) est actuellement en version préliminaire publique.In Azure SQL Database, Machine Learning Services (with R) is currently in public preview.

La proposition de valeur de clé de Machine Learning Services est la puissance de son entreprise R et les packages Python pour fournir une analytique avancée à l’échelle et la possibilité de définir des calculs et traitement à l’emplacement des données, éliminant la nécessité pour extraire les données entre le réseau.The key value proposition of Machine Learning Services is the power of its enterprise R and Python packages to deliver advanced analytics at scale, and the ability to bring calculations and processing to where the data resides, eliminating the need to pull data across the network.

ComponentsComponents

SQL Server 2017 prend en charge R et Python.SQL Server 2017 supports R and Python. Le tableau suivant décrit les composants.The following table describes the components.

ComposantComponent DescriptionDescription
Service SQL Server LaunchpadSQL Server Launchpad service Un service qui gère les communications entre les runtimes R et Python externes et l’instance du moteur de base de données.A service that manages communications between the external R and Python runtimes and the database engine instance.
Packages RR packages RevoScaleR est la bibliothèque principale pour évolutive fonctions R. dans cette bibliothèque sont parmi les plus couramment utilisées.RevoScaleR is the primary library for scalable R. Functions in this library are among the most widely used. Transformations de données et de manipulation, de synthèse statistique, de visualisation et de nombreuses formes de modélisation et les analyses sont trouvent dans ces bibliothèques.Data transformations and manipulation, statistical summarization, visualization, and many forms of modeling and analyses are found in these libraries. En outre, les fonctions dans ces bibliothèques distribuer automatiquement les charges de travail entre les cœurs disponibles pour le traitement parallèle, avec la possibilité de travailler sur des segments de données coordonnées et gérées par le moteur de calcul.Additionally, functions in these libraries automatically distribute workloads across available cores for parallel processing, with the ability to work on chunks of data that are coordinated and managed by the calculation engine.
MicrosoftML (R) ajoute des algorithmes d’apprentissage automatique pour créer des modèles personnalisés pour l’analyse de texte, l’analyse de l’image et l’analyse des sentiments.MicrosoftML (R) adds machine learning algorithms to create custom models for text analysis, image analysis, and sentiment analysis.
sqlRUtils fournit des fonctions d’assistance pour placer des scripts R dans une procédure stockée T-SQL, l’inscription d’une procédure stockée avec une base de données et l’exécution de la procédure stockée à partir d’un environnement de développement R.sqlRUtils provides helper functions for putting R scripts into a T-SQL stored procedure, registering a stored procedure with a database, and running the stored procedure from an R development environment.
olapR est de construction ou de l’exécution d’une requête MDX dans un script R.olapR is for building or executing an MDX query in R script.
Microsoft R Open (MRO)Microsoft R Open (MRO) MRO est open source distribution Microsoft de R. Le package et un interpréteur sont inclus.MRO is Microsoft's open-source distribution of R. The package and interpreter are included. Utilisez toujours la version de MRO installé par le programme d’installation.Always use the version of MRO installed by Setup.
Outils RR tools Invites de commandes et fenêtres de console R sont des outils standard dans une distribution de R.R console windows and command prompts are standard tools in an R distribution.
Exemples de R et scriptsR Samples and scripts Les packages RevoScaleR et R Open source incluent les jeux de données intégrées afin que vous pouvez créer et exécuter le script à l’aide de données préinstallées.Open-source R and RevoScaleR packages include built-in data sets so that you can create and run script using pre-installed data.
Packages PythonPython packages revoscalepy est la bibliothèque principale pour Python évolutive avec des fonctions de manipulation de données, de transformation, de visualisation et d’analyse.revoscalepy is the primary library for scalable Python with functions for data manipulation, transformation, visualization, and analysis.
microsoftml (Python) ajoute des algorithmes d’apprentissage automatique pour créer des modèles personnalisés pour l’analyse de texte, l’analyse de l’image et l’analyse des sentiments.microsoftml (Python) adds machine learning algorithms to create custom models for text analysis, image analysis, and sentiment analysis.
Outils PythonPython tools L’outil de ligne de commande Python intégré est utile pour les tests ad hoc et tâches.The built-in Python command line tool is useful for ad hoc testing and tasks.
AnacondaAnaconda Anaconda est une distribution open source de Python et les packages essentiels.Anaconda is an open-source distribution of Python and essential packages.
Scripts et des exemples PythonPython samples and scripts Comme avec R, Python inclut des jeux de données intégrés et des scripts.As with R, Python includes built-in data sets and scripts.
Modèles préentraînés dans R et PythonPre-trained models in R and Python Modèles préentraînés sont créés pour les cas d’usage spécifiques et gérés par l’équipe d’ingénierie science des données chez Microsoft.Pre-trained models are created for specific use cases and maintained by the data science engineering team at Microsoft. Vous pouvez utiliser les modèles préformés comme-consiste à noter les sentiments négatifs positif dans le texte, ou à détecter les fonctionnalités dans des images, à l’aide de nouvelles entrées de données que vous fournissez.You can use the pre-trained models as-is to score positive-negative sentiment in text, or detect features in images, using new data inputs that you provide. Les modèles s’exécutent dans Machine Learning Services, mais ne peut pas être installés via le programme d’installation de SQL Server.The models run in Machine Learning Services, but cannot be installed through SQL Server Setup. Pour plus d’informations, consultez installation préentraîné modèles d’apprentissage sur SQL Server.For more information, see Install pre-trained machine learning models on SQL Server.

À l’aide de SQL MLSUsing SQL MLS

Analystes et les développeurs ont souvent le code qui s’exécute sur une instance de SQL Server locale.Developers and analysts often have code running on top of a local SQL Server instance. En ajoutant des Services Machine Learning et l’activation de l’exécution du script externe, vous avez la possibilité d’exécuter du code R et Python dans les modalités de SQL Server : encapsulant le script dans les procédures stockées, stocker des modèles dans une table SQL Server ou combinaison de T-SQL et des fonctions R ou Python dans les requêtes.By adding Machine Learning Services and enabling external script execution, you gain the ability to run R and Python code in SQL Server modalities: wrapping script in stored procedures, storing models in a SQL Server table, or combining T-SQL and R or Python functions in queries.

L’exécution du script se trouve dans les limites du modèle de sécurité des données : les autorisations sur la base de données relationnel constituent la base d’accès aux données dans votre script.Script execution is within the boundaries of the data security model: permissions on the relational database are the basis of data access in your script. Un utilisateur exécute le script R ou Python ne doit pas être en mesure d’utiliser toutes les données qui ne sont pas accessible par l’utilisateur dans une requête SQL.A user running R or Python script should not be able to use any data that could not be accessed by that user in a SQL query. Vous avez besoin de la lecture de la base de données standard et autorisations d’écriture, ainsi qu’une autorisation supplémentaire pour exécuter le script externe.You need the standard database read and write permissions, plus an additional permission to run external script. Modèles et le code que vous écrivez pour les données relationnelles sont encapsulées dans des procédures stockées, sérialisés dans un format binaire et stockés dans une table ou chargés à partir du disque, si vous sérialisiez le flux d’octets bruts dans un fichier.Models and code that you write for relational data are wrapped in stored procedures, or serialized to a binary format and stored in a table, or loaded from disk if you serialized the raw byte stream to a file.

L’approche la plus courante pour la base de données analytique consiste à utiliser sp_execute_external_script, en passant de script R ou Python comme paramètre d’entrée.The most common approach for in-database analytics is to use sp_execute_external_script, passing R or Python script as an input parameter.

Interactions client-serveur classique sont une autre approche.Classic client-server interactions are another approach. À partir de n’importe quel client station de travail avec un IDE, vous pouvez installer Microsoft R Client ou bibliothèques Pythonet ensuite écrire du code qui exécute un push de l’exécution (appelé un calcul à distance contexte) aux données et aux opérations à un serveur SQL distant.From any client workstation that has an IDE, you can install Microsoft R Client or the Python libraries, and then write code that pushes execution (referred to as a remote compute context) to data and operations to a remote SQL Server.

Enfin, si vous utilisez un serveur autonome et l’édition développeur, vous pouvez créer des solutions sur une station de travail cliente à l’aide de la même interpréteurs et des bibliothèques et déployer le code de production sur SQL Server Machine Learning Services (en base de données).Finally, if you are using a standalone server and the Developer edition, you can build solutions on a client workstation using the same libraries and interpreters, and then deploy production code on SQL Server Machine Learning Services (In-Database).

La prise en mainHow to get started

Étape 1 : Installer le logicielStep 1: Install the software

Étape 2 : Configurer un outil de développementStep 2: Configure a development tool

Les scientifiques des données utilisent généralement R ou Python sur leur propre station de travail d’ordinateur portable ou de développement, pour Explorer les données et de créer et de régler des modèles prédictifs jusqu'à ce qu’un bon modèle prédictif est établie.Data scientists typically use R or Python on their own laptop or development workstation, to explore data, and build and tune predictive models until a good predictive model is achieved. Avec l’analytique en base de données dans SQL Server, il est inutile de modifier ce processus.With in-database analytics in SQL Server, there is no need to change this process. Une fois l’installation terminée, vous pouvez exécuter le code R ou Python sur SQL Server localement et à distance.After installation is complete, you can run R or Python code on SQL Server locally and remotely.

rsql_keyscenario2

  • Utiliser l’IDE que vous préférez.Use the IDE you prefer. Vous pouvez lier les bibliothèques R et Python à votre outil de développement favori.You can link the R and Python libraries to your development tool of choice. Pour plus d’informations, consultez configurer les outils R et configurer Python tools.For more information, see Set up R tools and Set up Python tools.

  • Travailler à distance ou localement.Work remotely or locally. Les scientifiques des données peuvent se connecter à SQL Server et importer les données au client pour une analyse locale, comme d’habitude.Data scientists can connect to SQL Server and bring the data to the client for local analysis, as usual. Toutefois, une meilleure solution consiste à utiliser le RevoScaleR ou revoscalepy API pour envoyer des calculs à l’ordinateur SQL Server, évitant ainsi le déplacement de données coûteux et non sécurisé.However, a better solution is to use the RevoScaleR or revoscalepy APIs to push computations to the SQL Server computer, avoiding costly and insecure data movement.

  • Incorporer des scripts R ou Python dans les procédures stockées SQL Server.Embed R or Python scripts in SQL Server stored procedures. Lorsque votre code est entièrement optimisé l’encapsuler dans une procédure stockée pour éviter le déplacement des données inutiles et optimiser les tâches de traitement des données.When your code is fully optimized, wrap it in a stored procedure to avoid unnecessary data movement and optimize data processing tasks.

Étape 3 : Écrire votre premier scriptStep 3: Write your first script

Appeler des fonctions R ou Python à partir de dans le script T-SQL :Call R or Python functions from within T-SQL script:

Choisir le meilleur langage pour la tâche.Choose the best language for the task. R est idéal pour les calculs statistiques qui sont difficiles à implémenter à l’aide de SQL.R is best for statistical computations that are difficult to implement using SQL. Pour les opérations de jeu basé sur les données, exploiter la puissance de SQL Server pour optimiser les performances.For set-based operations over data, leverage the power of SQL Server to achieve maximum performance. Utiliser le moteur de base de données en mémoire pour effectuer des calculs très rapides sur les colonnes.Use the in-memory database engine for very fast computations over columns.

Étape 4 : Optimiser votre solutionStep 4: Optimize your solution

Lorsque le modèle est prêt à l’échelle sur les données d’entreprise, les spécialistes des données est souvent fonctionnement avec le développeur de base de données ou SQL pour optimiser les processus tels que :When the model is ready to scale on enterprise data, the data scientist often works with the DBA or SQL developer to optimize processes such as:

  • Ingénierie des caractéristiquesFeature engineering
  • Ingestion des données et la transformation des donnéesData ingestion and data transformation
  • Calcul de scoreScoring

En règle générale, les scientifiques des données à l’aide de R ont eu des problèmes de performances et de mise à l’échelle, surtout lorsque vous utilisez le jeu de données volumineux.Traditionally, data scientists using R have had problems with both performance and scale, especially when using large dataset. C’est parce que l’implémentation common runtime est monothread et qu’il peut accepter uniquement les jeux de données qui entrent dans la mémoire disponible sur l’ordinateur local.That is because the common runtime implementation is single-threaded and can accommodate only those data sets that fit into the available memory on the local computer. Intégration avec SQL Server Machine Learning Services fournit plusieurs fonctionnalités pour de meilleures performances, avec plus de données :Integration with SQL Server Machine Learning Services provides multiple features for better performance, with more data:

  • RevoScaleR: package R ce contient des implémentations de certaines fonctions R plus populaires, ont été repensées pour fournir un parallélisme et mise à l’échelle.RevoScaleR: This R package contains implementations of some of the most popular R functions, redesigned to provide parallelism and scale. Le package comprend également des fonctions qui améliorent encore davantage les performances et mise à l’échelle en envoyant des calculs à l’ordinateur SQL Server, lequel dispose généralement bien plus de mémoire et de puissance de calcul.The package also includes functions that further boost performance and scale by pushing computations to the SQL Server computer, which typically has far greater memory and computational power.

  • revoscalepy.revoscalepy. Cette bibliothèque Python implémente les fonctions plus populaires dans RevoScaleR, telles que les contextes de calcul distants et de nombreux algorithmes qui prennent en charge de traitement distribué.This Python library implements the most popular functions in RevoScaleR, such as remote compute contexts, and many algorithms that support distributed processing.

Pour plus d’informations sur les performances, consultez ce étude de cas de performances et R et les données d’optimisation.For more information about performance, see this performance case study and R and data optimization.

Étape 5 : Déployer et utiliserStep 5: Deploy and Consume

Une fois le script ou le modèle est prêt pour la production, un développeur de base de données peut incorporer le code ou le modèle dans une procédure stockée d’afin que le code R ou Python enregistré peut être appelé à partir d’une application.After the script or model is ready for production use, a database developer might embed the code or model in a stored procedure so that the saved R or Python code can be called from an application. Stockage et l’exécution du code R à partir de SQL Server présente de nombreux avantages : vous pouvez utiliser l’interface pratique de SQL Server, et tous les calculs ont lieu dans la base de données, évitant ainsi le déplacement de données inutiles.Storing and running R code from SQL Server has many benefits: you can use the convenient SQL Server interface, and all computations take place in the database, avoiding unnecessary data movement.

rsql_keyscenario1

  • Sécurisé et extensible.Secure and extensible. SQL Server utilise une nouvelle architecture d’extensibilité qui protège votre moteur de base de données et isole les sessions R et Python.SQL Server uses a new extensibility architecture that keeps your database engine secure and isolates R and Python sessions. Vous pouvez contrôler les utilisateurs qui peuvent exécuter des scripts, et vous pouvez spécifier les bases de données sont accessibles par le code.You also have control over the users who can execute scripts, and you can specify which databases can be accessed by code. Vous pouvez contrôler la quantité de ressources allouées au runtime, pour éviter que des calculs massifs mettent en péril les performances globales du serveur.You can control the amount of resources allocated to the runtime, to prevent massive computations from jeopardizing the overall server performance.

  • Planification et d’audit.Scheduling and auditing. Lorsque les tâches de script externe sont exécutées dans SQL Server, vous pouvez contrôler et auditer les données utilisées par les scientifiques de données.When external script jobs are run in SQL Server, you can control and audit the data used by data scientists. Vous pouvez également planifier des travaux et créer des workflows contenant des scripts R ou Python externes, comme vous planifiez tout autre travail T-SQL ou procédure stockée.You can also schedule jobs and author workflows containing external R or Python scripts, just like you would schedule any other T-SQL job or stored procedure.

Pour tirer parti de la gestion des ressources et les fonctionnalités de sécurité dans SQL Server, le processus de déploiement peut inclure ces tâches :To take advantage of the resource management and security features in SQL Server, the deployment process might include these tasks:

  • Conversion de votre code à une fonction qui peut exécuter de façon optimale dans une procédure stockéeConverting your code to a function that can run optimally in a stored procedure
  • Configuration de la sécurité et de verrouillage de packages utilisés par une tâche spécifiqueSetting up security and locking down packages used by a particular task
  • L’activation de la gouvernance des ressources (nécessite l’édition Enterprise)Enabling resource governance (requires the Enterprise edition)

Pour plus d’informations, consultez gouvernance des ressources pour R et gestion des packages R pour SQL Server.For more information, see Resource Governance for R and R Package Management for SQL Server.

Historique des versionsVersion history

SQL Server 2017 Machine Learning Services est la nouvelle génération de SQL Server 2016 R Services, améliorées pour inclure les Python.SQL Server 2017 Machine Learning Services is the next generation of SQL Server 2016 R Services, enhanced to include Python. Le tableau suivant est une liste complète de toutes les versions de produit, de la création à la version actuelle.The following table is a complete list of all product versions, from inception to the current release.

Nom de produitProduct name Version du moteurEngine version Date de publicationRelease date
SQL Server 2017 Machine Learning Services (en base de données)SQL Server 2017 Machine Learning Services (In-Database) R Server 9.2.1R Server 9.2.1
Python Server 9.2Python Server 9.2
Octobre 2017October 2017
SQL Server 2017 Machine Learning Server (autonome)SQL Server 2017 Machine Learning Server (Standalone) R Server 9.2.1R Server 9.2.1
Python Server 9.2Python Server 9.2
Octobre 2017October 2017
SQL Server 2016 R Services (en base de données)SQL Server 2016 R Services (In-Database) R Server 9.1R Server 9.1 Juillet 2017July 2017
SQL Server 2016 R Server (autonome)SQL Server 2016 R Server (Standalone) R Server 9.1R Server 9.1 Juillet 2017July 2017

Pour les versions de package par version, voir la version de la carte dans les composants de mise à niveau de R et Python.For package versions by release, see the version map in Upgrade R and Python components.

Portabilité de votre code personnalisé R et Python est résolue via les interpréteurs qui sont intégrées dans plusieurs produits et de la distribution de package.Portability of your custom R and Python code is addressed through package distribution and interpreters that are built into multiple products. Les packages qui sont fournis dans SQL Server sont également disponibles dans plusieurs autres produits et services Microsoft, y compris une version non SQL appelée Microsoft Machine Learning Server.The same packages that ship in SQL Server are also available in several other Microsoft products and services, including a non-SQL version called Microsoft Machine Learning Server.

Les clients gratuits comprenant notre interpréteurs R et Python sont Microsoft R Client et bibliothèques Python.Free clients that include our R and Python interpreters are Microsoft R Client and the Python libraries.

Sur Azure, interpréteurs et des packages R et Python de Microsoft sont également disponibles sur Azure Machine Learning, et les services Azure comme HDInsight, et machines virtuelles.On Azure, Microsoft's R and Python packages and interpreters are also available on Azure Machine Learning, and Azure services like HDInsight, and Azure virtual machines. Le Data Science Virtual Machine inclut une station de travail de développement entièrement équipé des outils à partir de plusieurs fournisseurs, ainsi que les bibliothèques et des interpréteurs de Microsoft.The Data Science Virtual Machine includes a fully equipped development workstation with tools from multiple vendors as well as the libraries and interpreters from Microsoft.

Voir aussiSee also

Installer SQL Server Machine Learning ServicesInstall SQL Server Machine Learning Services