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

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

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

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

Службы машинного обучения можно установить в контейнере Docker, выполняющем дистрибутив Linux. В контейнере Docker этапы будут такими же, как показано ниже.

Дополнительные сведения см. в разделе "Поддерживаемые платформы" в руководстве по установке SQL Server на Linux.

Важно!

В этой статье рассматривается SQL Server 2022 (16.x). Сведения о SQL Server 2019 в Linux см. в статье Установка служб Машинного обучения SQL Server 2019 (Python и R) на Linux. Сведения о SQL Server в Windows см. в статье Установка служб машинного обучения SQL Server 2022 (Python и R) в Windows.

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

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

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

  • У вас должно быть средство для выполнения команд T-SQL.

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

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

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

Доступные пакеты установки для SQL Server 2022 (16.x) в Linux:

Имя пакета Область действия Описание
mssql-server-extensibility All Платформа расширяемости, используемая для выполнения кода Python и R.

Установка пакета mssql-server-extensibility

  1. Настройте репозитории Linux , соответствующие дистрибутиву Linux. Установите функцию расширения SQL Server с пакетом mssql-server-extensibility.

    Ubuntu

    apt-get install mssql-server-extensibility
    

    RHEL

    yum install mssql-server-extensibility
    
  2. Просмотрите и примите условия лицензионного соглашения (EULA) для служб SQL Server машинного обучения.

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

    Чтобы завершить принятие лицензионного соглашения, необходимо перезапустить экземпляр SQL Server.

    sudo systemctl restart mssql-server
    

Установка сред выполнения и пакетов

Настройка поддержки R

Установка среды выполнения R

  1. Скачайте и установите нужную версию R. Выберите версию R 4.2 или более позднюю, доступную для скачивания непосредственно на cran.r-project.org. Следуйте инструкциям для требуемой среды выполнения.

  2. Установите зависимости для CompatibilityAPI и RevoScaleR. В терминале R администратора установленной версии выполните следующую команду:

    # 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")
    
  3. Скачайте и установите CompatibilityAPI и RevoScaleR для 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")
    
  4. Проверьте RevoScaleR установку из терминала R.

    library("RevoScaleR")
    

Настройка среды выполнения R с помощью SQL Server

  1. Настройте установленную среду выполнения R с помощью SQL Server для Linux, где path/to/ является путем к двоичному файлу R, а RFolderVersion — именем папки конкретной версии для установки среды выполнения R, например R4.2.

    /opt/mssql/bin/mssql-conf set extensibility rbinpath /usr/lib/R/bin/R
    /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib/R
    
  2. Перезапустите службу Launchpadd .

    systemctl restart mssql-launchpadd.service
    
  3. Настройте SQL Server для Linux, чтобы разрешить внешние скрипты, используя системную хранимую процедуру sp_configure.

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE
    GO
    
  4. Проверьте установку, выполнив простую команду T-SQL, чтобы вернуть версию R:

    EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R';
    GO
    

Настройка поддержки Python

Установка среды выполнения Python

  1. Скачайте и установите нужную версию Python. Выберите версию Python 3.10 или более позднюю, доступную для скачивания непосредственно на python.org. Следуйте инструкциям для требуемой среды выполнения. Кроме того, установите общую библиотеку среды выполнения Python для нужной версии среды выполнения. Например, чтобы установить libpython3.10 для Ubuntu: sudo apt-get install libpython3.10.

  2. Скачайте и установите revoscalepy для корневого пользователя.

    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. Проверьте установку revoscalepy из терминала Python. Убедитесь, что библиотеку можно импортировать.

    import revoscalepy
    

Настройка среды выполнения Python с помощью SQL Server

  1. Настройте установленную среду выполнения Python с помощью SQL Server, где pythonbinbath устанавливается путь к установленному двоичному файлу Python и datadirectories включает путь, по которому устанавливаются пакеты для требуемой версии Python, например /usr/lib/python3.10/dist-packages. Воспользуйтесь следующим сценарием с фактическим путем установки:

    /opt/mssql/bin/mssql-conf set extensibility pythonbinpath /usr/bin/python3.10
    /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib:/usr/lib/python3.10/dist-packages
    
  2. Перезапустите службу Launchpadd .

    systemctl restart mssql-launchpadd.service
    
  3. Настройте SQL Server для Linux, чтобы разрешить внешние скрипты, используя системную хранимую процедуру sp_configure.

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE
    GO
    
  4. Проверьте установку, выполнив простую команду T-SQL, чтобы вернуть версию Python:

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

Установка Java

Сведения об установке расширения языка Java см. в разделе об установке расширения языка Java для SQL Server на Linux.

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

Чтобы проверить установку, используйте любой из следующих методов:

  • Запустите скрипт 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 
    

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

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

Совет

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

Автономные пакеты RevoScale для Python и среды выполнения R

Пакеты RevoScale также поддерживаются как автономный пакет со средами выполнения Python и R. Чтобы настроить среду выполнения Python или R для автономного сценария, следуйте инструкциям в разделах Установка среды выполнения Python и Установка среды выполнения R соответственно.

Дальнейшие действия

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

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