Установка служб машинного обучения SQL Server 2019 (Python, R) в Linux

Область применения:SQL Server 2019 (15.x) — Linux

В этой статье представлен порядок установки Службы машинного обучения SQL Server в Linux. Службы машинного обучения можно использовать для запуска сценариев R или Python в базе данных.

Вы можете установить Службы машинного обучения на платформах Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) и Ubuntu. Дополнительные сведения см. в разделе "Поддерживаемые платформы" в руководстве по установке SQL Server на Linux.

Важно!

Эти инструкции относятся только к SQL Server 2019 (15.x). Для SQL Server 2022 (16.x), где этапы установки отличаются, см. в статье "Установка SQL Server 2022 Машинное обучение Services (Python и R) в Linux.

Контрольный список перед установкой

  • Установите SQL Server в Linux и проверьте установку.

  • Проверьте репозитории SQL Server в Linux для расширений Python и R. Если вы уже настроили репозитории исходного кода для ядра СУБД, команды установки пакета mssql-mlservices можно выполнить, используя ту же регистрацию репозиториев.

  • (Только для R) Microsoft R Open (MRO) предоставляет базовый дистрибутив R для функции R в SQL Server и является необходимым компонентом для использования RevoScaleR, MicrosoftML и других пакетов R, устанавливаемых вместе со Службами машинного обучения.

    • Требуемая версия: MRO 3.5.2.
    • Зарегистрируйте репозиторий packages.microsoft.com , как описано ниже, чтобы установить дистрибутив MRO: microsoft-r-open-mro и microsoft-r-open-mkl.
    • Сведения об установке MRO см. в следующих разделах об установке.
  • У вас должно быть средство для выполнения команд T-SQL.

    • Вы можете использовать Azure Data Studio, бесплатное средство для работы с базами данных, которое работает в Linux, Windows и macOS.

Список пакетов

На устройстве, подключенном к Интернету, пакеты скачиваются и устанавливаются независимо от ядра СУБД с помощью установщика пакетов для каждой операционной системы. В следующей таблице описаны все доступные пакеты, однако для R и Python можно указать пакеты, обеспечивающие установку всех компонентов или установку минимального набора компонентов.

Доступные пакеты установки:

Имя пакета Область действия Description
mssql-server-extensibility Все Платформа расширяемости, используемая для выполнения кода Python и R.
microsoft-openmpi Python, R Интерфейс передачи сообщений, используемый библиотеками Rev* для распараллеливания в Linux.
mssql-mlservices-python Python Дистрибутив Anaconda и Python с открытым кодом.
mssql-mlservices-mlm-py Python Полная установка. Предоставляет revoscalepy, microsoftml, предварительно обученные модели для выделения признаков изображений и анализа тональности текста.
mssql-mlservices-packages-py Python Минимальная установка. Предоставляет revoscalepy и microsoftml.
Не включает в себя предварительно обученные модели.
microsoft-r-open * R Дистрибутив R с открытым исходным кодом, состоящий из трех пакетов.
mssql-mlservices-mlm-r R Полная установка. Предоставляет: RevoScaleR, MicrosoftML, sqlRUtils, olapR, предварительно обученные модели для анализа признаков изображений и анализа тональности текста.
mssql-mlservices-packages-r R Минимальная установка. Предоставляет RevoScaleR, sqlRUtils, MicrosoftML, olapR.
Не включает в себя предварительно обученные модели.

Установка в RHEL

Выполните следующие действия, чтобы установить Службы машинного обучения SQL Server на Red Hat Enterprise Linux (RHEL).

Установка MRO в RHEL

Следующие команды регистрируют репозиторий, предоставляющий MRO. После регистрации команды для установки других пакетов R, таких как mssql-mlservices-mml-r, будут автоматически включать MRO в качестве зависимости пакета.

# 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

Параметры установки для Python и R.

  • Установите языковую поддержку в соответствии с вашими требованиями (один или несколько языков).
  • В режиме полной установки устанавливаются все доступные функции, включая предварительно обученные модели машинного обучения.
  • В режиме минимальной установки исключаются модели, однако все функциональные возможности сохраняются.

Совет

По возможности запустите yum clean all, чтобы обновить пакеты в системе перед установкой.

Полная установка

Включает:

  • Открытый исходный код Python
  • Открытый исходный код R
  • Платформа расширяемости
  • Microsoft-openmpi
  • Расширения (Python, R)
  • Библиотеки машинного обучения
  • Предварительно обученные модели для Python и R
