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

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

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

Внимание

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

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

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

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

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

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

  • Не устанавливайте общие компоненты> Машинное обучение Server (автономный) на том же компьютере, на котором выполняется экземпляр базы данных. Автономный сервер будет конкурировать за одни и те же ресурсы и снизить производительность обеих установок.

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

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

Примечание.

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

Внимание

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

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

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

Дополнительные сведения о том, какие выпуски SQL Server поддерживают интеграцию Python и R со Службами машинного обучения, см. в статье Выпуски и поддерживаемые функции SQL Server 2017.

Дополнительные сведения о том, какие выпуски SQL Server поддерживают интеграцию Python и R со службами Машинное обучение, см. в выпусках и поддерживаемых функциях SQL Server 2019.

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

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

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

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

    Снимок экрана, на котором показано, как создать автономную установку SQL Server или добавить компоненты в существующую установку.

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

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

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

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

    • Службы машинного обучения (в базе данных)

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

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

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

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

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

    • R

      Выберите этот параметр, чтобы добавить пакеты Microsoft R, интерпретатор и R с открытым кодом.

    • Python

      Выберите этот параметр, чтобы добавить пакеты Microsoft Python, исполняемый файл Python 3.5 и выбрать библиотеки из дистрибутива Anaconda.

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

    Снимок экрана: параметры функций для R и Python.

    Снимок экрана: выбор параметров компонентов для R и Python.

    Примечание.

    Не выбирайте параметр Машинное обучение Server (автономный) в разделе "Общие функции". Этот параметр предназначен для использования на отдельном компьютере.

  1. На странице "Согласие на установку Microsoft R Open" нажмите кнопку "Принять>далее".

    Лицензионное соглашение охватывает следующее:

    • Microsoft R Open.
    • Базовые пакеты и средства R с открытым исходным кодом.
    • Улучшенные пакеты R и поставщики услуг подключения от команды разработчиков Майкрософт.
  2. На странице "Согласие на установку Python" нажмите кнопку "Принять>далее". Лицензионное соглашение python с открытым исходным кодом также охватывает Anaconda и связанные инструменты, а также некоторые новые библиотеки Python из команды разработчиков Майкрософт.

    Примечание.

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

  3. На странице "Готово к установке" убедитесь, что эти выбранные элементы включены, а затем нажмите кнопку "Установить".

    • Службы ядра СУБД
    • службы Машинное обучение (в базе данных)
    • R, Python или оба

    Обратите внимание на расположение папки в каталоге ..\Setup Bootstrap\Log, где хранятся файлы конфигурации. После завершения установки можно просмотреть установленные компоненты в сводном файле.

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

  1. На странице "Согласие на установку Microsoft R Open" нажмите кнопку "Принять>далее". Это лицензионное соглашение охватывает Microsoft R Open, которое включает в себя распространение базовых пакетов и средств R с открытым исходным кодом. Он также включает расширенные пакеты R и поставщики услуг подключения из группы разработчиков Майкрософт.

  2. На странице "Согласие на установку Python" нажмите кнопку "Принять>далее". Лицензионное соглашение python с открытым исходным кодом также охватывает Anaconda и связанные инструменты, а также некоторые новые библиотеки Python из команды разработчиков Майкрософт.

  3. На странице "Готово к установке" убедитесь, что эти выбранные элементы включены, а затем нажмите кнопку "Установить".

    • Службы ядра СУБД
    • службы Машинное обучение (в базе данных)
    • R, Python или оба

    Обратите внимание на расположение папки в каталоге ..\Setup Bootstrap\Log, где хранятся файлы конфигурации. После завершения установки можно просмотреть установленные компоненты в сводном файле.

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

Настройка переменных среды

Для интеграции компонентов R следует задать только переменную среды, чтобы обеспечить согласованные MKL_CBWR выходные данные из вычислений библиотеки ядра Intel Math (MKL):

  1. На панели управления выберите Система и безопасность>Система>Расширенные параметры системы>Переменные среды.

  2. Создайте новую пользователь или системную переменную:

    • Задайте для переменной имя MKL_CBWR.
    • Задайте для переменной значение AUTO.

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

Включение выполнения сценария

  1. Используйте SQL Server Management Studio (SSMS) или Azure Data Studio, чтобы подключиться к экземпляру, где установлены Службы машинного обучения SQL Server.

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

    EXEC sp_configure
    
  3. Значение свойства external scripts enabled должно находиться 0 на этом этапе. Функция отключена по умолчанию. Чтобы включить его, чтобы запустить скрипты R или Python, выполните следующую инструкцию:

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

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

Перезапустить службу

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

Вы можете перезапустить службу с помощью любого из следующих методов:

  • Щелкните правой кнопкой мыши команду "Перезапустить" для экземпляра в обозреватель объектов в SSMS
  • Элемент консоли управления (MMC) служб в панель управления
  • Диспетчер конфигурации SQL Server

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

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

  1. В SQL Server Management Studio откройте новое окно запроса и выполните следующую команду:

    EXECUTE sp_configure  'external scripts enabled'
    

    run_value Затем задано значение 1.

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

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

    Откройте новое окно запроса в СРЕДЕ SQL Server Management Studio, а затем запустите сценарий, например:

    • Для R:

      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
      
    • Для Python:

      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
      

    При первом загрузке внешней среды выполнения скрипта скрипт может занять некоторое время. Результаты должны выглядеть примерно так:

    hello
    1

Примечание.

Столбцы или заголовки, используемые в сценарии Python, не возвращаются автоматически. Чтобы добавить имена столбцов для вывода, необходимо указать схему для набора возвращаемых данных. Это можно сделать с помощью WITH RESULTS параметра хранимой процедуры, именования столбцов и указания типа данных SQL.

Например, можно добавить следующую строку, чтобы создать произвольное имя столбца: WITH RESULT SETS ((Col1 AS int))

Применение обновлений

Существующая установка

Если вы добавили службы Машинное обучение в существующий экземпляр SQL Server и ранее применили накопительное обновление (CU), версии ядра СУБД и функции служб Машинное обучение могут отличаться. Это различие может привести к непредвиденному поведению или ошибкам, так как launchpad.exe и sqlservr.exe имеют разные версии.

Выполните следующие действия, чтобы перенести службы Машинное обучение в ту же версию, что и ядро СУБД:

  1. Определите накопительное обновление, которое у вас есть для ядра СУБД. Выполните инструкцию Т-SQL:

    SELECT @@VERSION
    

    Ниже приведен пример выходных данных ИЗ SQL Server 2019 CU 8:

    Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64)   Nov  2 2020 18:35:09   Copyright (C) 2019 Microsoft Corporation  Developer Edition (64-bit) on Windows 10 Enterprise 10.0 (X64) (Build 19042: ) (Hypervisor)
    

    Дополнительные сведения см. в статье Определение уровня версий, выпусков и обновлений SQL Server и компонентов.

  2. При необходимости скачайте накопительное обновление , установленное для ядра СУБД.

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

  4. Нажмите кнопку "Далее" и продолжайте установку.

Новая установка

Если вы устанавливаете службы Машинное обучение с новой установкой ядра СУБД SQL Server, рекомендуется применить последнее накопительное обновление как к компонентам ядра СУБД, так и к компонентам машинного обучения.

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

На отключенных серверах требуются дополнительные действия. Дополнительные сведения см. в разделе Установка на компьютерах без доступа к Интернету > Применение накопительных обновлений.

  1. Начните с уже установленного базового экземпляра — начального выпуска SQL Server.

  2. Перейдите в список обновлений для Microsoft SQL Server.

  3. Загрузите последнее накопительное обновление. Исполняемый файл скачивается и извлекается автоматически.

  4. Запустите программу установки и примите условия лицензии.

  5. На странице выбора компонентов просмотрите компоненты, для которых применяются накопительные обновления. Вы должны увидеть все компоненты, установленные для текущего экземпляра, включая функции машинного обучения. Программа установки скачивает CAB-файлы, необходимые для обновления всех функций.

    Снимок экрана: сводка установленных компонентов.

  6. Продолжайте выполнять указания мастера. Примите условия лицензии для дистрибутивов R и Python.

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

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

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

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

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

Примечание.

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

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

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

Добавление рабочих учетных записей

Если вы ожидаете, что многие пользователи одновременно выполняют скрипты, можно увеличить количество рабочих учетных записей, назначенных службе панели запуска. Дополнительные сведения см. в разделе Масштабирование параллельного выполнения внешних сценариев в 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.

Следующие шаги

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

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