다음을 통해 공유


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

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

Important

Microsoft SQL Server 2019 빅 데이터 클러스터는 사용 중지되었습니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일부터 종료되었습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 공지 블로그 게시물 및 빅 데이터 옵션을 참조하세요.

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

Note

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 스크립트를 실행할 준비가 되었습니다. 첫 번째 스크립트를 실행하려면 다음 단계에서 빠른 시작을 참조하세요.

Note

가용성 그룹 수신기 연결에서는 구성 설정을 설정할 수 없습니다. 빅 데이터 클러스터가 고가용성으로 배포되는 경우 각 복제본에 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
    

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

NYC 택시 팁(분류)

R tutorials

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

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

NYC 택시 팁(분류)

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

데이터 탐색 및 모델링

데이터 형식 변환

Deploy

Predictions

Package management

새 Python 패키지 설치

새 R 패키지 설치

Monitor

Security

스파크 머신 러닝

Next steps