# Install as root or sudo
# Add everything (all R, Python)
# Be sure to include -9.4.7* in mlsservices package names
sudo yum install mssql-mlservices-mlm-py-9.4.7*
sudo yum install mssql-mlservices-mlm-r-9.4.7*

Минимальная установка

Включает:

  • Открытый исходный код Python
  • Открытый исходный код R
  • Платформа расширяемости
  • Microsoft-openmpi
  • Основные библиотеки Revo*
  • Библиотеки машинного обучения
# Install as root or sudo
# Minimum install of R, Python extensions
# Be sure to include -9.4.6* in mlsservices package names
sudo yum install mssql-mlservices-packages-py-9.4.7*
sudo yum install mssql-mlservices-packages-r-9.4.7*

Установка в Ubuntu

Выполните следующие действия, чтобы установить Службы машинного обучения SQL Server на Ubuntu.

Установка MRO на Ubuntu

Следующие команды регистрируют репозиторий, предоставляющий MRO. После регистрации команды для установки других пакетов R, таких как mssql-mlservices-mml-r, будут автоматически включать MRO в качестве зависимости пакета.

# 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

Параметры установки для Python и R.

  • Установите языковую поддержку в соответствии с вашими требованиями (один или несколько языков).
  • В режиме полной установки устанавливаются все доступные функции, включая предварительно обученные модели машинного обучения.
  • В режиме минимальной установки исключаются модели, однако все функциональные возможности сохраняются.

Совет

По возможности запустите apt-get update, чтобы обновить пакеты в системе перед установкой.

Полная установка

Включает:

  • Открытый исходный код Python
  • Открытый исходный код R
  • Платформа расширяемости
  • Microsoft-openmpi
  • Расширения Python
  • Расширения R
  • Библиотеки машинного обучения
  • Предварительно обученные модели для Python и 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 

Минимальная установка

Включает:

  • Открытый исходный код Python
  • Открытый исходный код R
  • Платформа расширяемости
  • Microsoft-openmpi
  • Основные библиотеки Revo*
  • Библиотеки машинного обучения
# 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

Установка в SLES

Выполните следующие действия, чтобы установить Службы машинного обучения SQL Server на SUSE Linux Enterprise Server (SLES).

Установка MRO на SLES

Следующие команды регистрируют репозиторий, предоставляющий MRO. После регистрации команды для установки других пакетов R, таких как mssql-mlservices-mml-r, будут автоматически включать MRO в качестве зависимости пакета.

# 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

Параметры установки для Python и R.

  • Установите языковую поддержку в соответствии с вашими требованиями (один или несколько языков).
  • В режиме полной установки устанавливаются все доступные функции, включая предварительно обученные модели машинного обучения.
  • В режиме минимальной установки исключаются модели, однако все функциональные возможности сохраняются.

Полная установка

Включает:

  • Открытый исходный код Python
  • Открытый исходный код R
  • Платформа расширяемости
  • Microsoft-openmpi
  • Расширения для Python и R
  • Библиотеки машинного обучения
  • Предварительно обученные модели для Python и 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

Минимальная установка

Включает:

  • Открытый исходный код Python
  • Открытый исходный код R
  • Платформа расширяемости
  • Microsoft-openmpi
  • Основные библиотеки Revo*
  • Библиотеки машинного обучения
# 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

Настройка после установки (обязательно)

