Установка служб 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) см. в Install SQL Server 2022 Машинное обучение Services в Windows.

Справочник по версиям Python и R

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

версия SQL Server версия Python Версия R
SQL Server 2016 (13.x) N/A (только R) 3.2.2
SQL Server 2017 (14.x) RTM — CU21 3.5.2 3.3.3
SQL Server 2017 (14.x) CU22 и более поздних версий 3.5.2 и 3.7.2 3.3.3 и 3.5.2
SQL Server 2019 (15.x) 3.7.1 3.5.2
SQL Server 2022 (16.x) 3.10.2 4.2.0

Примечание.

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

Для получения дополнительной информации обо всех поддерживаемых версиях см. раздел Что такое SQL Server Машинное обучение Services?

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

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

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

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

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

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

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

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

Примечание.

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

Внимание

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

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

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

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

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

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

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

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

  2. На вкладке Installation выберите New SQL Server автономную установку или добавьте компоненты в существующую установку.

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

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

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

    • ядро СУБД Services

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

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

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

    • ядро СУБД Services

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

    • Сервисы машинного обучения и языковое расширение

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

    • R

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

    • Python

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

    Сведения об установке и использовании Java см. в разделе Install SQL Server Java language Extension on Windows.

    Скриншот с опциями функций R и Python.

    Screenshot, показывающий выбор параметров для R и Python.

    Примечание.

    Не выбирайте параметр Машинное обучение Server (standalone) в разделе Shared Features. Этот параметр предназначен для использования на отдельном компьютере.

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

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

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

    Примечание.

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

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

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

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

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

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

  2. На странице Consent to Install Python выберите Accept>Next. Соглашение о лицензировании с открытым кодом Python также охватывает Anaconda и связанные средства, а также некоторые новые библиотеки Python из команды разработчиков Майкрософт.

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

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

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

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

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

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

  1. В панель управления Выберите System and Security>System>Advanced System Settings>Environment Variables.

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

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

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

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

  1. Используйте SQL Server Management Studio (SSMS) для подключения к экземпляру, где установлены службы 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 панели запуска.

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

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

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

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

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

    EXECUTE sp_configure  'external scripts enabled'
    

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

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

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

    Откройте новое окно Query в 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
      

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

    привет
    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, рекомендуется применить последнее накопительное обновление как к ядрам СУБД, так и к компонентам machine learning.

На подключенных к Интернету устройствах накопительные обновления обычно применяются через клиентский компонент Центра обновления 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 на сервер.

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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