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

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

En este artículo se le guiará por la instalación de SQL Server Machine Learning Services en Linux. Se pueden ejecutar scripts de Python y R en la base de datos mediante Machine Learning Services.

Puede instalar Machine Learning Services en Ubuntu y Red Hat Enterprise Linux (RHEL). No se admite SUSE Linux Enterprise Server (SLES).

Puedes instalar Machine Learning Services en un contenedor Docker ejecutando una distribución Linux. Dentro del contenedor Docker, los pasos son los mismos:

Para más información, consulte la sección Plataformas admitidas de la guía de instalación de SQL Server en Linux.

Importante

Este artículo hace referencia a SQL Server 2022 (16.x). Para SQL Server 2019 en Linux, consulta Install SQL Server 2019 Machine Learning Services (Python y R) en Linux. Para obtener información sobre SQL Server en Windows, consulte Instalación de SQL Server 2022 Machine Learning Services (Python y R) en Windows.

Lista de comprobación previa a la instalación

  • Instale SQL Server en Linux y compruebe la instalación.

  • Compruebe en los repositorios de SQL Server para Linux si están las extensiones de Python y R. Si ya ha configurado repositorios de origen para la instalación del motor de base de datos, puede ejecutar los comandos de instalación del paquete mssql-server-extensibility mediante el mismo registro de repositorio.

  • Debe tener una herramienta para ejecutar comandos de Transact-SQL (T-SQL).

  • Tendrá que reiniciar la instancia de SQL Server durante este proceso de instalación.

Lista de paquetes

En un dispositivo conectado a Internet, los paquetes se descargan e instalan de forma independiente del motor de base de datos mediante el instalador de paquetes de cada sistema operativo.

El siguiente paquete de instalación está disponible para SQL Server 2022 (16.x) en Linux:

Nombre del paquete Válido para Description
mssql-server-extensibility All Marco de extensibilidad que se usa para ejecutar Python y R.

Instalación del paquete mssql-server-extensibility

  1. Configuración de repositorios para instalar y actualizar SQL Server en Linux según la distribución de Linux. Instale la característica de extensibilidad de SQL Server con el paquete mssql-server-extensibility y la dependencia asociada libssl-dev.

    Ubuntu

    sudo apt-get install mssql-server-extensibility libssl-dev
    

    RHEL

    yum install mssql-server-extensibility
    
  2. Revisa y acepta el Acuerdo de Licencia de Usuario Final (EULA) para los Servicios SQL Server Machine Learning.

    sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
    

    Para completar la aceptación del EULA, se debe reiniciar la instancia de SQL Server.

    sudo systemctl restart mssql-server
    

Configuración de la compatibilidad con R

