Installer SQL Server Machine Learning Services (Python et R) sur Windows

S’applique à : SQL Server 2016 (13.x), SQL Server 2017 (14.x), et SQL Server 2019 (15.x)

Cet article explique comment installer SQL Server 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.

Important

Ces instructions s’appliquent à SQL Server 2016 (13.x), à SQL Server 2017 (14.x) et à SQL Server 2019 (15.x). Pour SQL Server 2022 (16.x), consultez Installer SQL Server 2022 Machine Learning Services sur Windows.

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 autonome 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 n’est pas prise en charge sur une instance de cluster de basculement Always On dans SQL Server 2017. Elle est prise en charge avec SQL Server 2019 et ultérieur. Vous devez installer Machine Learning Services au moment de l’installation et les fonctionnalités ne peuvent pas être ajoutées à une instance de cluster de basculement existante une fois installées.

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

  • N’installez pas Fonctionnalités partagées>Machine Learning Server (autonome) sur l’ordinateur qui exécute une instance de base de données. Un serveur autonome tente d’accéder aux mêmes ressources, ce qui affecte les performances des deux installations.

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

Notes

Machine Learning Services est installé par défaut sur des Clusters Big Data SQL Server. Vous n’avez pas besoin de suivre les étapes décrites dans cet article si vous utilisez un cluster Big Data. Pour plus d’informations, consultez Utiliser Machine Learning Services (Python et R) sur Clusters Big Data.

Important

Une fois l’installation terminée, veillez à suivre les étapes post-configuration décrites dans cet article. Ces étapes comprennent l’activation de SQL Server pour utiliser des scripts externes, et l’ajout des comptes nécessaires pour que SQL Server exécute les travaux R et Python à votre place. 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.

Pour plus d’informations sur les éditions SQL Server qui prennent en charge l’intégration Python et R avec Machine Learning Services, consultez Éditions et fonctionnalités prises en charge de SQL Server 2017.

Pour plus d’informations sur les éditions SQL Server prenant en charge l’intégration de Python et R avec Machine Learning Services, consultez Éditions et fonctionnalités prises en charge de SQL Server 2019.

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.

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

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

    Capture d’écran avec l’option permettant de créer une installation autonome de SQL Server ou d’ajouter des fonctionnalités à une installation existante.

    Capture d’écran avec l’option permettant d’utiliser une nouvelle installation autonome de SQL Server ou d’ajouter des 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 et 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 (dans la base de données)

      Cette option installe les services de base de données qui prennent en charge l’exécution de scripts R et Python.

    • 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 l’extension de langage

      Cette option installe les services de base de données qui prennent en charge l’exécution de scripts R et Python.

    • R

      Sélectionnez cette option pour ajouter les packages Microsoft R, l’interpréteur et R open source.

    • Python

      Sélectionnez cette option pour ajouter les packages Microsoft Python et l’exécutable Python 3.5, et sélectionnez des bibliothèques de la distribution Anaconda.

    Pour plus d’informations sur l’installation et l’utilisation de Java, consultez Installer l’extension de langage SQL Server Java sur Windows.

    Capture d’écran montrant les options de fonctionnalité pour R et Python.

    Capture d’écran montrant la sélection des options de fonctionnalité pour R et Python.

    Notes

    Ne sélectionnez pas l’option Machine Learning Server (autonome) sous Fonctionnalités partagées. Cette option est prévue pour un ordinateur distinct.

  1. Dans la page Accepter l’installation de Microsoft R Open, sélectionnez Accepter>Suivant.

    Le contrat de licence couvre :

    • Microsoft R ouvert.
    • Outils et packages de base R open source.
    • Packages et fournisseurs de connectivité R améliorés de l’équipe de développement Microsoft.
  2. Dans la page Accepter l’installation de Python, sélectionnez Accepter>Suivant. Le contrat de licence Python open source couvre également Anaconda et les outils associés ainsi que de nouvelles bibliothèques Python fournies par l’équipe de développement Microsoft.

    Notes

    Si l’ordinateur que vous utilisez n’a pas accès à Internet, vous pouvez mettre en pause l’installation à ce stade pour télécharger les programmes d’installation séparément. Pour plus d’informations, consultez Installer des composants de machine learning sans accès à Internet.

  3. Dans la page Prêt pour l’installation, vérifiez que ces sélections sont ajoutées, puis sélectionnez Installer :

    • Services Moteur de base de données
    • Machine Learning Services (dans la base de données)
    • R, Python ou les deux

    Notez l’emplacement du dossier sous le chemin ..\Setup Bootstrap\Log où sont stockés les fichiers de configuration. Une fois l’installation terminée, vous pouvez passer en revue les composants installés dans le fichier de synthèse.

  4. Si vous êtes invité à redémarrer l’ordinateur après l’installation, faites-le. Lisez bien le message de l’Assistant Installation à la fin de l’installation. Pour plus d'informations, consultez Afficher et lire les fichiers journaux d’installation de SQL Server.

  1. Dans la page Accepter l’installation de Microsoft R Open, sélectionnez Accepter>Suivant. Le contrat de licence couvre Microsoft R Open, qui comprend une distribution des outils et packages de base R open source. Il comprend aussi des packages R et des fournisseurs de connectivité améliorés fournis par l’équipe de développement Microsoft.

  2. Dans la page Accepter l’installation de Python, sélectionnez Accepter>Suivant. Le contrat de licence Python open source couvre également Anaconda et les outils associés ainsi que de nouvelles bibliothèques Python fournies par l’équipe de développement Microsoft.

  3. Dans la page Prêt pour l’installation, vérifiez que ces sélections sont ajoutées, puis sélectionnez Installer :

    • Services Moteur de base de données
    • Machine Learning Services (dans la base de données)
    • R, Python ou les deux

    Notez l’emplacement du dossier sous le chemin ..\Setup Bootstrap\Log où sont stockés les fichiers de configuration. Une fois l’installation terminée, vous pouvez passer en revue les composants installés dans le fichier de synthèse.

  4. Si vous êtes invité à redémarrer l’ordinateur après l’installation, faites-le. Lisez bien le message de l’Assistant Installation à la fin de l’installation. Pour plus d'informations, consultez Afficher et lire les fichiers journaux d’installation de SQL Server.

