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

Область применения: SQL Server 2016 (13.x) SQL Server 2017 (14.x)

Важно!

Поддержка сервера Машинное обучение (ранее известного как R Server) закончилась 1 июля 2022 года. Дополнительные сведения см. в разделе Что будет с Machine Learning Server?

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

Важно!

В этой статье описывается старый метод обновления сред выполнения R и Python, называемый привязкой. Если вы установили накопительное обновление 14 или более поздней версии для пакета обновления 2 (SP2) для SQL Server 2016 или накопительное обновление 22 или более поздней версии для SQL Server 2017, вместо этого см. как изменить среду выполнения R или Python по умолчанию на более позднюю версию.

Что такое привязка?

Привязка — это процесс установки, который изменяет содержимое папок R_SERVICES и PYTHON_SERVICES на более новые исполняемые файлы, библиотеки и инструменты с Microsoft Machine Learning Server.

Передаваемые компоненты в составе модели обслуживания изменились. Обновления службы выполняются по графику поддержки Microsoft R Server и Machine Learning Server согласно политике современного жизненного цикла.

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

  • Интеграция Python и R по-прежнему является частью экземпляра ядра СУБД.
  • Лицензирование остается неизменным (привязка не влечет никаких дополнительных затрат).
  • Политики поддержки SQL Server сохраняются для ядра СУБД.

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

Примечание.

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

Рекомендации по привязке для SQL Server 2016

Для клиентов служб SQL Server 2016 R привязка предоставляет такие преимущества:

  • Обновленные пакеты R.
  • Новые пакеты не входят в исходную установку (Microsoft ML).
  • Предварительно обученные модели машинного обучения для анализа тональности и обнаружения изображений.

Все привязки могут быть дополнительно обновлены при выходе нового главного и второстепенного выпуска Microsoft Machine Learning Server.

Схема версий

Таблицы ниже являются схемами версий. В каждой схеме показаны версии пакетов для разных выпусков. Вы можете просмотреть пути обновления при привязке к Microsoft Machine Learning Server (ранее известному как R Server до добавления поддержки Python в Machine Learning Server 9.2.1).

Привязка не гарантирует использование самой последней версии R или Anaconda. При привязке к Microsoft Machine Learning Server вы получаете версию R или Python, установленную с помощью программы установки, которая может быть не последней версии, доступной в Интернете.

SQL Server 2016 R Services

Компонент Начальный выпуск R Server 9.0.1 R Server 9.1 Machine Learning Server 9.2.1 Machine Learning Server 9.3 Machine Learning Server 9.4.7
Microsoft R Open (MRO) и R R 3.2.2 R 3.3.2 R 3.3.3 R 3.4.1 R 3.4.3 R 3.5.2
RevoScaleR 8.0.3 9.0.1 9.1 9.2.1 9.3 9.4.7
MicrosoftML н.д. 9.0.1 9.1 9.2.1 9.3 9.4.7
предварительно обученные модели н.д. 9.0.1 9.1 9.2.1 9.3 9.4.7
sqlrutils н.д. 1.0 1.0 1.0 1.0 1.0
olapR н.д. 1.0 1.0 1.0 1.0 1.0

Службы машинного обучения SQL Server 2017

Компонент Начальный выпуск Machine Learning Server 9.3 Machine Learning Server 9.4.7
Microsoft R Open (MRO) и R R 3.3.3 R 3.4.3 R 3.5.2
RevoScaleR 9,2 9.3 9.4.7
MicrosoftML 9,2 9.3 9.4.7
sqlrutils 1.0 1.0 1.0
olapR 1.0 1.0 1.0
Anaconda 4.2 и Python 3.5 4.2/3.5.2 4.2/3.5.2
revoscalepy 9,2 9.3 9.4.7
microsoftml 9,2 9.3 9.4.7
предварительно обученные модели 9,2 9.3 9.4.7

Как работает обновление компонентов

Библиотеки R и Python и исполняемые файлы обновляются при привязке существующей установки R и Python к Machine Learning Server.

