Windows에 SQL Server 2022 Machine Learning Services(Python 및 R) 설치

적용 대상: SQL Server 2022(16.x)

이 문서에서는 Windows에 SQL Server 2022 Machine Learning Services를 설치하는 방법을 보여 줍니다. Machine Learning Services를 사용하여 데이터베이스 내에서 R 또는 Python 스크립트를 실행할 수 있습니다.

참고

이러한 지침은 Windows의 SQL Server 2022(16.x)에만 적용됩니다. Windows에 SQL Server 2016(13.x), SQL Server 2017(14.x) 또는 SQL Server 2019(15.x)용 SQL Server Machine Learning Services를 설치하려면 Windows에 SQL Server Machine Learning Services(Python 및 R) 설치를 참조하세요.

Linux의 경우 Linux에 SQL Server Machine Learning Services(Python 및 R) 설치를 참조하세요.

사전 설치 검사 목록

  • 데이터베이스 엔진 인스턴스가 필요합니다. Python 또는 R 기능은 기존 인스턴스에 증분식으로 추가할 수는 있지만 설치할 수는 없습니다.

  • 비즈니스 연속성을 위해 Always On 가용성 그룹은 Machine Learning Services에 대해 지원됩니다. 각 노드에서 Machine Learning Services를 설치하고 패키지를 구성합니다.

  • SQL Server 2019 이상의 Always On 장애 조치(failover) 클러스터 인스턴스에서도 Machine Learning Services 설치가 지원됩니다.

  • 도메인 컨트롤러에 Machine Learning Services를 설치하지 마세요. 설치 시 Machine Learning Services 부분이 실패하게 됩니다.

  • 다른 버전의 Python 및 R과 함께 설치할 수 있지만 권장하지는 않습니다. SQL Server 인스턴스가 오픈 소스 R 및 Anaconda 배포의 자체 복사본을 사용하기 때문에 지원됩니다. SQL Server 외부의 컴퓨터에서 Python 및 R을 사용하는 코드를 실행하면 문제가 발생할 수 있으므로 권장하지 않습니다.

    • 다른 라이브러리와 다른 실행 파일을 사용하면 SQL Server에서 실행 중인 것과 일치하지 않는 결과가 생성됩니다.
    • SQL Server는 외부 라이브러리에서 실행되는 R 및 Python 스크립트를 관리할 수 없으므로 리소스 경합이 초래됩니다.

중요

설정을 마치면 이 문서에 설명된 구성 후 단계를 완료해야 합니다. 이러한 단계에는 SQL Server에서 외부 스크립트를 사용하도록 설정하는 작업이 포함될 수 있습니다. 일반적으로 구성 변경 시 인스턴스를 다시 시작하거나 실행 패드 서비스를 다시 시작해야 합니다.

설치 미디어 다운로드

SQL Server 다운로드 위치는 버전에 따라 다릅니다.

  • SQL Server Enterprise, Standard 및 Express Edition 이러한 버전은 프로덕션 용도로 사용이 허가됩니다. Enterprise 및 Standard Edition의 경우 설치 미디어를 얻으려면 소프트웨어 공급업체에 문의하세요. 구매 정보 및 Microsoft 파트너 디렉터리는 Microsoft 구매 웹 사이트에서 확인할 수 있습니다.
  • 최신 무료 버전

설치 프로그램 실행

로컬 설치의 경우 설치 프로그램을 관리자로서 실행해야 합니다. 원격 공유로 SQL Server를 설치하는 경우 원격 공유에 대한 읽기 및 실행 권한이 있는 도메인 계정을 사용해야 합니다.

설치 중에 설치 오류가 발생하면 설치 부트스트랩 로그 폴더에서 요약 로그를 확인합니다(예: %ProgramFiles%\Microsoft SQL Server\160\Setup Bootstrap\Log\Summary.txt).

  1. SQL Server 2022 설치 마법사를 시작합니다.

  2. 설치 탭에서 새 SQL Server 독립 실행형 설치 또는 기존 설치에 기능 추가를 선택합니다.

  3. 기능 선택 페이지에서 다음 옵션을 선택합니다.

    • 데이터베이스 엔진 서비스

      SQL Server에서 R 또는 Python을 사용하려면 데이터베이스 엔진의 인스턴스를 설치해야 합니다. 기본 인스턴스나 명명된 인스턴스를 사용할 수 있습니다.

    • Machine Learning Services 및 언어

      이 옵션은 R 및 Python 스크립트 실행을 지원하는 데이터베이스 서비스를 설치합니다.

    이 스크린샷은 SQL Server 2022(16.x) Machine Learning Services를 설치할 때 확인할 최소 인스턴스 기능을 보여 줍니다.

    Screenshot of feature selection showing check boxes next to Database Engine Services and Machine Learning Services and Language.

