Compartir a través de


Diferencias clave entre Machine Learning Services en Azure SQL Managed Instance y SQL Server

En este artículo se describen las pocas diferencias clave en la funcionalidad entre Machine Learning Services en Azure SQL Managed Instance y SQL Server Machine Learning Services.

Compatibilidad con idiomas

Machine Learning Services en SQL Managed Instance y SQL Server admiten el marco de extensibilidad de Python y R. Una diferencia clave en SQL Managed Instance es que solo se admiten Python y R, y no se pueden agregar lenguajes externos como Java.

Las versiones iniciales de Python y R son diferentes en SQL Managed Instance y SQL Server:

Plataforma Versión del entorno de ejecución de Python Versiones del entorno de ejecución de R
Instancia Gestionada de Azure SQL 3.7.2 3.5.2
SQL Server 2022 * - -
SQL Server 2019 3.7.1 3.5.2
SQL Server 2017 3.5.2 y 3.7.2 (CU22 y versiones posteriores) 3.3.3 y 3.5.2 (CU22 y versiones posteriores)
SQL Server 2016 No disponible 3.2.2 y 3.5.2 (SP2 CU14 y versiones posteriores)

* A partir de SQL Server 2022, los entornos de ejecución para R, Python y Java ya no se incluyen ni instalan en el programa de instalación de SQL. En su lugar, instale los paquetes y entornos de ejecución personalizados de R o Python que quiera. Para obtener más información, consulte Instalación de SQL Server 2022 Machine Learning Services (Python y R) en Windows.

Paquetes de Python y R

No hay compatibilidad con SQL Managed Instance para paquetes que dependen de entornos de ejecución externos (como Java) o que necesitan acceso a las API del sistema operativo para su instalación o uso.

Para obtener más información sobre cómo administrar paquetes de Python y R, consulte:

Administración de paquetes mediante sqlmlutils

Puede instalar paquetes binarios con sqlmlutils, si puede compilar localmente para generar un paquete binario como salida. Para obtener ejemplos, consulte Instalación de paquetes de R con sqlmlutils o Instalación de paquetes de Python con sqlmlutils.

Gobernanza de recursos

En Instancia Administrada de SQL, no es posible limitar los recursos de R a través de Resource Governor y no se admiten grupos de recursos externos.

De forma predeterminada, los recursos de R se establecen en un máximo de 20% de los recursos de INSTANCIA administrada de SQL disponibles cuando se habilita la extensibilidad. Para cambiar este porcentaje predeterminado, cree un ticket de soporte técnico de Azure.

La extensibilidad está habilitada con los siguientes comandos SQL (INSTANCIA administrada de SQL se reiniciará y no estará disponible durante unos segundos):

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

Para deshabilitar la extensibilidad y restaurar 100% de recursos de memoria y CPU en SQL Server, use los siguientes comandos:

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

El total de recursos disponibles para SQL Managed Instance depende del nivel de servicio que elija. Para más información, consulte Modelos de compra de Azure SQL Database.

Error de memoria insuficiente

El uso de memoria depende de la cantidad que se usa en los scripts de R y del número de consultas paralelas que se ejecutan. Si no hay suficiente memoria disponible para R, recibirá un mensaje de error. Los mensajes de error comunes son:

  • 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 recibe uno de estos errores, puede resolverlo mediante el escalado de la base de datos a un nivel de servicio superior.

Si encuentra errores de memoria insuficiente en Azure SQL Managed Instance, revise sys.dm_os_out_of_memory_events.

Grupos de instancias de SQL administradas

Actualmente, Machine Learning Services no se admite en grupos de Azure SQL Managed Instance (versión preliminar).

Acceso de red saliente

No se permite o se bloquea el acceso a la red y no se puede habilitar. La conexión de red saliente para Azure SQL Managed Instance no está disponible para Machine Learning Services.

Pasos siguientes