Привязка выполняется установщиком Microsoft Machine Learning Server при запуске программы установки на существующем экземпляре ядра СУБД SQL Server с интеграцией R или Python.

Программа установки обнаружит существующие компоненты и предложит выполнить повторную привязку к Machine Learning Server.

Во время привязки содержимое C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES и \PYTHON_SERVICES перезаписывается новыми исполняемыми файлами и библиотеками C:\Program Files\Microsoft\ML Server\R_SERVER и \PYTHON_SERVER.

Привязка применяется только к компонентам R и Python. В состав пакетов с открытым исходным кодом для Python и R входят:

  • Anaconda
  • Microsoft R Open
  • собственные пакеты RevoScaleR
  • Revoscalepy

Привязка не изменяет модель поддержки для экземпляра ядра СУБД или версию SQL Server.

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

Привязка к Machine Learning Server с помощью программы установки

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

  1. В SSMS запустите SELECT @@version, чтобы убедиться, что сервер соответствует минимальным требованиям к сборке.

    Для SQL Server 2016 R Services минимумом является пакет обновления 1 (SP1) и CU3.

  2. Проверьте версию базы R и пакетов RevoScaleR, чтобы убедиться, что существующие версии ниже тех, которыми вы планируете их заменить.

    EXECUTE sp_execute_external_script
    @language=N'R'
    ,@script = N'str(OutputDataSet);
    packagematrix <- installed.packages();
    Name <- packagematrix[,1];
    Version <- packagematrix[,3];
    OutputDataSet <- data.frame(Name, Version);'
    , @input_data_1 = N''
    WITH RESULT SETS ((PackageName nvarchar(250), PackageVersion nvarchar(max) ))
    
  3. Закройте среду SSMS и другие средства с открытым подключением к SQL Server. Привязка перезаписывает программные файлы. Если SQL Server имеет открытые сеансы, привязка завершится с кодом ошибки привязки 6.

  4. Загрузите Microsoft Machine Learning Server на компьютер с экземпляром, который нужно обновить. Мы рекомендуем последнюю версию.

  5. Распакуйте папку и запустите файл ServerSetup.exe, расположенный в разделе MLSWIN93.

  6. В разделе Настроить установку проверьте компоненты для обновления и просмотрите список совместимых экземпляров.

  7. На странице лицензионное соглашение выберите Я принимаю эти условия, чтобы принять условия лицензирования для Machine Learning Server.

  8. На последующих страницах предоставьте согласие на дополнительные условия лицензирования для всех выбранных компонентов с открытым кодом, например Microsoft R Open или Python Anaconda.

  9. На странице Почти готово запишите папку установки. Папка по умолчанию: \Program Files\Microsoft\ML Server.

    Если вы хотите изменить папку установки, нажмите кнопку Дополнительно, чтобы вернуться на первую страницу мастера. Однако необходимо заново ввести все параметры.

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

Автономная привязка (без доступа к Интернету)

Для систем без подключения к Интернету можно загрузить установщик и CAB-файлы на компьютер, подключенный к Интернету, а затем перенести файлы на изолированный сервер.

Установщик (ServerSetup.exe) включает пакеты Microsoft (RevoScaleR, MicrosoftML, olapR, sqlRUtils). CAB-файлы предоставляют другие основные компоненты. Например, CAB-файл SRO предоставляет R Open, распространяемый корпорацией Майкрософт R с открытым кодом.

Приведенные ниже инструкции описывают, как разместить файлы для автономной установки.

  1. Скачайте установщик MLSWIN93. Он загружается как один сжатый ZIP-файл. Мы рекомендуем последнюю версию, но можно также установить более ранние версии.

  2. Загрузите CAB-файлы. Ниже приведены ссылки на выпуск 9.3. Если требуются более ранние версии, дополнительные ссылки можно найти в R Server 9.1. Вспомним, что Python/Anaconda можно добавить только в экземпляр Служб машинного обучения SQL Server. Предварительно обученные модели существуют как для R, так и для Python. В CAB-файле предоставляются модели на языках, которые вы используете.

    Компонент Загрузка
    R SRO_3.4.3.0_1033.cab
    Python SPO_9.3.0.0_1033.cab
    Предварительно обученная модель MLM_9.3.0.0_1033.cab
  3. Переместите ZIP- и CAB-файлы на целевой сервер.

  4. На сервере введите %temp% в поле выполнения команд, чтобы получить физическое расположение временного каталога. Физический путь зависит от компьютера, но обычно это C:\Users\<your-user-name>\AppData\Local\Temp.

  5. Поместите CAB-файлы в папку %temp%.

  6. Распакуйте установщик.

  7. Запустите ServerSetup.exe, следуя инструкциям на экране, чтобы завершить установку.

Операции командной строки

Совет

Не удается найти SqlBindR? Возможно, вы не запустили программу установки. SqlBindR доступен только после запуска программы установки Machine Learning Server.

  1. Откройте командную строку от имени администратора и перейдите в папку, содержащую sqlbindr.exe. Путь по умолчанию: C:\Program Files\Microsoft\MLServer\Setup

  2. Выполните следующую команду, чтобы просмотреть список доступных экземпляров: SqlBindR.exe /list.

    Запишите полное имя экземпляра. Например, имя экземпляра может быть MSSQL14.MSSQLSERVER для экземпляра по умолчанию или что-то вроде SERVERNAME.МОЙ_ИМЕНОВАННЫЙ_ЭКЗЕМПЛЯР.

  3. Выполните команду SqlBindR.exe с аргументом /bind. Укажите имя обновляемого экземпляра, используя имя экземпляра, возвращенное на предыдущем шаге.

    Например, чтобы обновить экземпляр по умолчанию, введите следующую команду: SqlBindR.exe /bind MSSQL14.MSSQLSERVER

  4. После завершения обновления перезапустите службу панели запуска, связанную с любым измененным экземпляром.

Отмена привязки экземпляра

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

Шаг 1. Отмена привязки

Существует два варианта отката привязки: повторно запустите программу установки или используйте служебную программу командной строки SqlBindR.

Отмена привязки с помощью программы установки

  1. Найдите установщик для Machine Learning Server. Если установщик удален, загрузите его снова или скопируйте с другого компьютера.
  2. Запустите установщик на компьютере с экземпляром, для которого нужно отменить привязку.
  3. Установщик определяет локальные экземпляры, которые являются кандидатами для отмены привязки.
  4. Снимите флажок рядом с экземпляром, который вы хотите вернуть в исходную конфигурацию.
  5. Примите все лицензионные соглашения.
  6. Выберите Готово. Процесс займет некоторое время.

Отмена привязки с помощью командной строки

  1. Откройте командную строку и перейдите в папку, содержащую sqlbindr.exe, как описано в предыдущем разделе.

  2. Выполните команду SqlBindR.exe с аргументом /unbind и укажите экземпляр.

    Например, следующая команда отменяет привязку экземпляра по умолчанию:

    SqlBindR.exe /unbind MSSQL14.MSSQLSERVER

Шаг 2. Восстановление экземпляра SQL Server

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

Альтернативное решение: полностью удалите и переустановите экземпляр ядра СУБД, а затем примените все обновления службы.

Шаг 3. Добавление любых сторонних пакетов

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

Синтаксис команды SqlBindR.exe

Использование

sqlbindr [/list] [/bind <SQL_instance_ID>] [/unbind <SQL_instance_ID>]

Параметры

Имя Описание
список Выводит список идентификаторов всех экземпляров SQL Server на текущем компьютере.
bind Обновляет указанный экземпляр SQL Server до последней версии R Server и обеспечивает автоматическое получение экземпляром будущих обновлений для R Server.
unbind Удаляет последнюю версию R Server из указанного экземпляра SQL Server и блокирует применение будущих обновлений R Server к экземпляру.

Ошибки привязки

Установщик Machine Learning Server и SqlBindR возвращают следующие коды ошибок и сообщения об ошибках:

Код ошибки Сообщение Сведения
Ошибка привязки 0 Ok (успешно) Привязка прошла без ошибок.
Ошибка привязки 1 Недопустимые аргументы Синтаксическая ошибка.
Ошибка привязки 2 Недопустимое действие Синтаксическая ошибка.
Ошибка привязки 3 Недопустимый экземпляр Экземпляр существует, но не является допустимым для привязки.
Ошибка привязки 4 Не подлежит привязке
Ошибка привязки 5 Уже привязан Вы выполнили команду bind , но указанный экземпляр уже привязан.
Ошибка привязки 6 Сбой привязки При отмене привязки экземпляра произошла ошибка. Эта ошибка может возникать, если запустить установщик Machine Learning Server без выбора компонентов. Для привязки необходимо выбрать экземпляр Microsoft SQL Server, а также R и Python, если это экземпляр SQL Server 2017. Эта ошибка также возникает, если SqlBindR не удалось выполнить запись в папку Program Files. Открытые сеансы или дескрипторы SQL Server приведут к этой ошибке. Если вы получите эту ошибку, перезапустите компьютер и повторите действия привязки перед началом новых сеансов.
Ошибка привязки 7 Нет привязки В экземпляре ядра СУБД имеются службы R Services или Службы машинного обучения SQL Server. Экземпляр не привязан к Microsoft Machine Learning Server.
Ошибка привязки 8 Не удалось отменить привязку При отмене привязки экземпляра произошла ошибка.
Ошибка привязки 9 Экземпляры не найдены. На этом компьютере не найдены экземпляры ядра СУБД.

Известные проблемы

В этом разделе перечислены известные проблемы, связанные с использованием служебной программы SqlBindR.exe, а также обновлениями Machine Learning Server, которые могут повлиять на экземпляры SQL Server.

Восстановление ранее установленных пакетов

Если вы выполнили обновление до Microsoft R Server 9.0.1, SqlBindR.exe для этой версии не удастся полностью восстановить первоначальные пакеты или компоненты R. Следует восстановить SQL Server на экземпляре и применить все служебные выпуски. Перезапустите экземпляр.

Более поздняя версия SqlBindR автоматически восстанавливает первоначальные компоненты R, устраняя необходимость в их переустановке или повторном исправлении сервера. Однако необходимо установить все обновления пакетов R, которые могли быть добавлены после первоначальной установки.

Используйте команды R для синхронизации установленных пакетов с файловой системой с помощью записей в базе данных. Дополнительные сведения см. в разделе Управление пакетами R для SQL Server.

Проблемы с перезаписью файла sqlbinr.ini в SQL Server

Сценарий. Эта проблема возникает при привязке Машинное обучение Server 9.4.7 к SQL Server 2017. При обновлении и привязке Python или при обновлении до нового накопительного пакета обновления он не понимает, что Python привязан и перезаписывает файлы. С R подобных проблем не выявлено.

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

Создайте файл sqlbindr.ini, содержащий 9.4.7.82, и сохраните его в следующее расположение:

C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES

Проблемы с несколькими обновлениями от SQL Server

Сценарий. Ранее обновленный экземпляр служб R SQL Server 2016 до версии 9.0.1. Выполнен новый установщик для Microsoft R Server 9.1.0. Установщик показывает список всех допустимых экземпляров. По умолчанию установщик выбирает ранее привязанные экземпляры. Если продолжить, для ранее привязанных экземпляров будет отменена привязка. В результате предыдущая установка 9.0.1 удаляется, в том числе все связанные пакеты, но новая версия Microsoft R Server (9.1.0) не устанавливается.

В качестве обходного решения можно изменить имеющуюся установку R Server следующим образом:

  1. На панели управления и откройте элемент Установка и удаление программ.
  2. Найдите Microsoft R Server и нажмите Изменить.
  3. При запуске установщика выберите экземпляры, которые необходимо привязать к 9.1.0.

Microsoft Machine Learning Server 9.2.1 и 9.3 не имеют этой проблемы.

Привязка или отмена привязки оставляет несколько временных папок

Удалите временные папки после завершения установки.

Примечание.

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

См. также