Поделиться через


Установка служб SQL Server Machine Learning (Python и R) на Windows

Применимо к: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

В этой статье показано, как установить службы SQL Server Machine Learning на Windows. Службы Machine Learning можно использовать для запуска скриптов 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 Machine Learning 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 Machine Learning Services на Windows.

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

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

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

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

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

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

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

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

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

Примечание.

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

    • Database Engine Services

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

    • Machine Learning Services (In-Database)

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

    • Database Engine 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.

    Примечание.

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

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

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

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

    Примечание.

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

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

    • службы Database Engine
    • службы Machine Learning (в базе данных)
    • 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. На странице "Готово к установке" убедитесь, что эти выбранные элементы включены, а затем нажмите кнопку "Установить".

    • службы СУБД (система управления базами данных)
    • службы Machine Learning (в базе данных)
    • R, Python или оба

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

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

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

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

  1. В Control Panel Выберите System and Security>System>Advanced System Settings>Environment Variables.

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

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

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

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

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

  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 для экземпляра Object Explorer в SSMS
  • Элемент Services консоли управления Майкрософт (MMC) в Control Panel
  • SQL Server Configuration Manager

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

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

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

    EXECUTE sp_configure  'external scripts enabled'
    

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

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

  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))

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

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

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

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

  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. Запустите установку накопительного обновления и следуйте инструкциям, чтобы снова установить его для Службы машинного обучения. Выберите существующий экземпляр, в котором установлены службы Machine Learning. Состояние обновления показывает неполная установка на странице выбора компонентов.

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

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

Если вы устанавливаете службы Machine Learning с новой установкой ядра СУБД SQL Server, рекомендуется применить последнее накопительное обновление как к ядрам СУБД, так и к компонентам machine learning.

На подключенных к Интернету устройствах накопительные обновления обычно применяются через Windows Update. Но вы также можете использовать следующие шаги для контролируемых обновлений. При применении обновления для ядра СУБД программа установки извлекает накопительные обновления для всех компонентов 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 Machine Learning Services.

Примечание.

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

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

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

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

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

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

Параметры по умолчанию для настройки 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".