Instalación de SQL Server 2022 Machine Learning Services (Python y R) en Windows

Se aplica a: SQL Server 2022 (16.x)

En este artículo se explica cómo instalar SQL Server 2022 Machine Learning Services en Windows. Puede usar Machine Learning Services para ejecutar scripts de Python y R en la base de datos.

Nota:

Estas instrucciones son específicas de SQL Server 2022 (16.x) en Windows. Para instalar SQL Server Machine Learning Services en Windows para SQL Server 2016 (13.x), SQL Server 2017 (14.x) o SQL Server 2019 (15.x), consulte Instalación de SQL Server Machine Learning Services (Python y R) en Windows.

Para Linux, consulte Instalación de SQL Server Machine Learning Services (Python y R) en Linux.

Lista de comprobación previa a la instalación

  • Se necesita una instancia del motor de base de datos. No se pueden instalar características solo de Python o de R, aunque se pueden agregar incrementalmente a una instancia existente.

  • Para la continuidad empresarial, se admiten Grupos de disponibilidad AlwaysOn para Machine Learning Services. Instale Machine Learning Services y configure los paquetes en cada nodo.

  • También se admite la instalación de Machine Learning Services en una instancia de clúster de conmutación por error de AlwaysOn en SQL Server 2019 y versiones posteriores.

  • No instale Machine Learning Services en un controlador de dominio. Se producirá un error en la parte de la instalación de Machine Learning Services.

  • Se admite la instalación en paralelo con otras versiones de Python y R, pero no se recomienda. Se admite porque la instancia de SQL Server usa sus propias copias de las distribuciones de R y Anaconda de código abierto. No se recomienda porque la ejecución de código que usa Python y R en un equipo fuera de SQL Server puede provocar problemas:

    • El uso de una biblioteca y archivos ejecutables diferentes creará resultados incoherentes con lo que se ejecuta en SQL Server.
    • SQL Server no puede administrar scripts de R y Python que se ejecutan en bibliotecas externas, lo que provoca la contención de recursos.

Importante

Una vez finalizada la instalación, asegúrese de completar los pasos posteriores a la configuración que se describen en este artículo. Estos pasos pueden incluir la habilitación de SQL Server para usar scripts externos. Habitualmente, si se realizan cambios en la configuración, es necesario reiniciar la instancia o el servicio Launchpad.

Obtener los medios de instalación

La ubicación de descarga de SQL Server depende de la edición:

  • Ediciones SQL Server Enterprise, Standard y Express. Estas ediciones tienen licencia para su uso en producción. En el caso de las ediciones Enterprise y Standard, póngase en contacto con su proveedor de software para obtener los soportes de instalación. Encontrará información sobre la adquisición y un directorio de asociados de Microsoft en el sitio web de adquisición de Microsoft.
  • Edición gratuita más reciente.

Ejecución de la configuración

En las instalaciones locales debe ejecutar el programa de instalación como administrador. Si instala SQL Server desde un recurso compartido remoto, deberá usar una cuenta de dominio que tenga permisos de lectura y ejecución para dicho recurso.

Si se producen errores de instalación durante la configuración, compruebe el registro de resumen en la carpeta de registro de arranque del programa de instalación (por ejemplo, %ProgramFiles%\Microsoft SQL Server\160\Setup Bootstrap\Log\Summary.txt).

  1. Inicie el Asistente para instalar SQL Server 2022.

  2. En la pestaña Instalación, seleccione Nueva instalación independiente de SQL Server o agregar características a una instalación existente.

  3. En la página Selección de características , seleccione estas opciones:

    • Servicios de Motor de base de datos

      Para usar R o Python con SQL Server, debe instalar una instancia del motor de base de datos. Puede usar una instancia predeterminada o una con nombre.

    • Machine Learning Services y extensiones de lenguaje

      Esta opción instala los servicios de base de datos que admiten la ejecución de scripts de R y Python.

    En esta captura de pantalla se muestran las características de instancia mínimas que se deben comprobar al instalar Machine Learning Services de SQL Server 2022 (16.x).

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

Instalación de entornos de ejecución y paquetes

A partir de SQL Server 2022 (16.x), los entornos de ejecución de R, Python y Java ya no se incluyen ni instalan con el programa de instalación de SQL Server. Deberá consultar las secciones siguientes para instalar entornos de ejecución personalizados y paquetes.

Configuración de la compatibilidad con R

Instalación del entorno de ejecución de R

  1. Descargue e instale la versión más reciente de R 4.2 para Windows.

  2. Instale las dependencias para CompatibilityAPI y RevoScaleR. Desde el terminal de R de la versión que ha instalado, ejecute los comandos siguientes:

    # R Terminal
    install.packages("iterators")
    install.packages("foreach")
    install.packages("R6")
    install.packages("jsonlite")
    
  3. Descargue e instale la versión más reciente de los paquetes CompatibilityAPI y 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)
    

