Condividi tramite


Installare SQL Server 2019 Machine Learning Services (Python e R) in Linux

Si applica a: SQL Server 2019 (15.x) su Linux

Questo articolo illustra l'installazione di SQL Server Machine Learning Services in Linux. Gli script Python e R possono essere eseguiti nel database usando Machine Learning Services.

È possibile installare Machine Learning Services in Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) e Ubuntu. Per altre informazioni, vedere la sezione delle piattaforme supportate nelle linee guida per l'installazione di SQL Server in Linux.

Importante

Queste istruzioni sono specifiche per SQL Server 2019 (15.x). Per SQL Server 2022 (16.x), che prevede una procedura di installazione diversa, vedere Installare SQL Server 2022 Machine Learning Services (Python e R) in Linux.

Elenco di controllo per la preinstallazione

  • Indicazioni sull'installazione per SQL Server in Linux e verificare l'installazione.

  • Controllare i repository di SQL Server Linux per le estensioni Python e R. Se i repository di origine per l'installazione del motore di database sono già stati configurati, è possibile eseguire i comandi di installazione del pacchetto mssql-mlservices usando la stessa registrazione dei repository.

  • (Solo R) Microsoft R Open (MRO) fornisce la distribuzione R di base per la funzionalità R in SQL Server e costituisce un prerequisito per l'uso di RevoScaleR, MicrosoftML e di altri pacchetti R installati con Machine Learning Services.

    • La versione richiesta è MRO 3.5.2.
    • Registrare il packages.microsoft.com repository come descritto più avanti in questo articolo per installare la distribuzione MRO: microsoft-r-open-mro e microsoft-r-open-mkl.
    • Vedere le sezioni di installazione più avanti in questo articolo per informazioni su come installare MRO.
  • È necessario avere uno strumento per eseguire i comandi T-SQL.

Elenco di pacchetti

In un dispositivo connesso a Internet i pacchetti vengono scaricati e installati in modo indipendente dal motore di database usando il programma di installazione del pacchetto per ogni sistema operativo. La tabella seguente descrive tutti i pacchetti disponibili, ma per R e Python si specificano pacchetti che forniscono l'installazione completa delle funzionalità o l'installazione minima delle funzionalità.

Pacchetti di installazione disponibili:

Nome pacchetto Applicabile a Descrizione
mssql-server-extensibility Tutte le date Framework di estendibilità usato per eseguire Python e R.
microsoft-openmpi Python, R Interfaccia per la trasmissione di messaggi usata dalle librerie Rev* per la parallelizzazione in Linux.
mssql-mlservices-python Python Distribuzione open source di Anaconda e Python.
mssql-mlservices-mlm-py Python Installazione completa. Fornisce revoscalepy, microsoftml, modelli pre-addestrati per la featurizzazione delle immagini e l'analisi del sentiment del testo.
mssql-mlservices-packages-py Python Installazione minima. Fornisce revoscalepy e microsoftml.

Esclude i modelli con training preliminare.
microsoft-r-open* R Distribuzione open source di R, costituita da tre pacchetti.
mssql-mlservices-mlm-r R Installazione completa. Fornisce: RevoScaleR, MicrosoftML, sqlRUtils, olapR, modelli preaddestrati per l'estrazione delle caratteristiche delle immagini e l'analisi del sentiment del testo.
mssql-mlservices-packages-r R Installazione minima. Fornisce RevoScaleR, sqlRUtils, MicrosoftML, olapR.

Esclude i modelli preaddestrati.

Eseguire l'installazione in RHEL

Seguire questa procedura per installare Machine Learning Services per SQL Server in Red Hat Enterprise Linux (RHEL).

Installare MRO in RHEL

I comandi seguenti registrano il repository che fornisce MRO. Dopo la registrazione, i comandi per l'installazione di altri pacchetti R, ad esempio mssql-mlservices-mml-r, includono automaticamente MRO come dipendenza del pacchetto.

# Import the Microsoft repository key

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

