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

Se aplica a: SQL Server 2016 (13.x), SQL Server 2017 (14.x) y SQL Server 2019 (15.x)

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

Importante

Estas instrucciones se aplican a SQL Server 2016 (13.x), SQL Server 2017 (14.x) y SQL Server 2019 (15.x). Para SQL Server 2022 (16.x), consulte Instalación de SQL Server 2022 Machine Learning Services en Windows.

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

  • No 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 2017. Es compatible con SQL Server 2019 y versiones posteriores. Debe instalar Machine Learning Services en el momento de la instalación y las características no se pueden agregar a una instancia de clúster de conmutación por error existente una vez instalada.

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

  • No instale Características compartidas>Machine Learning Server (independiente) en el mismo equipo en el que se ejecuta una instancia de base de datos. Un servidor independiente competirá por los mismos recursos y reducirá el rendimiento de ambas instalaciones.

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

Nota

Machine Learning Services se instala de forma predeterminada en los clústeres de macrodatos de SQL Server. Si usa un clúster de macrodatos, no es necesario que siga los pasos que aparecen en este artículo. Para más información, vea Uso de Machine Learning Services (Python y R) en Clústeres de macrodatos.

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. En estos pasos se incluye la habilitación de SQL Server para usar scripts externos y la adición de cuentas necesarias para que SQL Server ejecute trabajos de R y Python en su nombre. 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.

Para más información sobre qué ediciones de SQL Server admiten la integración de Python y R con Machine Learning Services, consulte Ediciones y características admitidas de SQL Server 2017.

Para más información sobre qué ediciones de SQL Server admiten la integración de Python y R con Machine Learning Services, consulte Ediciones y características admitidas de SQL Server 2019.

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.

  1. Inicie el asistente para la instalación de SQL Server.

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

    Screenshot that shows the option for creating a SQL Server standalone installation or adding features to an existing installation.

    Screenshot that shows the option for using a new SQL Server standalone installation or adding features to an existing installation.

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

    • Servicios de Motor de base de datos

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

    • Machine Learning Services (en base de datos)

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

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

    • R

      Seleccione esta opción para agregar los paquetes de Microsoft R, el intérprete y R de código abierto.

    • Python

      Seleccione esta opción para agregar los paquetes de Python de Microsoft, el archivo ejecutable de Python 3.5 y bibliotecas seleccionadas de la distribución de Anaconda.

    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.

    Screenshot that shows feature options for R and Python.

    Screenshot that shows selecting feature options for R and Python.

    Nota:

    No seleccione la opción Machine Learning Server (independiente) en Características compartidas. Esa opción está pensada para su uso en un equipo independiente.

  1. En la página Consentimiento para instalar Microsoft R Open, seleccione Aceptar>Siguiente.

    El contrato de licencia abarca:

    • Microsoft R Open.
    • Herramientas y paquetes base de R de código abierto.
    • Paquetes de R y proveedores de conectividad mejorados del equipo de desarrollo de Microsoft.
  2. En la página Consentimiento de instalación de Python, seleccione Aceptar>Siguiente. El contrato de licencia de código abierto de Python también cubre Anaconda y herramientas relacionadas, además de algunas bibliotecas nuevas de Python del equipo de desarrollo de Microsoft.

    Nota

    Si el equipo que está usando no tiene acceso a Internet, puede pausar la instalación en este punto y descargar los instaladores por separado. Para obtener más información, consulte Instalación de componentes de aprendizaje automático sin acceso a Internet.

  3. En la página Listo para instalar, confirme que estas selecciones se han realizado y seleccione Instalar:

    • Servicios de Motor de base de datos
    • Machine Learning Services (en base de datos)
    • R, Python o ambos

    Tome nota de la ubicación de la carpeta en la ruta de acceso ..\Setup Bootstrap\Log donde se almacenan los archivos de configuración. Una vez que se haya completado la instalación, podrá revisar los componentes instalados en el archivo de resumen.

  4. Cuando finalice la instalación, si el programa indica que se reinicie el equipo, hágalo. Es importante leer el mensaje del Asistente para la instalación tras finalizar el programa de instalación. Para obtener más información, consulte Ver y leer los archivos de registro de instalación de SQL Server.

  1. En la página Consentimiento para instalar Microsoft R Open, seleccione Aceptar>Siguiente. Este contrato de licencia cubre Microsoft R Open, que incluye una distribución de las herramientas y paquetes base de R de código abierto. Además, incluye proveedores de conectividad y paquetes de R mejorados del equipo de desarrollo de Microsoft.

  2. En la página Consentimiento de instalación de Python, seleccione Aceptar>Siguiente. El contrato de licencia de código abierto de Python también cubre Anaconda y herramientas relacionadas, además de algunas bibliotecas nuevas de Python del equipo de desarrollo de Microsoft.

  3. En la página Listo para instalar, confirme que estas selecciones se han realizado y seleccione Instalar:

    • Servicios de Motor de base de datos
    • Machine Learning Services (en base de datos)
    • R, Python o ambos

    Tome nota de la ubicación de la carpeta en la ruta de acceso ..\Setup Bootstrap\Log donde se almacenan los archivos de configuración. Una vez que se haya completado la instalación, podrá revisar los componentes instalados en el archivo de resumen.

  4. Cuando finalice la instalación, si el programa indica que se reinicie el equipo, hágalo. Es importante leer el mensaje del Asistente para la instalación tras finalizar el programa de instalación. Para obtener más información, consulte Ver y leer los archivos de registro de instalación de SQL Server.