Configuración del entorno de ejecución de R con SQL Server

  1. Configure el entorno de ejecución de R instalado con SQL Server. Puede cambiar la versión predeterminada mediante la utilidad de la línea de comandos RegisterRext.exe. La utilidad se encuentra en una carpeta de aplicación de R en función de la instalación. Normalmente, está en %ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64.

    Puede usar el siguiente script para configurar el entorno de ejecución de R instalado desde la ubicación de la carpeta de instalación RegisterRext.exe. El nombre de instancia es MSSQLSERVER para una instancia predeterminada de SQL Server, o bien el nombre de una instancia con nombre de SQL Server.

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"MSSQLSERVER"
    

    Si va a configurar una instancia con nombre de SQL Server a la que normalmente se hace referencia como ".\SQLEXPRESS" o "MACHINENAME\SQLEXPRESS", incluya solo el nombre de la instancia. Por ejemplo:

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"SQLEXPRESS"
    
  2. Use SQL Server Management Studio (SSMS) o Azure Data Studio para conectarse a la instancia en la que instaló SQL Server Machine Learning Services. Seleccione Nueva consulta para abrir una ventana de consulta y ejecute el comando siguiente para habilitar la característica de scripting externo:

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

    Si ya ha habilitado la característica para otro lenguaje, no necesita ejecutar RECONFIGURE una segunda vez para R. La plataforma de extensibilidad subyacente admite ambos lenguajes. Para comprobarlo, confirme que el comando siguiente devuelve 1 para config_value y run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. Reinicie el servicio SQL Server. Al reiniciar el servicio, también se reiniciará automáticamente el servicio SQL Server Launchpad relacionado.

    Para reiniciar el servicio, haga clic con el botón derecho en el comando Reiniciar de la instancia en el Explorador de objetos de SSMS, use el elemento Servicios del panel de control o emplee el Administrador de configuración de SQL Server.

  4. Para comprobar la instalación, ejecute un comando simple de T-SQL para devolver la versión de R:

    EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R';
    GO
    

Configuración de la compatibilidad con Python

Instalación del entorno de ejecución de Python

  1. Descargue la versión más reciente de Python 3.10 para Windows. Instálela con las opciones siguientes:

    1. Abra la aplicación de instalación de Python y seleccione Personalizar instalación.

    2. Compruebe que la casilla Install launcher for all users (recommended) (Instalar el iniciador para todos los usuarios [recomendado]) esté activada.

    3. En Características opcionales, elija las características que quiera (o selecciónelas todas).

    4. En la página Opciones avanzadas, seleccione Instalar para todos los usuarios, acepte otras opciones predeterminadas y seleccione Instalar.

      Se recomienda usar una ruta de instalación de Python a la que todos los usuarios puedan acceder (por ejemplo, C:\Program Files\Python310), en vez de una específica de un solo usuario.

  2. Descargue e instale la versión más reciente del paquete revoscalepy y sus dependencias desde un nuevo símbolo del sistema con privilegios elevados:

    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
    

    Ejecute los siguientes comandos icacls para conceder acceso de LECTURA y EJECUCIÓN a las bibliotecas instaladas a SQL Server Launchpad Service y SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES). Debe conceder permisos a la cuenta de servicio asociada al servicio Launchpad, compruébelo en el Administrador de configuración de 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 instaló SQL Server como una instancia con nombre, la cuenta de servicio puede tener un $ en el medio, por ejemplo:

    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
    

Configuración del entorno de ejecución de Python con SQL Server

  1. Configure el entorno de ejecución de Python instalado con SQL Server. Puede cambiar la versión predeterminada mediante la utilidad de la línea de comandos RegisterRext.exe. La utilidad está en la ubicación de instalación personalizada (por ejemplo, C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs).

    Desde un símbolo del sistema con privilegios elevados, puede usar el siguiente script para configurar el entorno de ejecución de Python instalado desde la ubicación de la carpeta de instalación de RegisterRext.exe. El nombre de instancia es MSSQLSERVER para una instancia predeterminada de SQL Server, o bien el nombre de una instancia con nombre de SQL Server.

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"MSSQLSERVER"
    

    Si va a configurar una instancia con nombre de SQL Server a la que normalmente se hace referencia como ".\SQLEXPRESS" o "MACHINENAME\SQLEXPRESS", incluya solo el nombre de la instancia. Por ejemplo:

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"SQLEXPRESS"
    
  2. Use SQL Server Management Studio o Azure Data Studio para conectarse a la instancia en la que instaló SQL Server Machine Learning Services. Seleccione Nueva consulta para abrir una ventana de consulta y ejecute el comando siguiente para habilitar la característica de scripting externo:

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

    Si ya ha habilitado la característica para otro lenguaje, no necesita ejecutar RECONFIGURE una segunda vez para R. La plataforma de extensibilidad subyacente admite ambos lenguajes. Para comprobarlo, confirme que el comando siguiente devuelve 1 para config_value y run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. Reinicie el servicio SQL Server. Al reiniciar el servicio, también se reiniciará automáticamente el servicio SQL Server Launchpad relacionado.

    Para reiniciar el servicio, haga clic con el botón derecho en el comando Reiniciar de la instancia en el Explorador de objetos de SSMS, use el elemento Servicios del panel de control o emplee el Administrador de configuración de SQL Server.

  4. Para comprobar la instalación, ejecute un comando simple para devolver la versión de Python:

    EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python'
    GO
    

