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

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

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

Примечание.

Эти инструкции относятся к SQL Server 2022 (16.x) в Windows. Сведения об установке СЛУЖБ SQL Server Машинное обучение в Windows для SQL Server 2016 (13.x), SQL Server 2017 (14.x) или SQL Server 2019 (15.x) см. в статье "Установка служб SQL Server Машинное обучение (Python и R) в Windows.

Для Linux см. раздел Установка Служб машинного обучения SQL Server (Python и R) в Linux.

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

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

  • Для обеспечения непрерывности бизнес-процессов группы доступности AlwaysOn поддерживаются для служб Машинное обучение. Установите Службы машинного обучения и настройте пакеты на каждом узле.

  • Установка служб Машинное обучение также поддерживается в экземпляре отказоустойчивого кластера AlwaysOn в SQL Server 2019 и более поздних версиях.

  • Не устанавливайте Службы машинного обучения на контроллере домена. Этап установки служб машинного обучения завершится с ошибкой.

  • Параллельное установка с другими версиями Python и R поддерживается, но не рекомендуется. Она поддерживается, поскольку экземпляр SQL Server использует собственные копии дистрибутивов R и Anaconda с открытым исходным кодом. Мы не рекомендуем его использовать, так как выполнение кода, использующего Python и R на компьютере за пределами SQL Server, может привести к проблемам:

    • С помощью другой библиотеки и разных исполняемых файлов будут создаваться результаты, несовместимые с тем, что выполняется в SQL Server.
    • SQL Server не может управлять скриптами R и Python, которые выполняются во внешних библиотеках, что приводит к состязанию ресурсов.

Внимание

После завершения установки обязательно выполните действия после настройки, описанные в этой статье. Эти действия могут включать включение SQL Server для использования внешних скриптов. Изменения в конфигурации обычно требуют перезапуска экземпляра или службы панели элементов.

Получение установочного носителя

Расположение скачивания для SQL Server зависит от выпуска:

Запуск программы установки

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

Если во время установки возникают ошибки установки, проверьте сводный журнал в папке журнала установки Bootstrap (например, %ProgramFiles%\Microsoft SQL Server\160\Setup Bootstrap\Log\Summary.txt).

  1. Запустите мастер установки SQL Server 2022.

  2. На вкладке Установка выберите параметр Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке.

  3. На странице Выбор компонентов выберите следующие компоненты:

    • Службы ядра СУБД

      Чтобы использовать R или Python с SQL Server, необходимо установить экземпляр ядра СУБД. Можно использовать экземпляр по умолчанию или именованный экземпляр.

    • Машинное обучение службы и язык

      Этот параметр устанавливает службы баз данных, поддерживающие выполнение сценариев R и Python.

    На этом снимка экрана показана минимальная функция экземпляра для проверки при установке служб SQL Server 2022 (16.x) Машинное обучение.

    Снимок экрана: выбор компонентов с флажками возле

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

Начиная с SQL Server 2022 (16.x), среды выполнения для R, Python и Java больше не отправляются или устанавливаются с установкой SQL Server. Вместо этого используйте следующие разделы, чтобы установить пользовательские среды выполнения и пакеты.

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

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

  1. Скачайте и установите последнюю версию R 4.2 для Windows.

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

    # R Terminal
    install.packages("iterators")
    install.packages("foreach")
    install.packages("R6")
    install.packages("jsonlite")
    
  3. Скачайте и установите последнюю версию CompatibilityAPI и RevoScaleR пакеты:

    install.packages("https://aka.ms/sqlml/r4.2/windows/CompatibilityAPI_1.1.0.zip", repos=NULL)
    
    install.packages("https://aka.ms/sqlml/r4.2/windows/RevoScaleR_10.0.1.zip", repos=NULL)
    

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

  1. Настройте установленную среду выполнения R с помощью SQL Server. Вы можете изменить версию по умолчанию с помощью RegisterRext.exe служебной программы командной строки. Программа находится в папке приложения R, которая зависит от установки. Как правило, это в %ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64.

    Следующий сценарий можно использовать для настройки установленной среды выполнения R из расположения RegisterRext.exeпапки установки. Имя экземпляра — MSSQLSERVER для экземпляра SQL Server по умолчанию или имени экземпляра для именованного экземпляра SQL Server.

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"MSSQLSERVER"
    

    Если вы настраиваете именованный экземпляр SQL Server, который обычно называется "\SQLEXPRESS", или "MACHINENAME\SQLEXPRESS", укажите только имя экземпляра. Например:

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"SQLEXPRESS"
    
  2. С помощью SQL Server Management Studio (SSMS) или Azure Data Studio подключитесь к экземпляру, в котором установлены службы SQL Server Машинное обучение. Выберите новый запрос , чтобы открыть окно запроса, а затем выполните следующую команду, чтобы включить функцию внешнего скрипта:

    EXEC sp_configure  'external scripts enabled', 1;
    RECONFIGURE WITH OVERRIDE
    

    Если вы уже включили функцию для другого языка, вам не нужно выполнять RECONFIGURE второй раз для R. Базовая платформа расширяемости поддерживает оба языка. Чтобы проверить, убедитесь, что следующая команда возвращается 1 для config_value и run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. Перезапустите службу SQL Server. При перезапуске службы автоматически перезапускается соответствующая служба Панель запуска SQL Server.

    Вы можете перезапустить службу с помощью команды перезапуска правой кнопкой мыши для экземпляра в обозреватель объектов SSMS или с помощью элемента служб в панель управления или с помощью диспетчер конфигурации SQL Server.

  4. Проверьте установку, выполнив простую команду T-SQL, чтобы вернуть версию R:

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

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

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

  1. Скачайте последнюю версию Python 3.10 для Windows. Установите его с помощью следующих параметров:

    1. Откройте приложение установки Python и выберите "Настроить установку".

    2. Убедитесь, что установлен флажок "Установить" для всех пользователей (рекомендуется ).

    3. Для необязательных функций выберите нужные функции (или выберите их все).

    4. На странице "Дополнительные параметры" выберите "Установить для всех пользователей", примите другие параметры по умолчанию и нажмите кнопку "Установить".

      Рекомендуется использовать путь установки Python, к которому могут получить доступ все пользователи (например C:\Program Files\Python310, не только для одного пользователя).

  2. Скачайте и установите последнюю версию revoscalepy пакета и ее зависимости из новой командной строки с повышенными привилегиями:

    cd "C:\Program Files\Python310\"
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" dill numpy==1.22.0 pandas patsy python-dateutil
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" https://aka.ms/sqlml/python3.10/windows/revoscalepy-10.0.1-py3-none-any.whl
    

    Выполните следующие команды icacls , чтобы предоставить доступ READ и EXECUTE к установленным библиотекам в службу запуска SQL Server и SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES). Необходимо предоставить разрешения учетной записи службы, связанной со службой панели запуска, и запустите диспетчер конфигурации SQL Server.

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

    Если вы установили SQL Server в качестве именованного экземпляра, учетная запись службы может иметь $ в середине, например:

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD$SQLEXPRESS":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

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

  1. Настройте установленную среду выполнения Python с помощью SQL Server. Вы можете изменить версию по умолчанию с помощью RegisterRext.exe служебной программы командной строки. Программа находится в пользовательском расположении установки (например, C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs).

    В командной строке с повышенными привилегиями можно использовать следующий сценарий для настройки установленной среды выполнения Python из папки RegisterRext.exeустановки. Имя экземпляра — MSSQLSERVER для экземпляра SQL Server по умолчанию или имени экземпляра для именованного экземпляра SQL Server.

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"MSSQLSERVER"
    

    Если вы настраиваете именованный экземпляр SQL Server, который обычно называется "\SQLEXPRESS", или "MACHINENAME\SQLEXPRESS", укажите только имя экземпляра. Например:

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"SQLEXPRESS"
    
  2. Используйте SQL Server Management Studio или Azure Data Studio, чтобы подключиться к экземпляру, на котором установлен SQL Server Машинное обучение Services. Выберите новый запрос , чтобы открыть окно запроса, а затем выполните следующую команду, чтобы включить функцию внешнего скрипта:

    EXEC sp_configure  'external scripts enabled', 1;
    RECONFIGURE WITH OVERRIDE
    

    Если вы уже включили функцию для другого языка, вам не нужно выполнять RECONFIGURE второй раз для R. Базовая платформа расширяемости поддерживает оба языка. Чтобы проверить, убедитесь, что следующая команда возвращается 1 для config_value и run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. Перезапустите службу SQL Server. При перезапуске службы автоматически перезапускается соответствующая служба Панель запуска SQL Server.

    Вы можете перезапустить службу с помощью команды перезапуска правой кнопкой мыши для экземпляра в обозреватель объектов SSMS или с помощью элемента служб в панель управления или с помощью диспетчер конфигурации SQL Server.

  4. Проверьте установку, выполнив простую команду, чтобы вернуть версию Python:

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

Установка Java

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

Дополнительная настройка

Если проверка внешнего сценария будет пройдена успешно, вы сможете выполнять команды R и Python из SQL Server Management Studio, Visual Studio Code или любого другого клиента, который может отправлять инструкции T-SQL на сервер.

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

Если при выполнении команды возникла ошибка, может потребоваться внести дополнительные конфигурации в службу или базу данных. На уровне экземпляра могут включаться дополнительные конфигурации:

Начиная с SQL Server 2019 в Windows механизм изоляции изменился. Этот механизм влияет на SQLRUserGroup, правила брандмауэра, разрешение файла и подразумеваемую проверку подлинности. Дополнительные сведения см. в разделе Изменения в изоляции служб машинного обучения.

В базе данных могут потребоваться обновления конфигурации. Дополнительные сведения см. в статье Give users permission to SQL Server Machine Learning Services (Предоставление пользователям разрешения в службах машинного обучения SQL Server).

Предлагаемые оптимизации

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

Оптимизация сервера для выполнения сценария

Параметры по умолчанию для установки SQL Server предназначены для оптимизации баланса сервера для различных служб и приложений.

При использовании параметров по умолчанию ресурсы для машинного обучения могут быть ограничены или регулироваться, особенно в случае с операциями с интенсивным использованием памяти.

Чтобы задачам машинного обучения назначались соответствующие приоритеты и выделялись необходимые ресурсы, рекомендуем использовать Resource Governor SQL Server для настройки внешнего пула ресурсов. Кроме того, может потребоваться изменить объем памяти, выделенной для ядра СУБД SQL Server, или увеличить количество учетных записей, выполняемых в службе панели запуска SQL Server.

Если вы используете выпуск Standard и не имеете регулятора ресурсов, вы можете использовать динамические административные представления, расширенные события SQL Server и мониторинг событий Windows для управления ресурсами сервера.

Установка дополнительных пакетов Python и R

Решения Python и R, создаваемые для SQL Server, могут вызывать:

  • Основные функции.
  • Функции из собственных пакетов, установленных с помощью SQL Server.
  • Сторонние пакеты, совместимые с версией Python с открытым исходным кодом и R, устанавливаемые SQL Server.

Пакеты, которые необходимо использовать из SQL Server, должны быть установлены в библиотеке по умолчанию, используемой экземпляром. При наличии отдельной установки Python или R на компьютере, а также если вы установили пакеты в библиотеки пользователей, вы не можете использовать их из T-SQL.

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

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

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

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

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