런타임 및 패키지 설치

SQL Server 2022(16.x)부터 R, Python 및 Java용 런타임은 더 이상 SQL Server 설치 프로그램과 함께 제공되거나 설치되지 않습니다. 대신 다음 섹션을 사용하여 사용자 지정 런타임 및 패키지를 설치합니다.

R 지원 설정

R 런타임 설치

  1. Windows용 R 4.2의 최신 버전을 다운로드하여 설치합니다.

  2. CompatibilityAPIRevoScaleR에 대한 종속성을 설치합니다. 설치한 버전의 R 터미널에서 다음 명령을 실행합니다.

    # R Terminal
    install.packages("iterators")
    install.packages("foreach")
    install.packages("R6")
    install.packages("jsonlite")
    
  3. 최신 버전의 CompatibilityAPIRevoScaleR 패키지를 다운로드하여 설치합니다.

    install.packages("https://aka.ms/sqlml/r4.2/windows/CompatibilityAPI_1.1.0.zip", repos=NULL)
    
    install.packages("https://aka.ms/sqlml/r4.2/windows/RevoScaleR_10.0.1.zip", repos=NULL)
    

SQL Server를 사용하여 R 런타임 구성

  1. SQL Server를 사용하여 설치된 R 런타임을 구성합니다. RegisterRext.exe 명령줄 유틸리티를 사용하여 기본 버전을 변경할 수 있습니다. 유틸리티는 설치에 따라 달라지는 R 애플리케이션 폴더에 있습니다. 일반적으로 %ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64에 있습니다.

    다음 스크립트를 사용하여 RegisterRext.exe의 설치 폴더 위치에서 설치된 R 런타임을 구성할 수 있습니다. 인스턴스 이름은 SQL Server 기본 인스턴스의 경우 MSSQLSERVER이거나 명명된 SQL Server 인스턴스의 인스턴스 이름입니다.

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"MSSQLSERVER"
    

    일반적으로 ".\SQLEXPRESS" 또는 "MACHINENAME\SQLEXPRESS"라고 하는 명명된 SQL Server 인스턴스를 구성하는 경우 인스턴스 이름만 포함합니다. 예시:

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"SQLEXPRESS"
    
  2. SQL Server Management Studio(SSMS) 또는 Azure Data Studio를 사용하여 SQL Server Machine Learning Services를 설치한 인스턴스에 연결합니다. 새 쿼리를 선택하여 쿼리 창을 연 후, 다음 명령을 실행하여 외부 스크립팅 기능을 사용하도록 설정합니다.

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

    다른 언어에 대해 기능을 이미 사용하도록 설정한 경우 R에 대해 RECONFIGURE를 두 번 실행할 필요가 없습니다. 기본 확장성 플랫폼은 두 언어를 모두 지원합니다. 확인하려면 다음 명령이 다음 중에서 config_valuerun_value에 대해 1를 반환하는지 확인합니다.

    EXEC sp_configure  'external scripts enabled';
    
  3. SQL Server 서비스를 다시 시작합니다. 서비스를 다시 시작하면 관련 SQL Server 실행 패드 서비스가 자동으로 다시 시작됩니다.

    SSMS 개체 탐색기의 인스턴스에 대해 Restart 명령을 마우스 오른쪽 단추로 클릭하거나 제어판의 서비스 항목을 사용하거나 SQL Server 구성 관리자를 사용하여 서비스를 다시 시작할 수 있습니다.

  4. R 버전을 반환하는 간단한 T-SQL 명령을 실행하여 설치를 확인합니다.

    EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R';
    GO
    

Python 지원 설정