# Set the location of the package repo at the "prod" directory
# The following command is for version 8.x
# To get the version for 6.x or 7.x, replace 8 with 6 or 7, respectively.
rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm

# Update packages on your system (optional)
yum update

Opzioni di installazione per Python e R:

  • Installare il supporto della lingua in base ai propri requisiti (una o più lingue).
  • L'installazione completa fornisce tutte le funzionalità disponibili, inclusi i modelli di Machine Learning con training preliminare.
  • L'installazione minima esclude i modelli ma include comunque tutte le funzionalità.

Suggerimento

Se possibile, eseguire yum clean all per aggiornare i pacchetti nel sistema prima dell'installazione.

Installazione completa

Include:

  • Python open source
  • R open source
  • Framework di estendibilità
  • Microsoft-openmpi
  • Estensioni (Python, R)
  • Librerie di Machine Learning
  • Modelli con training preliminare per Python e R
# Install as root or sudo
# Add everything (all R, Python)
# Be sure to include -9.4.7* in mlservices package names
sudo yum install mssql-mlservices-mlm-py-9.4.7*
sudo yum install mssql-mlservices-mlm-r-9.4.7*

Installazione minima

Include:

  • Python open source
  • R open source
  • Framework di estendibilità
  • Microsoft-openmpi
  • Librerie Revo* principali
  • Librerie di Machine Learning
# Install as root or sudo
# Minimum install of R, Python extensions
# Be sure to include -9.4.6* in mlservices package names
sudo yum install mssql-mlservices-packages-py-9.4.7*
sudo yum install mssql-mlservices-packages-r-9.4.7*

Eseguire l'installazione in Ubuntu

Seguire questa procedura per installare Machine Learning Services per SQL Server in Ubuntu.

Installare MRO in Ubuntu

I comandi seguenti registrano il repository che fornisce MRO. Dopo la registrazione, i comandi per l'installazione di altri pacchetti R, ad esempio mssql-mlservices-mml-r, includono automaticamente MRO come dipendenza del pacchetto.

# Install as root
sudo su

# Optionally, if your system does not have the https apt transport option
apt-get install apt-transport-https

# If you are on Ubuntu 20.04, install the following package (MRO 3.5 has a dependency on libtinfo.so.5 in Ubuntu 20.04)
apt-get install libncurses5

# Set the location of the package repo the "prod" directory containing the distribution.
# This example specifies 20.04. Replace with 16.04 or 14.04 if you want those versions.
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb

# Register the repo
dpkg -i packages-microsoft-prod.deb

# Update packages on your system (required), including MRO installation
sudo apt-get update

Opzioni di installazione per Python e R:

  • Installare il supporto della lingua in base ai propri requisiti (una o più lingue).
  • L'installazione completa fornisce tutte le funzionalità disponibili, inclusi i modelli di Machine Learning con training preliminare.
  • L'installazione minima esclude i modelli ma include comunque tutte le funzionalità.

Suggerimento

Se possibile, eseguire apt-get update per aggiornare i pacchetti nel sistema prima dell'installazione.

Installazione completa

Include:

  • Python open source
  • R open source
  • Framework di estendibilità
  • Microsoft-openmpi
  • Estensioni Python
  • Estensioni R
  • Librerie di Machine Learning
  • Modelli preaddestrati per Python e R
# Install as root or sudo
# Add everything (all R, Python)
# There is no asterisk in this full install
sudo apt-get install mssql-mlservices-mlm-py
sudo apt-get install mssql-mlservices-mlm-r

Installazione minima

Include:

  • Python open source
  • R open source
  • Framework di estendibilità
  • Microsoft-openmpi
  • Librerie Revo* principali
  • Librerie di Machine Learning
# Install as root or sudo
# Minimum install of R, Python
# No asterisk
sudo apt-get install mssql-mlservices-packages-py
sudo apt-get install mssql-mlservices-packages-r

Eseguire l'installazione in SLES

