Principales diferencias entre Machine Learning Services de Instancia administrada de Azure SQL y SQL Server

En este artículo se describen las pocas diferencias clave que hay entre Machine Learning Services de Azure SQL Managed Instance y Machine Learning Services de SQL Server.

Compatibilidad con idiomas

Las versiones de Machine Learning Services tanto de SQL Managed Instance como de 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 entre 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 administrada 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 posteriores) 3.3.3 y 3.5.2 (CU22 y posteriores)
SQL Server 2016 No disponible 3.2.2 y 3.5.2 (SP2 CU14 y posteriores)

* A partir de SQL Server 2022, los runtimes de R, Python y Java ya no se envían ni se instalan con el programa de instalación de SQL. En su lugar, instale los paquetes y entornos de ejecución personalizados de R y/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

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

Para obtener más información sobre la administración de paquetes de Python y R, vea:

Administración de paquetes mediante sqlmlutils

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

Regulación de recursos

En SQL Managed Instance, no es posible limitar los recursos de R mediante Resource Governor y no se admiten grupos de recursos externos.

De forma predeterminada, los recursos de R se establecen en un máximo del 20 % de los recursos de SQL Managed Instance disponibles cuando la extensibilidad está habilitada. Para cambiar este porcentaje predeterminado, cree una incidencia de soporte técnico de Azure en https://azure.microsoft.com/support/create-ticket/.

La extensibilidad se habilita con los siguientes comandos SQL (SQL Managed Instance se reiniciará y no estará disponible durante unos segundos):

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

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

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

El número total de recursos disponibles para SQL Managed Instance dependen del nivel de servicio que se elija. Para obtener más información, consulte Azure SQL Database purchasing models (Modelos de compra de Azure SQL Database).

Error de memoria insuficiente

El uso de la memoria depende de cuánta se use 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 comunes de error 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 escalando la base de datos a un nivel de servicio superior.

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

Grupos de Instancia administrada de SQL

En la actualidad, Machine Learning Services no es compatible con los 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ça disponible para Machine Learning Services.

Pasos siguientes