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

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

Важно!

Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, а программное обеспечение будет продолжать поддерживаться через SQL Server накопительных обновлений до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.

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

Примечание

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

Включение служб машинного обучения

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

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

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

Теперь все готово для выполнения скриптов Python и R в главном экземпляре кластеров больших данных. Перед тем как запустить первый скрипт, ознакомьтесь с краткими руководствами в разделе Следующие шаги.

Примечание

Параметр конфигурации не может быть задан для соединения прослушивателя группы доступности. Если кластеры больших данных развертываются с высоким уровнем доступности, установите external scripts enabled на каждой реплике. См. раздел Включение кластера с высоким уровнем доступности.

Включение кластера с высоким уровнем доступности

При развертывании кластера больших данных SQL Server с высоким уровнем доступности развертывание создает группу доступности для главного экземпляра. Чтобы включить службы машинного обучения, установите external scripts enabled на каждом экземпляре группы доступности. Для кластера больших данных необходимо выполнить sp_configure на каждой реплике главного экземпляра SQL Server.

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

Создание внешнего балансировщика нагрузки для каждого экземпляра

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

kubectl expose pod <pod-name> --port=<connection port number> --name=<load-balancer-name> --type=LoadBalancer -n <kubernetes namespace>

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

  • <pod-name>: master-#
  • <connection port number>: 1533
  • <load-balancer-name>: mymaster-#
  • <kubernetes namespace>: mssql-cluster

Обновите следующий сценарий для своей среды и выполните команды:

kubectl expose pod master-0 --port=1533 --name=mymaster-0 --type=LoadBalancer -n mssql-cluster
kubectl expose pod master-1 --port=1533 --name=mymaster-1 --type=LoadBalancer -n mssql-cluster
kubectl expose pod master-2 --port=1533 --name=mymaster-2 --type=LoadBalancer -n mssql-cluster

kubectl возвращает следующие выходные данные.

service/mymaster-0 exposed
service/mymaster-1 exposed
service/mymaster-2 exposed

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

Включение выполнения скрипта на каждой реплике

  1. Получите IP-адрес конечной точки главной реплики.

    Следующая команда возвращает внешний IP-адрес конечной точки реплики.

    kubectl get services <load-balancer-name> -n <kubernetes namespace>

    Чтобы получить внешний IP-адрес для каждой реплики в этом сценарии, выполните следующие команды:

    kubectl get services mymaster-0 -n mssql-cluster
    kubectl get services mymaster-1 -n mssql-cluster
    kubectl get services mymaster-2 -n mssql-cluster
    

    Примечание

    Внешний IP-адрес будет доступен через некоторое время. Периодически запускайте предыдущий скрипт, пока каждая конечная точка не вернет внешний IP-адрес.

  2. Подключитесь к конечной точке главной реплики и разрешите выполнение скрипта.

    Выполните приведенную ниже инструкцию.

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

    Например, можно выполнить предыдущую команду с sqlcmd. В следующем примере показано подключение к конечной точке главной реплики и выполнение скрипта. Замените значения в скрипте значениями для своей среды.

    sqlcmd -S <IP address>,1533 -U <user name> -P <password> -Q "EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;"
    

    Повторите этот шаг для каждой реплики.

Демонстрация

Этот процесс показан на следующем рисунке.

Снимок экрана командной строки с демонстрацией необходимых шагов для включения внешних скриптов.

Теперь все готово для выполнения скриптов Python и R в главном экземпляре кластеров больших данных. Перед тем как запустить первый скрипт, ознакомьтесь с краткими руководствами в разделе Следующие шаги.

Удаление конечных точек главной реплики

В кластере Kubernetes удалите конечную точку для каждой реплики. Конечная точка предоставляется в Kubernetes в качестве службы балансировки нагрузки.

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

kubectl delete svc <load-balancer-name> -n mssql-cluster

Для примеров в этой статье выполните следующие команды.

kubectl delete svc mymaster-0 -n mssql-cluster
kubectl delete svc mymaster-1 -n mssql-cluster
kubectl delete svc mymaster-2 -n mssql-cluster

Краткие руководства по машинному обучению в Кластерах больших данных SQL Server

Краткие руководства для Python

Краткие руководства по R

Учебники по машинному обучению в Кластерах больших данных SQL Server

Руководство по Python

Прокат лыж (линейная регрессия)

Категоризация клиентов (кластеризация методом k-средних)

Чаевые за поездку в такси в Нью-Йорке (классификация)

Учебники по R

Прокат лыж (дерево принятия решений)

Категоризация клиентов (кластеризация методом k-средних)

Чаевые за поездку в такси в Нью-Йорке (классификация)

Практические руководства по машинному обучению в Кластерах больших данных SQL Server

исследование и моделирование данных;

Преобразования типов данных

Развернуть

Прогнозы

Управление пакетами

Установка новых пакетов Python

Установка новых пакетов R

Azure Monitor

Безопасность

Машинное обучение Spark

Дальнейшие действия