Seguire questa procedura per installare Machine Learning Services per SQL Server in SUSE Linux Enterprise Server (SLES).

Installare MRO in SLES

I comandi seguenti registrano il repository che fornisce MRO. Dopo la registrazione, i comandi per l'installazione di altri pacchetti R, ad esempio mssql-mlservices-mml-r, includono automaticamente MRO come dipendenza del pacchetto.

# Install as root
sudo su

# Set the location of the package repo at the "prod" directory containing the distribution
# This example is for SLES12
zypper ar -f https://packages.microsoft.com/sles/12/prod packages-microsoft-com

# Update packages on your system (optional)
zypper update

Opzioni di installazione per Python e R:

  • Installare il supporto della lingua in base ai propri requisiti (una o più lingue).
  • L'installazione completa fornisce tutte le funzionalità disponibili, inclusi i modelli di Machine Learning con training preliminare.
  • L'installazione minima esclude i modelli ma include comunque tutte le funzionalità.

Installazione completa

Include:

  • Python open source
  • R open source
  • Framework di estendibilità
  • Microsoft-openmpi
  • Estensioni per Python e R
  • Librerie di Machine Learning
  • Modelli pre-addestrati per Python e R
# Install as root or sudo
# Add everything (all R, Python)
sudo zypper install mssql-mlservices-mlm-py
sudo zypper install mssql-mlservices-mlm-r

Installazione minima

Include:

  • Python open source
  • R open source
  • Framework di estendibilità
  • Microsoft-openmpi
  • Librerie Revo* principali
  • Librerie di Machine Learning
# Install as root or sudo
# Minimum install of R, Python extensions
sudo zypper install mssql-mlservices-packages-py
sudo zypper install mssql-mlservices-packages-r

Configurazione successiva all'installazione (obbligatoria)

La configurazione aggiuntiva viene eseguita principalmente tramite lo strumento mssql-conf.

  1. Al termine dell'installazione del pacchetto, eseguire l'installazione di mssql-conf e seguire le istruzioni per impostare la password e scegliere l'edizione sa . Eseguire questo passaggio solo se SQL Server in Linux non è ancora configurato.

    sudo /opt/mssql/bin/mssql-conf setup
    
  2. Accettare i contratti di licenza per le estensioni R e Python open source. Usare il comando seguente:

    # Run as SUDO or root
    # Use set + EULA
    sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
    

    Il programma di installazione rileva i pacchetti mssql-mlservices e richiede l'accettazione del contratto di licenza con l'utente finale (se non è stato precedentemente accettato) quando si esegue mssql-conf setup. Per altre informazioni sui parametri delle condizioni di licenza, vedere Configurare SQL Server con lo strumento mssql conf.

  3. Abilitare l'accesso alla rete in uscita. L'accesso alla rete in uscita è disabilitato per impostazione predefinita. Per abilitare le richieste in uscita, impostare la proprietà booleana "outboundnetworkaccess" usando lo strumento mssql-conf. Per altre informazioni, vedere Configurare SQL Server in Linux con mssql conf.

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Solo per l'integrazione delle funzionalità R, impostare la MKL_CBWR variabile di ambiente per garantire un output coerente dai calcoli di Intel Math Kernel Library (MKL).

    • Modificare o creare un file .bash_profile nella home directory dell'utente, aggiungendo la riga export MKL_CBWR="AUTO" al file.

    • Eseguire questo file digitando source .bash_profile al prompt dei comandi di Bash.

  5. Riavviare il servizio Launchpad di SQL Server e l'istanza del motore di database per leggere i valori aggiornati dal file INI. Quando viene modificata un'impostazione relativa all'estendibilità, viene visualizzato un messaggio di notifica.

    systemctl restart mssql-launchpadd
    
    systemctl restart mssql-server.service
    
  6. Abilitare l'esecuzione di script esterni. È possibile connettersi a un'istanza di SQL Server usando qualsiasi strumento client di SQL Server familiare, ad esempio sqlcmd, SQL Server Management Studio (SSMS) o l'estensione MSSQL per Visual Studio Code.

    EXECUTE sp_configure 'external scripts enabled', 1;
    
    RECONFIGURE WITH OVERRIDE;
    
  7. Riavviare nuovamente il servizio Launchpad.