Définir des variables d’environnement

Pour l’intégration de fonctionnalités R uniquement, vous devez définir la variable d’environnement MKL_CBWR pour garantir la cohérence de la sortie des calculs d’Intel Math Kernel Library (MKL) :

  1. Dans le Panneau de configuration, cliquez sur Système et sécurité>Système>Paramètres système avancés>Variables d’environnement.

  2. Créez une variable Utilisateur ou Système :

    • Définissez le nom de la variable sur MKL_CBWR.
    • Définissez la valeur de la variable sur AUTO.

Cette étape nécessite un redémarrage du serveur. Si vous êtes sur le point d’activer l’exécution de scripts, vous pouvez reporter le redémarrage jusqu’à ce que le travail de configuration soit terminé.

Activer l’exécution de scripts

  1. Utilisez SQL Server Management Studio (SSMS) ou Azure Data Studio pour vous connecter à l’instance sur laquelle vous avez installé SQL Server Machine Learning Services.

  2. Sélectionnez Nouvelle requête pour ouvrir une fenêtre de requête, puis exécutez la commande suivante :

    EXEC sp_configure
    
  3. La valeur de la propriété external scripts enabled doit être 0 à ce stade. Cette fonctionnalité est désactivée par défaut. Pour l’activer afin de pouvoir exécuter des scripts R ou Python, exécutez l’instruction suivante :

    EXEC sp_configure  'external scripts enabled', 1
    RECONFIGURE WITH OVERRIDE
    

    Si vous avez déjà activé la fonctionnalité pour le langage R, vous n’avez pas besoin d’exécuter RECONFIGURE une deuxième fois pour Python. La plateforme d’extensibilité sous-jacente prend en charge les deux langages.

Redémarrez le service.

Une fois l’installation terminée, redémarrez le moteur de base de données. Le redémarrage du service entraîne également le redémarrage automatique du service SQL Server Launchpad associé.

Vous pouvez redémarrer le service en utilisant une de ces méthodes :

  • Cliquer avec le bouton droit sur la commande Redémarrer de l’instance dans l’Explorateur d’objets dans SSMS
  • Utiliser l’élément Microsoft Management Console (MMC) Services dans le Panneau de configuration
  • Gestionnaire de configuration SQL Server

Vérifier l'installation

Utilisez les étapes suivantes pour vérifier que tous les composants utilisés pour lancer les scripts externes sont en cours d’exécution :

  1. Dans SQL Server Management Studio, ouvrez une nouvelle fenêtre de requête et exécutez la commande suivante :

    EXECUTE sp_configure  'external scripts enabled'
    

    Ensuite, run_value est défini sur 1.

  2. Ouvrez l’élément Services du Panneau de configuration ou le Gestionnaire de configuration SQL Server, puis vérifiez que le service SQL Server Launchpad est en cours d’exécution. Vous devez disposer d’un service pour chaque instance du moteur de base de données sur laquelle R ou Python est installé. Pour plus d’informations sur le service, consultez Architecture d’extensibilité dans SQL Server Machine Learning Services.

  3. Si le service Launchpad est en cours d’exécution, vous pouvez exécuter des scripts Python et R simples pour vérifier que les runtimes de script externes peuvent communiquer avec SQL Server.

    Ouvrez une nouvelle fenêtre Requête dans SQL Server Management Studio, puis exécutez un script de ce type :

    • Pour R :

      EXEC sp_execute_external_script  @language =N'R',
      @script=N'
      OutputDataSet <- InputDataSet;
      ',
      @input_data_1 =N'SELECT 1 AS hello'
      WITH RESULT SETS (([hello] int not null));
      GO
      
    • Pour Python :

      EXEC sp_execute_external_script  @language =N'Python',
      @script=N'
      OutputDataSet = InputDataSet;
      ',
      @input_data_1 =N'SELECT 1 AS hello'
      WITH RESULT SETS (([hello] int not null));
      GO
      

    La première fois que vous chargez le runtime du script externe, le script peut prendre un certain temps pour s’exécuter. Les résultats doivent se présenter comme suit :

    hello
    1