Python 런타임 설치

  1. 최신 버전의 Windows용 Python 3.10을 다운로드합니다. 다음 옵션을 사용하여 설치합니다.

    1. Python 설치 애플리케이션을 열고 설치 사용자 지정을 선택합니다.

    2. 모든 사용자에 대한 설치 시작 관리자(권장) 확인란이 선택되어 있는지 확인합니다.

    3. 선택적 기능의 경우 원하는 기능을 선택하거나 모두 선택합니다.

    4. 고급 옵션 페이지에서 모든 사용자에 대해 설치를 선택하고 다른 기본 옵션을 적용한 다음, 설치를 선택합니다.

      단일 사용자와 관련된 경로가 아니라 모든 사용자가 액세스할 수 있는 Python 설치 경로(예: C:\Program Files\Python310)를 사용하는 것이 좋습니다.

  2. 새 관리자 권한 명령 프롬프트에서 최신 버전의 revoscalepy 패키지 및 해당 종속성을 다운로드하여 설치합니다.

    cd "C:\Program Files\Python310\"
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" dill numpy==1.22.0 pandas patsy python-dateutil
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" https://aka.ms/sqlml/python3.10/windows/revoscalepy-10.0.1-py3-none-any.whl
    

    다음 icacls 명령을 실행하여 SQL Server 실행 패드 서비스SID S-1-15-2-1(ALL_APPLICATION_PACKAGES)에 설치된 라이브러리에 대한 READ 및 EXECUTE 액세스 권한을 부여합니다. SQL Server 구성 관리자 검사 실행 패드 서비스와 연결된 서비스 계정에 권한을 부여해야 합니다.

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

    SQL Server를 명명된 인스턴스로 설치한 경우 서비스 계정에 중간이 있을 $ 수 있습니다. 예를 들면 다음과 같습니다.

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD$SQLEXPRESS":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

SQL Server를 사용하여 Python 런타임 구성

  1. SQL Server를 사용하여 설치된 Python 런타임을 구성합니다. RegisterRext.exe 명령줄 유틸리티를 사용하여 기본 버전을 변경할 수 있습니다. 유틸리티는 사용자 지정 설치 위치에 있습니다(예: C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs).

    관리자 권한 명령 프롬프트에서 다음 스크립트를 사용하여 설치 폴더 위치에서 RegisterRext.exe설치된 Python 런타임을 구성할 수 있습니다. 인스턴스 이름은 SQL Server 기본 인스턴스의 경우 MSSQLSERVER이거나 명명된 SQL Server 인스턴스의 인스턴스 이름입니다.

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"MSSQLSERVER"
    

    일반적으로 ".\SQLEXPRESS" 또는 "MACHINENAME\SQLEXPRESS"라고 하는 명명된 SQL Server 인스턴스를 구성하는 경우 인스턴스 이름만 포함합니다. 예시:

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"SQLEXPRESS"
    
  2. SQL Server Management Studio 또는 Azure Data Studio를 사용하여 SQL Server Machine Learning Services를 설치한 인스턴스에 연결합니다. 새 쿼리를 선택하여 쿼리 창을 연 후, 다음 명령을 실행하여 외부 스크립팅 기능을 사용하도록 설정합니다.

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

    다른 언어에 대해 기능을 이미 사용하도록 설정한 경우 R에 대해 RECONFIGURE를 두 번 실행할 필요가 없습니다. 기본 확장성 플랫폼은 두 언어를 모두 지원합니다. 확인하려면 다음 명령이 다음 중에서 config_valuerun_value에 대해 1를 반환하는지 확인합니다.

    EXEC sp_configure  'external scripts enabled';
    
  3. SQL Server 서비스를 다시 시작합니다. 서비스를 다시 시작하면 관련 SQL Server 실행 패드 서비스가 자동으로 다시 시작됩니다.

    SSMS 개체 탐색기의 인스턴스에 대해 Restart 명령을 마우스 오른쪽 단추로 클릭하거나 제어판의 서비스 항목을 사용하거나 SQL Server 구성 관리자를 사용하여 서비스를 다시 시작할 수 있습니다.

  4. Python 버전을 반환하는 간단한 명령을 실행하여 설치를 확인합니다.

    EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python'
    GO
    

Java 설치

Java 설치 및 사용에 대한 자세한 내용은 Windows에 SQL Server Java 언어 확장 설치를 참조하세요.

추가 구성