Establecimiento de variables de entorno

Solo de cara a la integración de características de R, conviene establecer la variable de entorno MKL_CBWR para garantizar una salida coherente de los cálculos de la biblioteca Math Kernel Library (MKL) de Intel:

  1. En el panel de control, seleccione Sistema y seguridad>Sistema>Configuración avanzada del sistema>Variables de entorno.

  2. Cree un usuario o una variable del sistema:

    • Establezca el nombre de la variable en MKL_CBWR.
    • Establezca el valor de la variable en AUTO.

Este paso requiere el reinicio del servidor. Si va a habilitar la ejecución de scripts, puede posponer el reinicio hasta que se realice todo el trabajo de configuración.

Habilitación de la ejecución de scripts

  1. Use SQL Server Management Studio (SSMS) o Azure Data Studio para conectarse a la instancia en la que instaló SQL Server Machine Learning Services.

  2. Seleccione Nueva consulta para abrir una ventana de consulta y, luego, ejecute el comando siguiente:

    EXEC sp_configure
    
  3. El valor de la propiedad external scripts enabled debería ser 0 en este momento. La característica está desactivada de forma predeterminada. Para activarlo de modo que pueda ejecutar scripts de R o Python, ejecute la instrucción siguiente:

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

    Si ya ha habilitado la característica para el lenguaje R, no hace falta que ejecute RECONFIGURE una segunda vez para Python. La plataforma de extensibilidad subyacente admite ambos lenguajes.

Reinicie el servicio.

Después de que la instalación se haya completado, reinicie el motor de base de datos. Al reiniciar el servicio, también se reiniciará automáticamente el servicio SQL Server Launchpad relacionado.

Puede reiniciar el servicio mediante cualquiera de estos métodos:

Comprobar la instalación

Haga lo siguiente para comprobar que se están ejecutando todos los componentes que se usan para iniciar los scripts externos:

  1. En SQL Server Management Studio, abra una nueva ventana de consulta y ejecute el comando siguiente:

    EXECUTE sp_configure  'external scripts enabled'
    

    run_value se establece en 1.

  2. Abra el elemento del panel de control Servicios o el Administrador de configuración de SQL Server y compruebe que el servicio SQL Server Launchpad se está ejecutando. Debe tener un servicio para cada instancia del motor de base de datos que tenga instalado R o Python. Para obtener más información sobre el servicio, consulte Arquitectura de extensibilidad en SQL Server Machine Learning Services.

  3. Si Launchpad se está ejecutando, puede ejecutar scripts sencillos de R y Python para comprobar que los tiempos de ejecución de scripting externo pueden comunicarse con SQL Server.

    Abra una ventana nueva de consulta en SQL Server Management Studio y, luego, ejecute un script como el siguiente:

    • Para 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
      
    • Para 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 primera vez que se carga el tiempo de ejecución del script externo, el script puede tardar un poco en ejecutarse. Los resultados deben tener un aspecto similar al siguiente:

    hello
    1