Instalación del entorno de ejecución de R

  1. Descargue e instale la versión de R que quiera. Elija una versión de R 4.2 o posterior, disponible para su descarga directamente desde cran.r-project.org. Siga las instrucciones relativas al entorno de ejecución deseado.

  2. Abra un terminal de R de administración:

    sudo R
    
  3. Instale todas las dependencias, para CompatibilityAPI y RevoScaleR ejecutando lo siguiente:

    # R Terminal
    install.packages("iterators", lib="/usr/lib/R/library")
    install.packages("foreach", lib="/usr/lib/R/library")
    install.packages("R6", lib="/usr/lib/R/library")
    install.packages("jsonlite", lib="/usr/lib/R/library")
    
  4. Descargue e instale CompatibilityAPI y RevoScaleR para Linux.

    install.packages("https://aka.ms/sqlml/r4.2/linux/CompatibilityAPI_1.1.0_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library")
    install.packages("https://aka.ms/sqlml/r4.2/linux/RevoScaleR_10.0.1_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library")
    
  5. Compruebe la instalación de RevoScaleR desde el terminal de R.

    library("RevoScaleR")
    

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

  1. Configura el runtime instalado de R con SQL Server para Linux. Los siguientes comandos utilizan las rutas de instalación predeterminadas de R. Actualiza las rutas si instalaste R en otro sitio.

    sudo /opt/mssql/bin/mssql-conf set extensibility rbinpath /usr/lib/R/bin/R
    sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib/R
    
  2. Reinicie el servicio mssql-launchpadd .

    systemctl restart mssql-launchpadd.service
    
  3. Configurar SQL Server para Linux para permitir secuencias de comandos externas mediante el procedimiento almacenado de sistema sp_configure.

    EXECUTE sp_configure 'external scripts enabled', 1;
    GO
    
    RECONFIGURE;
    GO
    
  4. Para comprobar la instalación, ejecute un comando simple de T-SQL para devolver la versión de R:

    EXECUTE 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 e instale Python. Elige Python 3.10 específicamente, disponible para descargar directamente en python.org. Sigue las instrucciones proporcionadas. Además, instala la biblioteca de ejecución compartida en Python para la versión de ejecución. Por ejemplo, para instalar libpython3.10 para Ubuntu: sudo apt-get install libpython3.10.

  2. Descargue e instale revoscalepy para el usuario raíz.

    sudo pip install dill numpy==1.22.0 pandas patsy python-dateutil
    sudo pip install https://aka.ms/sqlml/python3.10/linux/revoscalepy-10.0.1-py3-none-any.whl --target=/usr/lib/python3.10/dist-packages
    
  3. Compruebe la instalación de revoscalepy desde el terminal de Python. Compruebe que se puede importar la biblioteca.

    import revoscalepy
    

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

  1. Configura el runtime de Python instalado con SQL Server, donde pythonbinpath se establece en la ruta del binario Python instalado, e datadirectories incluye la ruta donde se instalan los paquetes para la versión deseada de Python, por ejemplo, /usr/lib/python3.10/dist-packages. Use el siguiente script con la ruta de instalación real:

    sudo /opt/mssql/bin/mssql-conf set extensibility pythonbinpath /usr/bin/python3.10
    sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib:/usr/lib/python3.10/dist-packages
    
  2. Reinicie el servicio mssql-launchpadd .

    systemctl restart mssql-launchpadd.service
    
  3. Configurar SQL Server para Linux para permitir secuencias de comandos externas mediante el procedimiento almacenado de sistema sp_configure.

    EXECUTE sp_configure 'external scripts enabled', 1;
    GO
    
    RECONFIGURE;
    GO
    
  4. Verifica la instalación ejecutando un simple comando T-SQL para devolver la versión de Python:

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

Instalar Java

Para instalar la extensión del lenguaje Java, consulte Instalación de la extensión de lenguaje Java de SQL Server en Linux.

Comprobación de la instalación

Para validar la instalación, use cualquiera de los métodos siguientes:

  • Ejecute un script de T-SQL que ejecute un procedimiento almacenado del sistema que invoque Python o R mediante una herramienta de consulta.

  • Ejecute el siguiente comando SQL para probar la ejecución de R en SQL Server. ¿Errores? Pruebe el reinicio del servicio, sudo systemctl restart mssql-server.service.

    EXECUTE 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
    
  • Ejecute el siguiente comando SQL para probar la ejecución de Python en SQL Server.

    EXECUTE 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
    

Instalación sin conexión

Siga las instrucciones de instalación sin conexión para ver los pasos para instalar los paquetes. Busca tu sitio de descargas y luego descarga paquetes específicos usando la lista de paquetes de arriba.

Tip

Varias de las herramientas de administración de paquetes proporcionan comandos que pueden ayudar a determinar las dependencias de los paquetes. Para yum, usa sudo yum deplist [package]. En Ubuntu, use sudo apt-get install --reinstall --download-only [package name] seguido de dpkg -I [package name].deb.

Paquetes independientes de RevoScale para runtimes en Python y R

Los paquetes RevoScale también son compatibles como paquetes independientes con tiempos de ejecución en Python y R. Para configurar un entorno de ejecución en Python o R para el escenario independiente, sigue las instrucciones de las secciones Instalar tiempo de ejecución en Python e Instalar R, respectivamente.