Principales différences entre la version Azure SQL Managed Instance et la version SQL Server de Machine Learning Services

Cet article décrit les quelques différences clés de fonctionnalités entre Machine Learning Services dans Azure SQL Managed Instance et SQL Server Machine Learning Services.

Support multilingue

Machine Learning Services dans SQL Managed Instance et SQL Server prennent en charge l’infrastructure d’extensibilité Python et R. Une différence essentielle de SQL Managed Instance est que seuls Python et R sont pris en charge et que des langages externes tels que Java ne peuvent pas être ajoutés.

Les versions initiales de Python et de R sont différentes dans SQL Managed Instance et SQL Server :

Plateforme Version du runtime Python Versions du runtime R
Azure SQL Managed Instance 3.7.2 3.5.2
SQL Server 2022 * - -
SQL Server 2019 3.7.1 3.5.2
SQL Server 2017 3.5.2 et 3.7.2 (CU22 et versions ultérieures) 3.3.3 et 3.5.2 (CU22 et versions ultérieures)
SQL Server 2016 Non disponible 3.2.2 et 3.5.2 (SP2 CU14 et versions ultérieures)

* À partir de SQL Server 2022, les runtimes pour R, Python et Java ne sont plus livrés ou installés dans le programme d’installation de SQL. Au lieu de cela, installez le(s) runtime(s) et les packages personnalisés R et/ou Python souhaités. Pour plus d’informations, consultez Installer SQL Server 2022 Machine Learning Services (Python et R) sur Windows.

Packages Python et R

Il n’y a pas de prise en charge dans SQL Managed Instance des packages qui dépendent de runtimes externes (comme Java) ou dont l’installation ou l’utilisation nécessitent un accès à des API de système d’exploitation.

Pour plus d'informations sur la gestion des packages Python et R, consultez :

Gérer les packages via sqlmlutils

Vous pouvez installer des packages binaires avec sqlmlutils si vous pouvez effectuer une compilation locale afin de produire un package binaire en tant que sortie. Pour obtenir des exemples, consultez Installer des packages R avec sqlmlutils ou Installer des packages Python avec sqlmlutils.

Gouvernance des ressources

Dans SQL Managed Instance, il n’est pas possible de limiter les ressources R via Resource Governor, et les pools de ressources externes ne sont pas pris en charge.

Par défaut, les ressources R sont définies sur un maximum de 20 % des ressources SQL Managed Instance disponibles quand l’extensibilité est activée. Pour modifier ce pourcentage par défaut, créez un ticket de support Azure à l’adresse https://azure.microsoft.com/support/create-ticket/.

L’extensibilité est activée avec les commandes SQL suivantes (SQL Managed Instance redémarre et n’est pas disponible pendant quelques secondes) :

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

Pour désactiver l’extensibilité et restaurer 100 % de la mémoire et des ressources processeur pour SQL Server, utilisez les commandes suivantes :

sp_configure 'external scripts enabled', 0;
RECONFIGURE WITH OVERRIDE;

Le nombre total de ressources disponibles pour SQL Managed Instance dépend du niveau de service que vous choisissez. Pour plus d’informations, voir Modèles d’achat Azure SQL Database.

Erreur de mémoire insuffisante

L’utilisation de la mémoire dépend de la quantité de mémoire utilisée dans vos scripts R et du nombre de requêtes parallèles en cours d’exécution. Si la mémoire est insuffisante pour R, un message d’erreur s’affiche. Les messages d’erreur courants sont les suivants :

  • Unable to communicate with the runtime for 'R' script for request id: *******. Please check the requirements of 'R' runtime
  • 'R' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x80004004. ...an external script error occurred: "..could not allocate memory (0 Mb) in C function 'R_AllocStringBuffer'"
  • An external script error occurred: Error: cannot allocate vector of size.

Si vous recevez l’une de ces erreurs, vous pouvez la résoudre en mettant à l’échelle votre base de données vers un niveau de service supérieur.

Si vous rencontrez des erreurs de mémoire insuffisante dans Azure SQL Managed Instance, consultez sys.dm_os_out_of_memory_events.

Pools SQL Managed Instance

La solution Machine Learning Services n’est actuellement pas prise en charge sur les pools Azure SQL Managed Instance (préversion).

Accès réseau sortant

L'accès réseau est interdit ou bloqué et ne peut pas être activé. La connexion réseau sortante pour Azure SQL Managed Instance n'est pas disponible pour Machine Learning Services.

Étapes suivantes