Applies to: SQL Server 2019 (15.x) - Linux
This article guides you in the installation of SQL Server Machine Learning Services on Linux. Python and R scripts can be executed in-database using Machine Learning Services.
You can install Machine Learning Services on Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), and Ubuntu. For more information, see the Supported platforms section in the Installation guidance for SQL Server on Linux.
Preinstall checklistInstallation guidance for SQL Server on Linux and verify the installation.
Check the SQL Server Linux repositories for the Python and R extensions. If you already configured source repositories for the database engine install, you can run the mssql-mlservices package install commands using the same repo registration.
(R only) Microsoft R Open (MRO) provides the base R distribution for the R feature in SQL Server and is a prerequisite for using RevoScaleR, MicrosoftML, and other R packages installed with Machine Learning Services.
packages.microsoft.com
repo as described later in this article to install the MRO distribution: microsoft-r-open-mro
and microsoft-r-open-mkl
.You should have a tool for running T-SQL commands.
On an internet-connected device, packages are downloaded and installed independently of the database engine using the package installer for each operating system. The following table describes all available packages, but for R and Python, you specify packages that provide either the full feature installation or the minimum feature installation.
Available installation packages:
Package name Applies-to Descriptionmssql-server-extensibility
All Extensibility framework used to run Python and R. microsoft-openmpi
Python, R Message passing interface used by the Rev* libraries for parallelization on Linux. mssql-mlservices-python
Python Open-source distribution of Anaconda and Python. mssql-mlservices-mlm-py
Python Full install. Provides revoscalepy, microsoftml, pretrained models for image featurization and text sentiment analysis. mssql-mlservices-packages-py
Python Minimum install. Provides revoscalepy and microsoftml.
Excludes pretrained models.
microsoft-r-open* R Open-source distribution of R, composed of three packages.mssql-mlservices-mlm-r
R Full install. Provides: RevoScaleR, MicrosoftML, sqlRUtils, olapR, pretrained models for image featurization and text sentiment analysis. mssql-mlservices-packages-r
R Minimum install. Provides RevoScaleR, sqlRUtils, MicrosoftML, olapR.
Excludes pretrained models.
Install on RHELFollow these steps to install SQL Server Machine Learning Services on Red Hat Enterprise Linux (RHEL).
Install MRO on RHELThe following commands register the repository providing MRO. Post-registration, the commands for installing other R packages, such as mssql-mlservices-mml-r
, automatically include MRO as a package dependency.
# 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
Installation Options for Python and R:
Tip
If possible, run yum clean all
to refresh packages on the system before installation.
Includes:
# 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*
Minimum installation
Includes:
# 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*
Install on Ubuntu
Follow these steps to install SQL Server Machine Learning Services on Ubuntu.
Install MRO on UbuntuThe following commands register the repository providing MRO. Post-registration, the commands for installing other R packages, such as mssql-mlservices-mml-r
, automatically include MRO as a package dependency.
# 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
Installation Options for Python and R:
Tip
If possible, run apt-get update
to refresh packages on the system before installation.
Includes:
# 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
Minimum installation
Includes:
# 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
Install on SLES
Follow these steps to install SQL Server Machine Learning Services on SUSE Linux Enterprise Server (SLES).
Install MRO on SLESThe following commands register the repository providing MRO. Post-registration, the commands for installing other R packages, such as mssql-mlservices-mml-r
, automatically include MRO as a package dependency.
# 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
Installation Options for Python and R:
Includes:
# Install as root or sudo
# Add everything (all R, Python)
sudo zypper install mssql-mlservices-mlm-py
sudo zypper install mssql-mlservices-mlm-r
Minimum installation
Includes:
# 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
Post-install config (required)
Additional configuration is primarily through the mssql-conf tool.
After the package installation finishes, run mssql-conf setup and follow the prompts to set the sa
password and choose your edition. Perform this step only if SQL Server on Linux isn't configured yet.
sudo /opt/mssql/bin/mssql-conf setup
Accept the licensing agreements for open-source Python and R extensions. Use the following command:
# Run as SUDO or root
# Use set + EULA
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
Setup detects the mssql-mlservices packages and prompts for EULA acceptance (if not previously accepted) when mssql-conf setup
is run. For more information about EULA parameters, see Configure SQL Server with the mssql-conf tool.
Enable outbound network access. Outbound network access is disabled by default. To enable outbound requests, set the "outboundnetworkaccess" Boolean property using the mssql-conf tool. For more information, see Configure SQL Server on Linux with mssql-conf.
# Run as SUDO or root
# Enable outbound requests over the network
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
For R feature integration only, set the MKL_CBWR
environment variable to ensure consistent output from Intel Math Kernel Library (MKL) calculations.
Edit or create a file .bash_profile
in your user home directory, adding the line export MKL_CBWR="AUTO"
to the file.
Execute this file by typing source .bash_profile
at a bash command prompt.
Restart the SQL Server Launchpad service and the database engine instance to read the updated values from the INI file. A notification message is displayed when an extensibility-related setting is modified.
systemctl restart mssql-launchpadd
systemctl restart mssql-server.service
Enable external script execution. You can connect to an instance of SQL Server using any familiar SQL Server client tool, such as sqlcmd, SQL Server Management Studio (SSMS), or the MSSQL extension for Visual Studio Code.
EXECUTE sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
Restart the Launchpad service again.
R libraries (MicrosoftML, RevoScaleR, and others) can be found at /opt/mssql/mlservices/libraries/RServer
.
Python libraries (microsoftml and revoscalepy) can be found at /opt/mssql/mlservices/libraries/PythonServer
.
To validate installation:
Run a T-SQL script that executes a system stored procedure invoking Python or R using a query tool.
Execute the following T-SQL command to test R execution in SQL Server. Errors? Try a service restart, 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
Execute the following T-SQL command to test Python execution 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
Using the unattended install for the Database Engine, add the packages for mssql-mlservices and EULAs.
Use one of the mlservices-specific EULA parameters for the open-source R and Python distributions:
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml
The complete EULA is documented at Configure SQL Server on Linux with the mssql-conf tool.
Offline installationFollow the Offline installation instructions for steps on installing the packages. Find your download site, and then download specific packages using the package list that follows.
Tip
Several of the package management tools provide commands that can help you determine package dependencies. For yum, use sudo yum deplist [package]
. For Ubuntu, use sudo apt-get install --reinstall --download-only [package name]
followed by dpkg -I [package name].deb
.
Download packages from https://packages.microsoft.com/. All of the mlservices
packages for Python and R are colocated with database engine package. Base version for the mlservices
packages is 9.4.6. Recall that the microsoft-r-open packages are in a different repository.
Select extensions you want to use and download the packages necessary for a specific language. The filenames include platform information in the suffix.
Package listDepending on which extensions you want to use, download the packages necessary for a specific language. Exact filenames include platform information in the suffix, but the following file names should be close enough for you to determine which files to get.
# 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4