적용 대상: SQL Server 2016 (13.x)
SQL Server 2017 (14.x)
SQL Server 2019 (15.x)
이 문서에서는 Windows SQL Server Machine Learning Services 설치하는 방법을 보여 줍니다. Machine Learning Services를 사용하여 데이터베이스에서 Python 및 R 스크립트를 실행할 수 있습니다.
중요
이러한 지침은 SQL Server 2016(13.x), SQL Server 2017(14.x) 및 SQL Server 2019(15.x)에 적용됩니다. SQL Server 2022(16.x)의 경우, Windows에서 SQL Server 2022 Machine Learning Services 설치를 참조하세요.
Python 및 R 버전 참조
다음 표에서는 각 SQL Server 릴리스에 포함된 Python 및 R 런타임 버전을 보여줍니다. 이 표를 사용하여 SQL Server 인스턴스에 사용할 수 있는 언어 버전을 결정합니다.
| SQL Server 버전 | Python 버전 | R 버전 |
|---|---|---|
| SQL Server 2016(13.x) | N/A(R만 해당) | 3.2.2 |
| SQL Server 2017(14.x) RTM - CU21 | 3.5.2 | 3.3.3 |
| SQL Server 2017(14.x) CU22 이상 | 3.5.2 및 3.7.2 | 3.3.3 및 3.5.2 |
| SQL Server 2019(15.x) | 3.7.1 | 3.5.2 |
| SQL Server 2022(16.x) | 3.10.2 | 4.2.0 |
참고
SQL Server 2022(16.x)부터 R, Python 및 Java 대한 런타임은 더 이상 SQL Server 설치와 함께 설치되지 않습니다. 대신 원하는 사용자 지정 런타임 및 패키지를 설치합니다. 자세한 내용은
지원되는 모든 버전에 대한 자세한 내용은 SQL Server Machine Learning Services란 무엇인가요?를 참조하세요.
사전 설치 검사 목록
데이터베이스 엔진 인스턴스가 필요합니다. 기존 독립 실행형 인스턴스에 증분 방식으로 추가할 수는 있지만 Python 또는 R 기능만 설치할 수는 없습니다.
비즈니스 연속성을 위해 알웨이 온 가용성 그룹 Machine Learning Services에서 지원됩니다. 각 노드에 Machine Learning Services를 설치하고 패키지를 구성합니다.
SQL Server 2017의 항상 사용 가능한 장애 조치(failover) 클러스터 인스턴스에는 Machine Learning Services 설치가 지원되지 않습니다. SQL Server 2019 이상에서 지원됩니다. 설치 시 Machine Learning Services를 설치해야 하며, 설치한 후에는 기존 장애 조치(failover) 클러스터 인스턴스에 기능을 추가할 수 없습니다.
도메인 컨트롤러에 Machine Learning 서비스를 설치하지 마세요. 설치의 Machine Learning Services 부분이 실패합니다.
데이터베이스 인스턴스를 실행하는 동일한 컴퓨터에 공개 기능>Machine Learning Server(독립 실행형) 설치하지 마세요. 독립 실행형 서버가 동일한 리소스에 대해 경합하여 두 설치 모두 성능이 저하됩니다.
다른 버전의 Python 및 R과 함께 설치가 지원되지만 권장하지는 않습니다. SQL Server 인스턴스는 오픈 소스 R 및 Anaconda 배포판의 자체 복사본을 사용하기 때문에 지원됩니다. SQL Server 외부 컴퓨터에서 Python 및 R을 사용하는 코드를 실행하면 문제가 발생할 수 있으므로 권장하지 않습니다.
- 다른 라이브러리 및 다른 실행 파일을 사용하면 SQL Server 실행 중인 것과 일치하지 않는 결과가 생성됩니다.
- SQL Server 외부 라이브러리에서 실행되는 R 및 Python 스크립트를 관리할 수 없으므로 리소스 경합이 발생할 수 있습니다.
참고
Machine Learning 서비스는 기본적으로 SQL Server 빅 데이터 클러스터 설치됩니다. 빅 데이터 클러스터를 사용하는 경우에는 이 문서의 단계를 수행하지 않아도 됩니다. 자세한 내용은
중요
설정을 마치면 이 문서에 설명된 구성 후 단계를 완료해야 합니다. 이러한 단계에는 SQL Server 외부 스크립트를 사용하도록 설정하고 SQL Server 사용자를 대신하여 R 및 Python 작업을 실행하는 데 필요한 계정을 추가하는 것이 포함됩니다. 일반적으로 구성 변경 시 인스턴스를 다시 시작하거나 실행 패드 서비스를 다시 시작해야 합니다.
설치 미디어 다운로드
SQL Server 다운로드 위치는 버전에 따라 달라집니다.
SQL Server Enterprise, Standard 및 Express 버전. 이러한 버전은 프로덕션 용도로 사용이 허가됩니다. Enterprise 및 Standard Edition의 경우 설치 미디어를 얻으려면 소프트웨어 공급업체에 문의하세요. 구매 정보 및 Microsoft 파트너 디렉터리는 Microsoft 구매 웹 사이트에서 확인할 수 있습니다.
최신 무료 버전
Machine Learning Services와의 Python 및 R 통합을 지원하는 SQL Server 버전에 대한 자세한 내용은 editions 및 SQL Server 2017 지원되는 기능을 참조하세요.
Machine Learning Services와의 Python 및 R 통합을 지원하는 SQL Server 버전에 대한 자세한 내용은 editions 및 SQL Server 2019 지원되는 기능을 참조하세요.
설치 프로그램 실행
로컬 설치의 경우 설치 프로그램을 관리자로서 실행해야 합니다. 원격 공유에서 SQL Server 설치하는 경우 원격 공유에 대한 읽기 및 실행 권한이 있는 도메인 계정을 사용해야 합니다.
SQL Server 설치 마법사를 시작합니다.
설치 탭에서 새로운 SQL Server 독립 실행형 설치를 선택하거나 기존 설치 기능을 추가합니다.
SQL Server 독립 실행형 설치를 만들거나 기존 설치에 기능을 추가하기 위한 옵션을 보여 주는 스크린샷입니다.
기능 선택 페이지에서 다음 옵션을 선택합니다.
데이터베이스 엔진 Services
SQL Server R 및 Python 사용하려면 데이터베이스 엔진의 인스턴스를 설치해야 합니다. 기본 인스턴스나 명명된 인스턴스를 사용할 수 있습니다.
Machine Learning Services(In-Database)
이 옵션은 R 및 Python 스크립트 실행을 지원하는 데이터베이스 서비스를 설치합니다.
데이터베이스 엔진 Services
SQL Server R 또는 Python 사용하려면 데이터베이스 엔진의 인스턴스를 설치해야 합니다. 기본 인스턴스나 명명된 인스턴스를 사용할 수 있습니다.
Machine Learning 서비스 및 언어 확장
이 옵션은 R 및 Python 스크립트 실행을 지원하는 데이터베이스 서비스를 설치합니다.
R
Microsoft R 패키지, 인터프리터 및 오픈 소스 R을 추가하려면 이 옵션을 선택합니다.
Python
Microsoft Python 패키지, Python 실행 파일을 추가하고 Anaconda 배포에서 라이브러리를 선택하려면 이 옵션을 선택합니다. SQL Server 릴리스에 포함된 특정 Python 버전은 Python 및 R 버전 참조 참조하세요.
Java 설치 및 사용하는 방법에 대한 자세한 내용은
Windows 참조하세요.
참고
공유 기능Machine Learning 서버(독립 실행형) 옵션을 공동 기능에서 선택하지 마세요. 이 옵션은 별도의 컴퓨터에서 사용하기 위한 것입니다.
Microsoft R Open 설치에 동의 페이지에서 동의다음을 선택합니다.
사용권 계약은 다음에 적용됩니다.
- Microsoft R Open.
- 오픈 소스 R 기본 패키지 및 도구
- Microsoft 개발 팀의 고급 R 패키지 및 연결 공급자입니다.
Python 설치에 대한 구성 페이지에서 Accept>Next을 선택합니다. Python 오픈 소스 라이선스 계약에는 Anaconda 및 관련 도구와 Microsoft 개발 팀의 새로운 Python 라이브러리도 포함됩니다.
참고
사용 중인 컴퓨터가 인터넷에 연결되어 있지 않으면 이 지점에서 설치를 잠시 중단하고 설치 관리자를 별도로 다운로드할 수 있습니다. 자세한 내용은 인터넷 액세스 없이 기계 학습 구성 요소 설치를 참조하세요.
설치 준비 완료 페이지에서 이러한 선택 사항이 포함되어 있는지 확인하고 설치를 선택합니다.
- 데이터베이스 엔진 서비스
- Machine Learning Services(데이터베이스 내)
- R, Python 또는 둘 다
구성 파일이 저장된 경로 아래에 있는 폴더의 위치를 확인합니다. 설치가 완료되면 요약 파일에 설치된 구성 요소를 검토할 수 있습니다.
설치가 완료된 후 컴퓨터를 다시 시작하라는 메시지가 나타나면 다시 시작합니다. 설치가 끝나면 설치 마법사에 표시되는 메시지를 읽어야 합니다. 자세한 내용은 보기 및 SQL Server 설정 로그 파일 읽기 참조하세요.
Microsoft R Open 설치에 동의 페이지에서 동의다음을 선택합니다. 이 라이선스 계약은 Microsoft R Open을 포괄하며, 여기에는 오픈 소스 R 기반 패키지 및 도구의 배포가 포함됩니다. Microsoft 개발 팀의 고급 R 패키지 및 연결 공급자도 포함됩니다.
Python 설치에 대한 구성 페이지에서 Accept>Next을 선택합니다. Python 오픈 소스 라이선스 계약에는 Anaconda 및 관련 도구와 Microsoft 개발 팀의 새로운 Python 라이브러리도 포함됩니다.
설치 준비 완료 페이지에서 이러한 선택 사항이 포함되어 있는지 확인하고 설치를 선택합니다.
- 데이터베이스 엔진 서비스
- Machine Learning Services(데이터베이스 내)
- R, Python 또는 둘 다
구성 파일이 저장된 경로 아래에 있는 폴더의 위치를 확인합니다. 설치가 완료되면 요약 파일에 설치된 구성 요소를 검토할 수 있습니다.
설치가 완료된 후 컴퓨터를 다시 시작하라는 메시지가 나타나면 다시 시작합니다. 설치가 끝나면 설치 마법사에 표시되는 메시지를 읽어야 합니다. 자세한 내용은 보기 및 SQL Server 설정 로그 파일 읽기 참조하세요.
환경 변수 설정
R 기능 통합의 경우에만 환경 변수를 설정하여 Intel MKL(Math Kernel Library) 계산에서 일관성 있는 출력을 보장해야 합니다.
제어판 시스템 및 보안>시스템>고급 시스템 설정>환경 변수을 선택합니다.
새 사용자 또는 시스템 변수를 만듭니다.
- 변수 이름을 로 설정합니다.
- 변수 값을 로 설정합니다.
이 단계를 수행하려면 서버를 다시 시작해야 합니다. 스크립트 실행을 사용하도록 설정하려는 경우 모든 구성 작업이 완료될 때까지 다시 시작을 보류할 수 있습니다.
스크립트 실행 허용
SSMS(SQL Server Management Studio)를 사용하여 SQL Server Machine Learning Services를 설치한 인스턴스에 연결합니다.
새 쿼리를 선택하여 쿼리 창을 열고 다음 명령을 실행합니다.
EXEC sp_configure이때 속성 값 는 이어야 합니다. 이 기능은 기본적으로 꺼져 있습니다. R 또는 Python 스크립트를 실행할 수 있도록 설정하려면 다음 문을 실행합니다.
EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDER 언어에 대한 기능을 이미 사용하도록 설정한 경우 Python 대해
RECONFIGURE두 번째로 실행할 필요가 없습니다. 기본 확장성 플랫폼은 두 언어를 모두 지원합니다.
서비스를 다시 시작합니다.
설치가 완료되면 데이터베이스 엔진을 다시 시작합니다. 또한 서비스를 다시 시작하면 관련 SQL Server 실행 패드 서비스가 자동으로 다시 시작됩니다.
다음 방법 중 원하는 방법을 사용하여 서비스를 다시 시작할 수 있습니다.
- SSMS의 개체 탐색기 인스턴스에 대한 Restart 명령을 마우스 오른쪽 단추로 클릭합니다.
- 서비스 Microsoft Management Console (MMC) 항목이 있는 제어판
- SQL Server 구성 관리자
설치 확인
외부 스크립트를 시작하는 데 사용되는 모든 구성 요소가 실행 중인지 확인하려면 다음 단계를 사용합니다.
SQL Server Management Studio 새 쿼리 창을 열고 다음 명령을 실행합니다.
EXECUTE sp_configure 'external scripts enabled'을 로 설정합니다.
Services 제어판 항목 또는 SQL Server 구성 관리자 열고 SQL Server 실행 패드 서비스 실행 중인지 확인합니다. R 또는 Python 설치된 모든 데이터베이스 엔진 인스턴스에 대해 하나의 서비스가 있어야 합니다. 서비스에 대한 자세한 내용은 SQL Server Machine Learning Services의 확장성 아키텍처를 참조하세요.
실행 패드가 실행 중인 경우 간단한 Python 및 R 스크립트를 실행하여 외부 스크립팅 런타임이 SQL Server 통신할 수 있는지 확인할 수 있습니다.
SQL Server Management Studio 새 Query 창을 열고 다음과 같은 스크립트를 실행합니다.
R의 경우:
EXEC sp_execute_external_script @language =N'R', @script=N' OutputDataSet <- InputDataSet; ', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GOPython 경우:
EXEC sp_execute_external_script @language =N'Python', @script=N' OutputDataSet = InputDataSet; ', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GO
외부 스크립트 런타임이 처음 로드될 때 스크립트를 실행하는 데 약간의 시간이 걸릴 수 있습니다. 결과가 다음과 같이 표시됩니다.
안녕하세요 1
참고
Python 스크립트에 사용되는 열 또는 제목은 자동으로 반환되지 않습니다. 출력에 대한 열 이름을 추가하려면 반환 데이터 세트에 대한 스키마를 지정해야 합니다. 저장 프로시저의 매개 변수를 사용하여 열의 이름을 정하고 SQL 데이터 형식을 지정하여 이 작업을 수행합니다.
예를 들어 다음 줄을 추가하여 임의의 열 이름을 생성할 수 있습니다.
업데이트 적용
기존 설치
기존 SQL Server 인스턴스에 Machine Learning Services를 추가하고 이전에 CU(누적 업데이트)를 적용한 경우 데이터베이스 엔진의 버전과 Machine Learning Services 기능이 다를 수 있습니다. 이러한 차이로 인해 및 의 버전이 다르기 때문에 예기치 않은 동작이나 오류가 발생할 수 있습니다.
Machine Learning Services를 데이터베이스 엔진과 동일한 버전으로 가져오려면 다음 단계를 수행합니다.
데이터베이스 엔진의 누적 업데이트를 확인합니다. 이 T-SQL 문을 실행합니다.
SELECT @@VERSION다음은 SQL Server 2019 CU 8의 예제 출력입니다.
Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64) Nov 2 2020 18:35:09 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Enterprise 10.0 (X64) (Build 19042: ) (Hypervisor)자세한 내용은 SQL Server 및 해당 구성 요소의 버전, 버전 및 업데이트 수준 결정 참조하세요.
필요하면 데이터베이스 엔진에 설치한 누적 업데이트를 다운로드합니다.
누적 업데이트 설치를 실행하고 지침에 따라 Machine Learning Services에 다시 설치합니다. Machine Learning Services가 설치된 기존 인스턴스를 선택합니다. 업그레이드 상태는 기능 선택 페이지에 불완전하게 설치됨을 표시합니다.
다음을 선택하고 설치를 계속합니다.
새 설치
SQL Server 데이터베이스 엔진을 새로 설치하여 Machine Learning Services를 설치하는 경우 데이터베이스 엔진과 machine learning 구성 요소 모두에 최신 누적 업데이트를 적용하는 것이 좋습니다.
인터넷에 연결된 디바이스에서 누적 업데이트는 일반적으로 Windows 업데이트 통해 적용됩니다. 그러나 제어된 업데이트에 대해 다음 단계를 사용할 수도 있습니다. 데이터베이스 엔진에 대한 업데이트를 적용하면 설치 프로그램에서 동일한 인스턴스에 설치한 모든 Python 또는 R 기능에 대한 누적 업데이트를 가져옵니다.
연결되지 않은 서버에서는 추가 단계가 필요합니다. 자세한 내용은 인터넷에 액세스할 수 없는 컴퓨터에 구성 요소 설치 누적 업데이트 적용을 참조하세요.
초기 릴리스를 SQL Server 이미 설치된 기준 인스턴스로 시작합니다.
Microsoft SQL Server의 업데이트 목록으로 이동합니다.
최신 누적 업데이트를 선택합니다. 실행 파일이 자동으로 다운로드되고 추출됩니다.
설정을 실행하고 라이선스 조건에 동의합니다.
기능 선택 페이지에서 누적 업데이트가 적용되는 기능을 검토합니다. 기계 학습 기능을 포함하여 현재 인스턴스에 설치된 모든 기능이 표시되어야 합니다. 설치 프로그램은 모든 기능을 업데이트하는 데 필요한 CAB 파일을 다운로드합니다.
설치된 기능의 요약을 보여 주는 스크린샷
마법사를 계속 진행하세요. R 및 Python 배포에 대한 사용 조건에 동의합니다.
추가 구성
외부 스크립트 확인 단계가 성공한 경우 SQL Server Management Studio, Visual Studio Code 또는 T-SQL 문을 서버에 보낼 수 있는 다른 클라이언트에서 R 또는 Python 명령을 실행할 수 있습니다.
명령을 실행할 때 오류가 발생하면 서비스 또는 데이터베이스에 대한 추가 구성을 수행해야 할 수 있습니다. 인스턴스 수준에서 추가 구성은 다음을 포함할 수 있습니다.
- SQL Server Machine Learning Services에 대한 방화벽 구성
- 추가 네트워크 프로토콜 사용
- 원격 연결 사용
- SQLRUserGroup에 대한 로그인 만들기
- 디스크 할당량을 관리하여 디스크 공간을 소모하는 작업을 실행하는 외부 스크립트 방지
Windows 2019년 SQL Server 격리 메커니즘이 변경되었습니다. 이 메커니즘은 SQLRUserGroup, 방화벽 규칙, 파일 사용 권한 및 묵시적 인증에 영향을 줍니다. 자세한 내용은 Machine Learning Services의 격리 변경을 참조하세요.
데이터베이스에서는 구성 업데이트가 필요할 수 있습니다. 자세한 내용은 SQL Server Machine Learning 서비스에 대한 사용자 권한 참조하세요.
참고
추가 구성이 필요한지 여부는 보안 스키마, SQL Server 설치한 위치 및 사용자가 데이터베이스에 연결하고 외부 스크립트를 실행할 것으로 예상하는 방법에 따라 달라집니다.
권장 최적화
이제 모든 기능이 작동했으므로 기계 학습을 지원하거나 미리 학습된 기계 학습 모델을 설치하도록 서버를 최적화할 수도 있습니다.
더 많은 작업자 계정 추가
여러 사용자가 동시에 스크립트를 실행할 것으로 예상되는 경우 실행 패드 서비스에 할당된 작업자 계정 수를 늘릴 수 있습니다. 자세한 내용은 SQL Server Machine Learning Services 외부 스크립트의 동시 실행 크기 조정을 참조하세요.
스크립트 실행을 위한 서버 최적화
SQL Server 설정에 대한 기본 설정은 다양한 다른 서비스 및 애플리케이션에 대해 서버의 균형을 최적화하기 위한 것입니다.
기본 설정을 사용할 경우, 특히 메모리를 많이 사용하는 작업에서는 기계 학습에 대한 리소스가 때에 따라 제한되곤 합니다.
기계 학습 작업의 우선 순위가 지정되고 리소스가 적절하게 지정되도록 하려면 SQL Server Resource Governor 사용하여 외부 리소스 풀을 구성하는 것이 좋습니다. SQL Server 데이터베이스 엔진에 할당된 메모리 양을 변경하거나 SQL Server 실행 패드 서비스에서 실행되는 계정 수를 늘릴 수도 있습니다.
외부 리소스 관리를 위해 리소스 풀을 구성하려면 외부 리소스 풀 만들기를 참조하세요.
데이터베이스에 예약된 메모리 양을 변경하려면 서버 메모리 구성 옵션을 참조하세요.
실행 패드를 시작할 수 SQL Server R 계정 수를 변경하려면 SQL Server Machine Learning Services 외부 스크립트의 동시 실행 크기 조정을 참조하세요.
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에서 해당 패키지를 사용할 수 없습니다.
추가 패키지를 설치하고 관리하기 위해 데이터베이스 수준으로 패키지를 공유하도록 사용자 그룹을 설정하거나 사용자가 자신의 패키지를 설치할 수 있도록 데이터베이스 역할을 구성할 수 있습니다. 자세한 내용은 새 R 패키지 설치를 참조하세요.
관련 콘텐츠
- SQL Server Machine Learning Services는 무엇인가요?
Windows - Python 자습서: SQL 기계 학습을 사용하여 선형 회귀 모델 배포
- Python 자습서: SQL 기계 학습을 사용하여 K-평균 클러스터링으로 고객 분류하기
- 빠른 시작: SQL 기계 학습을 사용하여 간단한 R 스크립트 실행
- R 자습서: 이진 분류를 사용하여 NYC 택시 요금 예측