Instalar Java

Para obtener información sobre la instalación y el uso de Java, consulte Instalación de la extensión de lenguaje Java de SQL Server en Windows.

Configuración adicional

Si el paso de comprobación de scripts externos se ejecuta correctamente, puede ejecutar comandos de R o Python de SQL Server Management Studio, Visual Studio Code o cualquier otro cliente que pueda enviar instrucciones T-SQL al servidor.

El hecho de que se requiera una configuración adicional depende del esquema de seguridad, del lugar en el que se haya instalado SQL Server y de cómo se espera que los usuarios se conecten a la base de datos y ejecuten scripts externos.

Si recibió un error al ejecutar el comando, es posible que tenga que realizar configuraciones adicionales en el servicio o la base de datos. En el nivel de instancia, las configuraciones adicionales podrían incluir:

Empezando por SQL Server 2019 en Windows, el mecanismo de aislamiento ha cambiado. Este mecanismo afecta a SQLRUserGroup, las reglas de firewall, los permisos de archivo y la autenticación implícita. Para obtener más información, consulte Cambios de aislamiento para Machine Learning Services.

En la base de datos, puede que necesite actualizaciones de configuración. Para obtener más información, vea Concesión de permiso a los usuarios para SQL Server Machine Learning Services.

Optimizaciones sugeridas

Ahora que todo funciona, puede que también le interese optimizar el servidor para admitir el aprendizaje automático o instalar modelos de aprendizaje automático previamente entrenados.

Optimización del servidor para la ejecución de scripts

La configuración predeterminada del programa de instalación de SQL Server está diseñada para optimizar el equilibrio del servidor para diversos servicios y aplicaciones.

En la configuración predeterminada, los recursos para el aprendizaje automático están restringidos a veces, especialmente en operaciones que usan mucha memoria.

Para asegurarse de que se asignen a los trabajos de aprendizaje automático la prioridad y los recursos correctos, se recomienda usar Resource Governor de SQL Server para configurar un grupo de recursos externos. Puede que también le interese cambiar la cantidad de memoria asignada al motor de base de datos de SQL Server o aumentar el número de cuentas que se ejecutan en el servicio SQL Server Launchpad.

Si usa la edición Standard Edition y no dispone de Resource Governor, puede usar vistas de administración dinámica, eventos extendidos de SQL Server y la supervisión de eventos de Windows como ayuda para administrar los recursos de servidor.

Instalación de paquetes adicionales de Python y R

Las soluciones de Python y R que cree para SQL Server pueden llamar a:

  • Funciones básicas.
  • Funciones de paquetes propios instalados con SQL Server.
  • Paquetes de terceros compatibles con la versión de R y Python de código abierto que SQL Server instala.

Los paquetes que quiera usar de SQL Server deben estar instalados en la biblioteca predeterminada que la instancia usa. Si tiene una instalación independiente de Python o R en el equipo o si ha instalado paquetes en las bibliotecas de usuario, no puede usar esos paquetes desde T-SQL.

Para instalar y administrar paquetes adicionales, puede configurar grupos de usuarios para compartir paquetes en cada nivel de base de datos. También puede configurar roles de base de datos para permitir que los usuarios instalen sus propios paquetes. Para obtener más información, consulte Instalación de paquetes de Python e Instalación de nuevos paquetes de R.

Paquetes independientes de RevoScale para los entornos de ejecución de Python y R

Los paquetes de RevoScale también se admiten como un paquete independiente con los entornos de ejecución de Python y R. Para configurar el entorno de ejecución de Python o R para el escenario independiente, siga las instrucciones de las secciones Instalación del entorno de ejecución de Python e Instalación del entorno de ejecución de R, respectivamente.

Los desarrolladores de Python pueden aprender a usar Python con SQL Server con estos tutoriales:

Los desarrolladores de R pueden empezar con algunos ejemplos sencillos y conocer los aspectos básicos del funcionamiento de R con SQL Server. Para conocer el siguiente paso, vea los vínculos siguientes: