SQL Server 2019 빅 데이터 클러스터에서 Machine Learning Services를 사용하여 Python 및 R 스크립트 실행

적용 대상: SQL Server 2019(15.x)

중요

Microsoft SQL Server 2019 빅 데이터 클러스터 추가 기능이 사용 중지됩니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일에 종료됩니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.

SQL Server 빅 데이터 클러스터에서 Machine Learning Services를 사용하여 Python 및 R 스크립트를 실행할 수 있습니다.

참고

Java 언어 확장을 사용하여 SQL Server 빅 데이터 클러스터의 마스터 인스턴스에서 Java 코드를 실행할 수도 있습니다. 아래 단계를 따르면 SQL Server 언어 확장도 활성화됩니다.

Machine Learning Services 사용 설정

Machine Learning Services는 SQL Server 2019 빅 데이터 클러스터에 기본적으로 설치되며 별도의 설치가 필요하지 않습니다.

Machine Learning Services를 사용하려면 마스터 인스턴스에서 다음 문을 실행합니다.

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

이제 빅 데이터 클러스터의 마스터 인스턴스에서 Python 및 R 스크립트를 실행할 준비가 되었습니다. 다음 단계의 빠른 시작을 참고하여 첫 번째 스크립트를 실행하세요.

참고

가용성 그룹 수신기 연결에는 구성 설정을 설정할 수 없습니다. 빅 데이터 클러스터가 고가용성으로 배포된 경우, 각 복제본에서 external scripts enabled를 설정합니다. 고가용성 클러스터에서 사용하도록 설정을 참조하세요.

고가용성 클러스터에서 사용하도록 설정

SQL Server 빅 데이터 클러스터를 고가용성으로 배포하면 배포가 마스터 인스턴스에 대해 가용성 그룹을 만듭니다. Machine Learning Services를 사용하도록 설정하려면 가용성 그룹의 각 인스턴스에서 external scripts enabled를 설정합니다. 빅 데이터 클러스터의 경우 SQL Server 마스터 인스턴스의 각 복제본에서 sp_configure를 실행해야 합니다.

다음 섹션에서는 각 인스턴스에서 외부 스크립트를 사용하도록 설정하는 방법을 설명합니다.

각 인스턴스에 대해 외부 부하 분산 장치 만들기

가용성 그룹에 있는 각 복제본에 대해, 인스턴스에 연결할 수 있도록 부하 분산 장치를 만듭니다.

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-Means 클러스터링)

NYC 택시 팁(분류)

R 자습서

스키 대여(의사 결정 트리)

고객 분류(K-Means 클러스터링)

NYC 택시 팁(분류)

SQL Server 빅 데이터 클러스터 기계 학습 방법 가이드

데이터 탐색 및 모델링

데이터 형식 변환

배포

예측

패키지 관리

새 Python 패키지 설치

새 R 패키지 설치

Monitor

보안

Spark Machine Learning

다음 단계