Nota:

Las columnas o los encabezados usados en el script de Python no se devuelven de manera automática. Para agregar nombres de columna para la salida, debe especificar el esquema para el conjunto de datos devuelto. Para ello, use el parámetro WITH RESULTS del procedimiento almacenado, asigne un nombre a las columnas y especifique el tipo de datos SQL.

Por ejemplo, puede agregar la línea siguiente para generar un nombre de columna arbitrario: WITH RESULT SETS ((Col1 AS int)).

Aplicación de actualizaciones

Instalación existente

Si ha agregado Machine Learning Services a una instancia de SQL Server existente y ha aplicado previamente una actualización acumulativa (CU), las versiones del motor de base de datos y la característica Machine Learning Services podrían ser diferentes. Esta diferencia podría dar lugar a errores o comportamientos inesperados porque launchpad.exe y sqlservr.exe tienen versiones diferentes.

Siga estos pasos para llevar Machine Learning Services a la misma versión que el motor de base de datos:

  1. Determine la actualización acumulativa que tiene para el motor de base de datos. Ejecute esta instrucción T-SQL:

    SELECT @@VERSION
    

    A continuación se muestra un resultado de ejemplo 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)
    

    Para obtener más información, consulte Determinar la versión, la edición y el nivel de actualización de SQL Server y sus componentes.

  2. Si es necesario, descargue la actualización acumulativa que ha instalado para el motor de base de datos.

  3. Ejecute la instalación de la actualización acumulativa y siga las instrucciones para instalarla para Machine Learning Services de nuevo. Seleccione la instancia existente donde está instalado Machine Learning Services. El estado de actualización mostrará Incompletely Installed (Instalación incompleta) en la página Selección de características.

  4. Seleccione Siguiente y continúe con la instalación.

Nueva instalación

Si instala Machine Learning Services con una nueva instalación del motor de base de datos de SQL Server, se recomienda aplicar la última actualización acumulativa tanto a los componentes de aprendizaje automático como a los de motor de base de datos.

En los dispositivos conectados a Internet, las actualizaciones acumulativas se aplican normalmente a través de Windows Update. También puede usar los pasos siguientes para las actualizaciones controladas. Al aplicar la actualización para el motor de base de datos, el programa de instalación extrae las actualizaciones acumulativas de las características de Python o R instaladas en la misma instancia.

Los servidores desconectados requieren pasos adicionales. Para obtener más información, consulte Instalación en equipos sin acceso a Internet > Aplicación de actualizaciones acumulativas.

  1. Comience con una instancia de línea de base ya instalada: versión inicial de SQL Server.

  2. Visite la lista de actualizaciones de Microsoft SQL Server.

  3. Seleccione la actualización acumulativa más reciente. Se descarga un ejecutable que se extrae automáticamente.

  4. Ejecute el programa de instalación y acepte los términos de licencia.

  5. En la página Selección de características, revise las características para las que se aplican las actualizaciones acumulativas. Debería ver todas las características instaladas para la instancia actual, incluidas las características de aprendizaje automático. El programa de instalación descarga los archivos CAB que son necesarios para actualizar todas las características.

    Screenshot that shows a summary of installed features.

  6. Continúe con el asistente. Acepte los términos de licencia para las distribuciones de R y Python.

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.

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:

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

Nota

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.

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.

Adición de más cuentas profesionales

Si prevé que muchos usuarios ejecutarán scripts al mismo tiempo, puede aumentar el número de cuentas profesionales que están asignadas al servicio Launchpad. Para obtener más información, vea Escalar la ejecución simultánea de scripts externos en SQL Server Machine Learning Services.

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, o bien 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.

Pasos siguientes

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: