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


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

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

Important

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

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

Note

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

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

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

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

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

Теперь вы готовы запускать скрипты Python и R в главном экземпляре кластеров больших данных. Ознакомьтесь с краткими руководствами, описанными в разделе "Дальнейшие действия " для запуска первого сценария.

Note

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

    Note

    До того, как внешний 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;"
    

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

Demonstration

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

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

Теперь вы готовы запускать скрипты 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 quickstarts

R quickstarts

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

Python tutorial

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

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

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

R tutorials

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

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

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

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

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

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

Deploy

Predictions

Package management

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

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

Monitor

Security

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

Next steps