외부 스크립트 확인 단계가 성공하면 SQL Server Management Studio, Visual Studio Code에서 또는 T-SQL 문을 서버로 보낼 수 있는 기타 클라이언트에서 R 또는 Python 명령을 실행할 수 있습니다.

추가 구성이 필요한지 여부는 보안 스키마, SQL Server를 설치한 위치, 사용자가 데이터베이스에 연결하여 외부 스크립트를 실행하는 방법에 따라 결정됩니다.

명령을 실행할 때 오류가 발생하면 서비스 또는 데이터베이스에 대한 추가 구성을 수행해야 할 수 있습니다. 인스턴스 수준에서 추가 구성은 다음을 포함할 수 있습니다.

Windows의 SQL Server 2019부터 격리 메커니즘이 변경되었습니다. 이 메커니즘은 SQLRUserGroup, 방화벽 규칙, 파일 사용 권한 및 묵시적 인증에 영향을 줍니다. 자세한 내용은 Machine Learning Services에 대한 격리 변경 사항을 참조하세요.

데이터베이스에서는 구성 업데이트가 필요할 수 있습니다. 자세한 내용은 사용자에게 SQL Server Machine Learning Services 사용 권한 부여를 참조하세요.

권장 최적화

이제 모두 제대로 작동하므로 기계 학습을 지원하도록 서버를 최적화하거나 사전 교육된 기계 학습 모델을 설치할 수도 있습니다.

스크립트 실행을 위한 서버 최적화

SQL Server 설치의 기본 설정은 다양한 기타 서비스 및 애플리케이션에 대한 서버 균형을 최적화하기 위한 것입니다.

기본 설정을 사용할 경우, 특히 메모리를 많이 사용하는 작업에서는 기계 학습에 대한 리소스가 때에 따라 제한되곤 합니다.

기계 학습 작업에 적절한 우선 순위와 리소스가 지정되도록 SQL Server Resource Governor를 사용하여 외부 리소스 풀을 구성하는 것이 좋습니다. 또한 SQL Server 데이터베이스 엔진에 할당된 메모리 크기를 변경하거나 SQL Server 실행 패드 서비스에서 실행되는 계정 수를 늘릴 수도 있습니다.

Standard Edition을 사용 중이고 Resource Governor가 없는 경우 동적 관리 뷰, SQL Server 확장 이벤트 및 Windows 이벤트 모니터링을 사용하여 서버 리소스를 관리할 수 있습니다.

추가 Python 및 R 패키지 설치

SQL Server용으로 만든 Python 및 R 솔루션은 다음을 호출할 수 있습니다.

  • 기본 함수.
  • SQL Server와 함께 설치된 독점 패키지의 함수입니다.
  • SQL Server가 설치하는 오픈 소스 Python 및 R 버전과 호환되는 타사 패키지입니다.

SQL Server에서 사용할 패키지는 인스턴스가 사용하는 기본 라이브러리에 설치되어야 합니다. Python 또는 R이 컴퓨터에 별도로 설치되어 있거나 패키지를 사용자 라이브러리에 설치한 경우에는 T-SQL에서 해당 패키지를 사용할 수 없습니다.

추가 패키지를 설치 및 관리하기 위해 데이터베이스 수준에서 패키지를 공유하도록 사용자 그룹을 설정할 수 있습니다. 또는 사용자가 자신의 패키지를 설치할 수 있도록 데이터베이스 역할을 구성할 수 있습니다. 자세한 내용은 Python 패키지 설치새 R 패키지 설치를 참조하세요.

Python 및 R 런타임용 독립 실행형 RevoScale 패키지

RevoScale 패키지는 Python 및 R 런타임을 사용하는 독립 실행형 패키지로도 지원됩니다. 독립 실행형 시나리오에 대해 Python 또는 R 런타임을 설정하려면 각각 Python 런타임 설치R 런타임 설치 섹션의 지침을 따릅니다.

Python 개발자는 다음 자습서에 따라 SQL Server에서 Python을 사용하는 방법을 알아볼 수 있습니다.

R 개발자는 몇 가지 간단한 예제를 시작하고 R이 SQL Server에서 작동하는 방식의 기초를 알아볼 수 있습니다. 다음 단계로 가려면 아래 링크를 참조하세요.