Installer SQL Server 2022 Machine Learning Services (Python et R) sur Windows
S’applique à : SQL Server 2022 (16.x)
Cet article explique comment installer SQL Server 2022 Machine Learning Services sur Windows. Vous pouvez utiliser Machine Learning Services pour exécuter des scripts Python et R dans la base de données.
Notes
Ces instructions sont spécifiques à SQL Server 2022 (16.x) sur Windows. Pour installer SQL Server Machine Learning Services sur Windows pour SQL Server 2016 (13.x), SQL Server 2017 (14.x) ou SQL Server 2019 (15.x), consultez Installer SQL Server Machine Learning Services (Python et R) sur Windows.
Pour Linux, consultez Installer SQL Server Machine Learning Services (Python et R) sur Linux.
Liste de vérification de la préinstallation
Une instance du moteur de base de données est nécessaire. Vous ne pouvez pas installer uniquement les fonctionnalités Python ou R, même si vous pouvez les ajouter de façon incrémentielle à une instance existante.
Pour la continuité de l’activité, les groupes de disponibilité Always On sont pris en charge par Machine Learning Services. Installez Machine Learning Services et configurez des packages sur chaque nœud.
L’installation de Machine Learning Services est également prise en charge sur une instance de cluster de basculement Always On dans SQL Server 2019 et versions ultérieures.
N’installez pas Machine Learning Services sur un contrôleur de domaine. La partie du programme d’installation dédiée à Machine Learning Services échouerait.
L’installation côte à côte avec d’autres versions de Python et R est prise en charge, mais n’est pas recommandée. Elle est prise en charge, car l’instance SQL Server utilise ses propres copies des distributions R et Anaconda open source. Elle n’est pas recommandée, car l’exécution de code utilisant Python et R sur un ordinateur autre que SQL Server peut entraîner des problèmes :
- L’utilisation d’une bibliothèque et de fichiers exécutables différents entraîne des résultats incohérents par rapport à ce que vous exécutez dans SQL Server.
- SQL Server ne peut pas gérer les scripts R et Python qui s’exécutent dans des bibliothèques externes, ce qui entraîne une contention de ressources.
Important
Une fois l’installation terminée, veillez à suivre les étapes post-configuration décrites dans cet article. Ces étapes peuvent comprendre l’activation de SQL Server pour utiliser des scripts externes. Les modifications de configuration nécessitent généralement un redémarrage de l’instance ou du service Launchpad.
Obtenir le média d’installation
L’emplacement de téléchargement pour SQL Server dépend de l’édition :
Éditions SQL Server Entreprise, Standard et Express. Ces éditions sont concédées sous licence pour une utilisation en production. Pour les éditions Entreprise et Standard, contactez votre fournisseur de logiciels afin d’obtenir le support d’installation. Vous trouverez des informations sur l’achat et un annuaire de partenaires de Microsoft sur le site web d’achat de Microsoft.
Exécuter le programme d’installation
Dans le cas d'une installation locale, vous devez exécuter le programme d'installation en qualité d'administrateur. Si vous installez SQL Server à partir d'un partage distant, vous devez utiliser un compte de domaine qui a les autorisations de lecture et d'exécution sur le partage distant.
Si vous rencontrez des erreurs d’installation, consultez le journal récapitulatif dans le dossier de journal du démarrage du programme d’installation (par exemple, %ProgramFiles%\Microsoft SQL Server\160\Setup Bootstrap\Log\Summary.txt
).
Démarrez l’Assistant Installation de SQL Server 2022.
Sous l’onglet Installation, sélectionnez Nouvelle installation autonome de SQL Server ou ajout de fonctionnalités à une installation existante.
Dans la page Sélection de fonctionnalités , sélectionnez les options suivantes :
Services Moteur de base de données
Pour utiliser R ou Python avec SQL Server, vous devez installer une instance du moteur de base de données. Vous pouvez utiliser l’instance par défaut ou une instance nommée.
Machine Learning Services et langage
Cette option installe les services de base de données qui prennent en charge l’exécution de scripts R et Python.
Cette capture d’écran montre les fonctionnalités d’instance minimales à vérifier quand vous installez SQL Server 2022 (16.x) Machine Learning Services.
Installer les runtimes et les packages
À compter de SQL Server 2022 (16.x), les runtimes pour R, Python et Java ne sont plus fournis ou installés avec le programme d’installation de SQL Server. Utilisez plutôt les sections suivantes pour installer vos runtimes et packages personnalisés.
Configurer la prise en charge de R
Installer le runtime R
Téléchargez et installez la version la plus récente de R 4.2 pour Windows.
Installez les dépendances pour
CompatibilityAPI
etRevoScaleR
. À partir du terminal R de la version que vous avez installée, exécutez les commandes suivantes :# R Terminal install.packages("iterators") install.packages("foreach") install.packages("R6") install.packages("jsonlite")
Téléchargez et installez la dernière version des packages
CompatibilityAPI
etRevoScaleR
:install.packages("https://aka.ms/sqlml/r4.2/windows/CompatibilityAPI_1.1.0.zip", repos=NULL) install.packages("https://aka.ms/sqlml/r4.2/windows/RevoScaleR_10.0.1.zip", repos=NULL)
Configurer le runtime R avec SQL Server
Configurez le runtime R installé avec SQL Server. Vous pouvez changer la version par défaut avec l’utilitaire de ligne de commande
RegisterRext.exe
. L’utilitaire se trouve dans un dossier d’application R qui dépend de l’installation. En règle générale, il est dans%ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64
.Vous pouvez utiliser le script suivant pour configurer le runtime R installé à partir de l’emplacement du dossier d’installation de
RegisterRext.exe
. Le nom de l’instance estMSSQLSERVER
pour une instance par défaut de SQL Server, ou celui d’une instance nommée de SQL Server..\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"MSSQLSERVER"
Si vous configurez une instance nommée de SQL Server que vous feriez normalement référence à « .\SQLEXPRESS » ou « MACHINENAME\SQLEXPRESS », incluez uniquement le nom de l'instance. Par exemple :
.\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"SQLEXPRESS"
Avec SQL Server Management Studio (SSMS) ou Azure Data Studio, connectez-vous à l’instance où vous avez installé SQL Server Machine Learning Services. Sélectionnez Nouvelle requête pour ouvrir une fenêtre de requête, puis exécutez la commande suivante pour activer la fonctionnalité de script externe :
EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE
Si vous avez déjà activé la fonctionnalité pour un autre langage, vous n’avez pas besoin d’exécuter
RECONFIGURE
une deuxième fois pour R. La plateforme d’extensibilité sous-jacente prend en charge les deux langages. En guise de contrôle, vérifiez que la commande suivante retourne1
pourconfig_value
etrun_value
:EXEC sp_configure 'external scripts enabled';
Redémarrez le service SQL Server. Le redémarrage du service entraîne également le redémarrage automatique du service SQL Server Launchpad associé.
Pour redémarrer le service, vous pouvez cliquer avec le bouton droit sur la commande Redémarrer de l’instance dans l’Explorateur d’objets SSMS, utiliser l’élément Services dans le Panneau de configuration ou utiliser le Gestionnaire de configuration SQL Server.
Vérifiez l’installation en exécutant une commande T-SQL simple pour retourner la version de R :
EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R'; GO
Configurer la prise en charge de Python
Installer le runtime Python
Téléchargez la version la plus récente de Python 3.10 pour Windows. Installez-la avec les options suivantes :
Ouvrez l’application du programme d’installation Python et sélectionnez Personnaliser l’installation.
Vérifiez que la case Installer le lanceur pour tous les utilisateurs (recommandé) est cochée.
Pour Fonctionnalités facultatives, sélectionnez les fonctionnalités souhaitées (ou sélectionnez-les toutes).
Dans la page Options avancées, sélectionnez Installer pour tous les utilisateurs, acceptez les autres options par défaut, puis sélectionnez Installer.
Nous vous recommandons d’utiliser un chemin d’installation Python auquel tous les utilisateurs peuvent accéder (par exemple,
C:\Program Files\Python310
), et non un chemin spécifique pour un seul utilisateur.
Téléchargez et installez la dernière version du package
revoscalepy
et ses dépendances à partir d’une nouvelle invite de commandes avec élévation de privilèges :cd "C:\Program Files\Python310\" python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" dill numpy==1.22.0 pandas patsy python-dateutil python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" https://aka.ms/sqlml/python3.10/windows/revoscalepy-10.0.1-py3-none-any.whl
Exécutez les commandes icacls pour accorder les accès READ et EXECUTE aux bibliothèques installées à SQL Server Launchpad Service et SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES). Vous devez accorder des autorisations au compte de service associé au service Launchpad et vérifier Gestionnaire de configuration SQL Server.
icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
Si vous avez installé SQL Server comme instance nommée, le compte de service peut avoir
$
au milieu. Par exemple :icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD$SQLEXPRESS":(OI)(CI)RX /T icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
Configurer le runtime Python avec SQL Server
Configurez le runtime Python installé avec SQL Server. Vous pouvez changer la version par défaut avec l’utilitaire de ligne de commande
RegisterRext.exe
. L’utilitaire se trouve dans l’emplacement d’installation personnalisé (par exemple,C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs
).À partir d’une invite de commandes avec élévation de privilèges, vous pouvez utiliser le script suivant pour configurer le runtime Python installé à partir de l’emplacement du dossier d’installation de
RegisterRext.exe
. Le nom de l’instance estMSSQLSERVER
pour une instance par défaut de SQL Server, ou celui d’une instance nommée de SQL Server.cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs" .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"MSSQLSERVER"
Si vous configurez une instance nommée de SQL Server que vous feriez normalement référence à « .\SQLEXPRESS » ou « MACHINENAME\SQLEXPRESS », incluez uniquement le nom de l'instance. Par exemple :
cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs" .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"SQLEXPRESS"
Utilisez SQL Server Management Studio ou Azure Data Studio pour vous connecter à l’instance sur laquelle vous avez installé SQL Server Machine Learning Services. Sélectionnez Nouvelle requête pour ouvrir une fenêtre de requête, puis exécutez la commande suivante pour activer la fonctionnalité de script externe :
EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE
Si vous avez déjà activé la fonctionnalité pour un autre langage, vous n’avez pas besoin d’exécuter
RECONFIGURE
une deuxième fois pour R. La plateforme d’extensibilité sous-jacente prend en charge les deux langages. En guise de contrôle, vérifiez que la commande suivante retourne1
pourconfig_value
etrun_value
:EXEC sp_configure 'external scripts enabled';
Redémarrez le service SQL Server. Le redémarrage du service entraîne également le redémarrage automatique du service SQL Server Launchpad associé.
Pour redémarrer le service, vous pouvez cliquer avec le bouton droit sur la commande Redémarrer de l’instance dans l’Explorateur d’objets SSMS, utiliser l’élément Services dans le Panneau de configuration ou utiliser le Gestionnaire de configuration SQL Server.
Vérifiez l’installation en exécutant une commande simple pour retourner la version de Python :
EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python' GO
Installer Java
Pour plus d’informations sur l’installation et l’utilisation de Java, consultez Installer l’extension de langage SQL Server Java sur Windows.
Configuration supplémentaire
Si l’étape de vérification des scripts externes réussit, vous pouvez exécuter des commandes R ou Python à partir de SQL Server Management Studio, de Visual Studio Code ou de tout autre client capable d’envoyer des instructions T-SQL au serveur.
Plusieurs éléments déterminent si une configuration supplémentaire est nécessaire : votre schéma de sécurité, l’emplacement d’installation de SQL Server et la façon dont les utilisateurs sont supposés se connecter à la base de données et exécuter des scripts externes.
Si vous avez obtenu une erreur quand vous avez exécuté la commande, vous devez peut-être effectuer des configurations supplémentaires dans le service ou la base de données. Au niveau de l’instance, ces configurations supplémentaires peuvent comprendre :
- Configurer un pare-feu pour SQL Server Machine Learning Services
- Activer des protocoles réseau supplémentaires
- Activer des connexions à distance
- Créer un nom de connexion pour SQLRUserGroup
- Gérer les quotas de disque pour éviter que les scripts externes n’exécutent des tâches qui saturent l’espace disque
À compter de SQL Server 2019 sur Windows, le mécanisme d’isolation a changé. Ce mécanisme affecte SQLRUserGroup, les règles de pare-feu, l’autorisation de fichier et l’authentification implicite. Pour plus d’informations, consultez Modifications de l’isolation pour Machine Learning Services.
Dans la base de données, vous pouvez avoir besoin d’effectuer des mises à jour de configuration. Pour plus d’informations, consultez Accorder des autorisations utilisateur pour SQL Server Machine Learning Services.
Optimisations suggérées
Maintenant que tout fonctionne, vous souhaitez peut-être optimiser le serveur en vue de la prise en charge du machine learning ou installer un modèle de machine learning préalablement entraîné.
Optimiser le serveur pour l’exécution de scripts
Les paramètres par défaut du programme d’installation de SQL Server sont prévus afin d’optimiser l’équilibre du serveur pour divers autres services et applications.
Dans les paramètres par défaut, les ressources sont parfois restreintes ou limitées pour le machine learning, en particulier dans les opérations utilisant beaucoup de mémoire.
Pour vous assurer que les travaux de machine learning sont classés par ordre de priorité et correctement ressourcés, nous vous recommandons d’utiliser la fonctionnalité Resource Governor de SQL Server pour configurer un pool de ressources externes. Vous pouvez aussi modifier la quantité de mémoire allouée au moteur de base de données SQL Server ou augmenter le nombre de comptes s’exécutant sous le service SQL Server Launchpad.
Pour configurer un pool de ressources afin de gérer des ressources externes, consultez Créer un pool de ressources externes.
Pour modifier la quantité de mémoire réservée à la base de données, consultez Options de configuration de la mémoire du serveur.
Pour changer le nombre de comptes R qui peuvent être démarrés par SQL Server Launchpad, consultez Mettre à l’échelle l’exécution simultanée de scripts externes dans SQL Server Machine Learning Services.
Si vous utilisez l’édition Standard et que vous n’avez pas Resource Governor, vous pouvez utiliser les vues de gestion dynamiques, les événements étendus SQL Server ainsi que le monitoring des événements Windows pour mieux gérer les ressources de serveur.
Installer des packages Python et R supplémentaires
Les solutions Python et R que vous créez pour SQL Server peuvent appeler :
- Des fonctions de base.
- Des fonctions des packages propriétaires installés avec SQL Server.
- Des packages tiers compatibles avec la version open source de Python et R que SQL Server installe.
Les packages SQL Server que vous voulez utiliser doivent être installés dans la bibliothèque par défaut utilisée par l’instance. Si vous avez installé R ou Python séparément sur l’ordinateur ou installé des packages dans des bibliothèques utilisateur, vous ne pouvez pas utiliser ces packages à partir de T-SQL.
Si vous voulez installer et gérer des packages supplémentaires, vous pouvez configurer des groupes d’utilisateurs pour partager les packages par base de données. Vous pouvez également configurer des rôles de base de données pour permettre aux utilisateurs d’installer leurs propres packages. Pour plus d’informations, consultez Installer des packages Python et Installer de nouveaux packages R.
Packages RevoScale autonomes pour le runtime Python et R
Les packages RevoScale sont également pris en charge en tant que package autonome avec des runtimes Python et R. Pour configurer le runtime Python ou R pour le scénario autonome, suivez les instructions des sections Installer le runtime Python et Installer le runtime R, respectivement.
Contenu connexe
Les développeurs Python peuvent apprendre à utiliser Python avec SQL Server en effectuant les didacticiels suivants :
- Tutoriel Python : déployer un modèle de régression linéaire avec l'apprentissage automatique dans SQL
- Tutoriel Python : catégoriser des clients à l'aide de clustering k-moyennes avec l'apprentissage automatique dans SQL
Les développeurs R peuvent démarrer avec des exemples simples et découvrir les principes de base du fonctionnement de R avec SQL Server. Pour l’étape suivante, consultez les liens suivants :