Verifica l'installazione

Le librerie R (MicrosoftML, RevoScaleR e altre) sono disponibili in /opt/mssql/mlservices/libraries/RServer.

Le librerie Python (microsoftml e revoscalepy) sono disponibili in /opt/mssql/mlservices/libraries/PythonServer.

Per convalidare l'installazione:

  • Eseguire uno script T-SQL che esegue un stored procedure di sistema richiamando Python o R con uno strumento di query.

  • Eseguire il comando T-SQL seguente per testare l'esecuzione di R in SQL Server. Errori? Provare a riavviare il servizio, 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
    
  • Eseguire il comando T-SQL seguente per testare l'esecuzione di Python in 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
    

Installazione automatica

Usando l'installazione automatica per il motore di database, aggiungere i pacchetti per mssql-mlservices e le condizioni di licenza.

Usare uno dei parametri EULA specifici di mlservices per le distribuzioni R e Python open source:

sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

Il contratto di licenza con l'utente finale completo è documentato in Configurare SQL Server in Linux con lo strumento mssql conf.

Installazione offline

Per la procedura di installazione dei pacchetti, seguire le istruzioni contenute in Installazione offline. Trovare il sito di download e quindi scaricare pacchetti specifici usando l'elenco dei pacchetti seguente.

Suggerimento

Molti degli strumenti di gestione dei pacchetti forniscono comandi che consentono di determinare le dipendenze dei pacchetti. Per yum, usare sudo yum deplist [package]. Per Ubuntu, usare sudo apt-get install --reinstall --download-only [package name] seguito da dpkg -I [package name].deb.

Sito di download

Scaricare i pacchetti da https://packages.microsoft.com/. Tutti i mlservices pacchetti per Python e R sono collocati insieme al pacchetto del motore di database. La versione di base per i mlservices pacchetti è 9.4.6. Si ricordi che i pacchetti microsoft-r-open si trovano in un repository diverso.

Percorsi RHEL/8

Pacchetto Percorso download
mssql / mlservices Pacchetti https://packages.microsoft.com/rhel/8/mssql-server-2019/
microsoft-r-open Pacchetti https://packages.microsoft.com/rhel/8/prod/

Percorsi Ubuntu/20.04

Pacchetto Percorso download
mssql / mlservices Pacchetti https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/
microsoft-r-open Pacchetti https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/m/

Percorsi SLES/12

Pacchetto Percorso download
mssql / mlservices Pacchetti https://packages.microsoft.com/sles/12/mssql-server-2019/
microsoft-r-open Pacchetti https://packages.microsoft.com/sles/12/prod/

Selezionare le estensioni che si vogliono usare, scaricare i pacchetti necessari per una linguaggio specifico. I nomi dei file includono le informazioni sulla piattaforma nel suffisso.

Elenco di pacchetti

A seconda delle estensioni che si vogliono usare, scaricare i pacchetti necessari per una linguaggio specifico. I nomi di file esatti includono le informazioni sulla piattaforma nel suffisso, ma i nomi di file seguenti devono essere sufficienti per determinare quali file ottenere.

# Core packages
mssql-server-15.0.1000
mssql-server-extensibility-15.0.1000

# R
microsoft-openmpi-3.0.0
microsoft-r-open-mkl-3.5.2
microsoft-r-open-mro-3.5.2
mssql-mlservices-packages-r-9.4.7.64
mssql-mlservices-mlm-r-9.4.7.64

# Python
microsoft-openmpi-3.0.0
mssql-mlservices-python-9.4.7.64
mssql-mlservices-packages-py-9.4.7.64
mssql-mlservices-mlm-py-9.4.7.64