Notes

Les colonnes ou les titres utilisés dans le script Python ne sont pas retournés automatiquement. Pour ajouter des noms de colonne à votre sortie, vous devez spécifier le schéma du jeu de données de retour. Pour cela, utilisez le paramètre WITH RESULTS de la procédure stockée en nommant les colonnes et en spécifiant le type de données SQL.

Par exemple, vous pouvez ajouter la ligne suivante pour générer un nom de colonne arbitraire : WITH RESULT SETS ((Col1 AS int)).

Appliquer des mises à jour

Installation existante

Si vous avez ajouté Machine Learning Services à une instance SQL Server existante et que vous avez déjà appliqué une mise à jour cumulative (CU), les versions du moteur de base de données et de la fonctionnalité Machine Learning Services peuvent être différentes. Cette différence peut entraîner un comportement inattendu ou des erreurs parce que launchpad.exe et sqlservr.exe ont des versions différentes.

Suivez ces étapes pour définir Machine Learning Services sur la même version que votre moteur de base de données :

  1. Déterminez la mise à jour cumulative de votre moteur de base de données. Exécutez cette instruction T-SQL :

    SELECT @@VERSION
    

    Voici un exemple de sortie de SQL Server 2019 CU 8 :

    Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64)   Nov  2 2020 18:35:09   Copyright (C) 2019 Microsoft Corporation  Developer Edition (64-bit) on Windows 10 Enterprise 10.0 (X64) (Build 19042: ) (Hypervisor)
    

    Pour plus d’informations, consultez Déterminer la version, l’édition et le niveau de mise à jour de SQL Server et de ses composants.

  2. Si nécessaire, téléchargez la mise à jour cumulative que vous avez installée pour le moteur de base de données.

  3. Exécutez l’installation de la mise à jour cumulative et suivez les instructions afin de la réinstaller pour Machine Learning Services. Sélectionnez l’instance existante où Machine Learning Services est installé. L’état de la mise à niveau indique Installée de manière incomplète dans la page Sélection des fonctionnalités.

  4. Sélectionnez Suivant et poursuivez l’installation.

Nouvelle installation

Si vous installez Machine Learning Services avec une nouvelle installation du moteur de base de données SQL Server, nous vous recommandons d’appliquer la dernière mise à jour cumulative au moteur de base de données et aux composants Machine Learning.

Sur les appareils connectés à Internet, les mises à jour cumulatives sont généralement appliquées avec Windows Update. Toutefois, vous pouvez également utiliser les étapes suivantes pour contrôler les mises à jour. Quand vous appliquez la mise à jour au moteur de base de données, le programme d’installation tire des mises à jour cumulatives pour toutes les fonctionnalités Python ou R que vous avez installées sur la même instance.

Les serveurs non connectés nécessitent des étapes supplémentaires. Pour plus d’informations, consultez Installation sur des ordinateurs sans accès à Internet > Appliquer les mises à jour cumulatives.

  1. Commencez avec une instance de base déjà installée : version initiale de SQL Server.

  2. Accédez à la liste des mises à jour de Microsoft SQL Server.

  3. Sélectionnez la mise à jour cumulative la plus récente. Un fichier exécutable est téléchargé et extrait automatiquement.

  4. Exécutez le programme d’installation et acceptez les termes du contrat de licence.

  5. Dans la page Sélection de fonctionnalités, passez en revue les fonctionnalités pour lesquelles des mises à jour cumulatives sont appliquées. Vous devez voir toutes les fonctionnalités installées pour l’instance actuelle, y compris les fonctionnalités de machine learning. Le programme d’installation télécharge les fichiers CAB nécessaires à la mise à jour de toutes les fonctionnalités.

    Capture d’écran montrant un récapitulatif des fonctionnalités installées.

  6. Suivez les instructions de l’Assistant. Acceptez les termes du contrat de licence pour les distributions R et Python.

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.

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 :

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

Notes

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.

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

Ajouter des comptes de travail

Si vous prévoyez que plusieurs utilisateurs exécutent les scripts simultanément, vous pouvez augmenter le nombre de comptes de travail attribués au service Launchpad. Pour plus d’informations, consultez Mise à l’échelle de l’exécution simultanée de scripts externes dans SQL Server Machine Learning Services.

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.

Pour installer et gérer des packages supplémentaires, vous pouvez configurer des groupes d’utilisateurs afin de partager des packages pour chaque base de données ou 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.

Étapes suivantes

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 :