Дополнительная настройка осуществляется в основном с помощью средства mssql-conf.

  1. Когда установка пакета завершится, выполните команду mssql-conf setup и следуйте указаниям, чтобы задать пароль системного администратора и выбрать выпуск. Выполните этот шаг, только если вы еще не настроили SQL Server в Linux.

    sudo /opt/mssql/bin/mssql-conf setup
    
  2. Примите условия лицензионного соглашения для расширений R и Python с открытым исходным кодом. Используйте следующую команду:

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

    Программа установки обнаруживает пакеты mssql-mlservices и предлагает принять условия лицензионного соглашения (если оно не было принято ранее) при выполнении mssql-conf setup. Дополнительные сведения о параметрах лицензионного соглашения см. в статье Настройка SQL Server с помощью средства mssql-conf.

  3. Включите исходящий сетевой доступ. По умолчанию исходящий сетевой доступ отключен. Чтобы включить исходящие запросы, задайте логическое свойство outboundnetworkaccess с помощью средства mssql-conf. Дополнительные сведения см. в статье Настройка SQL Server на Linux с помощью средства mssql-conf.

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Только для интеграции с R присвойте переменной среды MKL_CBWR значение ensure consistent output из вычислений Intel Math Kernel Library (MKL).

    • Измените или создайте файл .bash_profile в домашнем каталоге пользователя, добавив в него export MKL_CBWR="AUTO".

    • Выполните этот файл, введя команду source .bash_profile в командной строке bash.

  5. Перезапустите службу панели запуска SQL Server и экземпляр ядра СУБД, чтобы считать обновленные значения из INI-файла. При изменении параметра, связанного с расширяемостью, отображается сообщение уведомления.

    systemctl restart mssql-launchpadd
    
    systemctl restart mssql-server.service
    
  6. Включите выполнение внешнего скрипта с помощью Azure Data Studio или другого средства, например SQL Server Management Studio (только для Windows), выполняющего скрипты Transact-SQL.

    EXEC sp_configure 'external scripts enabled', 1 
    RECONFIGURE WITH OVERRIDE 
    
  7. Снова перезапустите службу панели запуска.

Проверка установки

Библиотеки R (MicrosoftML, RevoScaleR и др.) можно найти по адресу /opt/mssql/mlservices/libraries/RServer.

Библиотеки Python (microsoftml и revoscalepy) можно найти по адресу /opt/mssql/mlservices/libraries/PythonServer.

Порядок проверки установки

  • Запустите скрипт T-SQL, который выполняет системную хранимую процедуру, вызывающую Python или R, с помощью инструмента запросов.

  • Выполните следующую команду SQL для тестирования выполнения R в SQL Server. Возникли ошибки? Попробуйте перезапустить службу, sudo systemctl restart mssql-server.service.

    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 
    
  • Выполните следующую команду SQL для тестирования выполнения Python в SQL Server.

    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 
    

Автоматическая установка

С помощью автоматической установки для ядра СУБД вы можете добавить пакеты для mssql-mlservices и лицензионных соглашений.

Используйте один из параметров лицензионного соглашения mlservices для дистрибутивов R и Python с открытым исходным кодом:

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

Полный текст лицензионного соглашения см. в статье Настройка SQL Server в Linux с помощью средства mssql-conf.

Автономная установка

Описание шагов по установке пакетов см. в инструкциях по автономной установке. Найдите сайт скачивания, а затем скачайте конкретные пакеты с помощью приведенного ниже списка.

Совет

Некоторые средства управления пакетами предоставляют команды, помогающие определить зависимости пакетов. Для yum используйте sudo yum deplist [package]. Для Ubuntu используйте sudo apt-get install --reinstall --download-only [package name], а затем dpkg -I [package name].deb.

Сайт загрузки

Скачайте пакеты с сайта https://packages.microsoft.com/. Все пакеты mlservices для R и Python размещены вместе с пакетом ядра СУБД. Базовой версией для пакетов mlservices является 9.4.6. Не забывайте, что пакеты microsoft-r-open находятся в другом репозитории.

Пути RHEL/8

Пакет Расположение для скачивания
Пакеты mssql/mlservices https://packages.microsoft.com/rhel/8/mssql-server-2019/
Пакеты microsoft-r-open https://packages.microsoft.com/rhel/8/prod/

Пути Ubuntu/20.04

Пакет Расположение для скачивания
Пакеты mssql/mlservices https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/
Пакеты microsoft-r-open https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/m/

Пути SLES/12

Пакет Расположение для скачивания
Пакеты mssql/mlservices https://packages.microsoft.com/sles/12/mssql-server-2019/
Пакеты microsoft-r-open https://packages.microsoft.com/sles/12/prod/

Выберите расширения, которые хотите использовать, скачайте пакеты, необходимые для требуемого языка. Имена файлов включают сведения о платформе в суффиксе.

Список пакетов

В зависимости от того, какие расширения вы хотите использовать, скачайте пакеты, необходимые для конкретного языка. Точные имена файлов содержат сведения о платформе в суффиксе, но приведенные ниже имена должны быть достаточно понятными, чтобы вы могли определить, какие файлы нужно получить.

# 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

Разработчики на языке Python могут узнать, как использовать Python с SQL Server, изучив следующие руководства.

Разработчики на языке R могут ознакомиться с простыми примерами, а также узнать, как код R работает с SQL Server. Дополнительные сведения см. в следующих статьях.