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.
  • L’édition gratuite la plus récente.

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

  1. Démarrez l’Assistant Installation de SQL Server 2022.

  2. Sous l’onglet Installation, sélectionnez Nouvelle installation autonome de SQL Server ou ajout de fonctionnalités à une installation existante.

  3. 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.

    Screenshot of feature selection showing check boxes next to Database Engine Services and Machine Learning Services and Language.

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

  1. Téléchargez et installez la version la plus récente de R 4.2 pour Windows.

  2. Installez les dépendances pour CompatibilityAPI et RevoScaleR. À 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")
    
  3. Téléchargez et installez la dernière version des packages CompatibilityAPI et RevoScaleR :

    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

  1. 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 est MSSQLSERVER 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"
    
  2. 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 retourne 1 pour config_value et run_value :

    EXEC sp_configure  'external scripts enabled';
    
  3. 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.

  4. 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

  1. Téléchargez la version la plus récente de Python 3.10 pour Windows. Installez-la avec les options suivantes :

    1. Ouvrez l’application du programme d’installation Python et sélectionnez Personnaliser l’installation.

    2. Vérifiez que la case Installer le lanceur pour tous les utilisateurs (recommandé) est cochée.

    3. Pour Fonctionnalités facultatives, sélectionnez les fonctionnalités souhaitées (ou sélectionnez-les toutes).

    4. 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.

  2. 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

  1. 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 est MSSQLSERVER 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"
    
  2. 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 retourne 1 pour config_value et run_value :

    EXEC sp_configure  'external scripts enabled';
    
  3. 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.

  4. 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 :

À 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.

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.

Les développeurs Python peuvent apprendre à utiliser Python avec SQL Server en effectuant les didacticiels suivants :

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 :