SQL Server Machine Learning Services에서 바인딩을 사용하여 Python 및 R 런타임 업그레이드
적용 대상: SQL Server 2016(13.x) SQL Server 2017(14.x)
중요
Machine Learning Server(이전의 R Server) 지원은 2022년 7월 1일에 종료되었습니다. 자세한 내용은 Machine Learning Server는 어떻게 되나요?를 참조하세요.
이 문서에서는 바인딩이라는 설치 프로세스를 사용하여 SQL Server 2016 R Services 또는 SQL Server 2017 Machine Learning Services에서 R 또는 Python 런타임을 업그레이드하는 방법을 설명합니다. Microsoft Machine Learning Server에 바인딩하여 최신 버전의 Python 및 R을 가져올 수 있습니다.
중요
이 문서에서는 바인딩이라고 하는 R 및 Python 런타임을 업그레이드하는 이전 방법을 설명합니다. SQL Server 2016 SP(서비스 팩) 2에 대한 CU(누적 업데이트) 14 이상 또는 SQL Server 2017에 대한 CU(누적 업데이트) 22 이상을 설치한 경우에는 대신 기본 R 또는 Python 언어 런타임을 이후 버전으로 변경하는 방법을 참조하세요.
바인딩이란?
바인딩은 R_SERVICES 및 PYTHON_SERVICES 폴더 내용을 Microsoft Machine Learning Server에서 제공되는 새로운 실행 파일, 라이브러리 및 도구들로 바꾸는 설치 프로세스입니다.
서비스 모델에 포함된 업로드된 구성 요소가 변경되었습니다. 서비스 업데이트는 최신 수명 주기에서 Microsoft R Server 및 Machine Learning Server 지원 타임라인과 일치합니다.
구성 요소 버전 및 서비스 업데이트를 제외하고, 바인딩에서는 설치의 기본 사항을 변경하지 않습니다.
- Python 및 R 통합은 여전히 데이터베이스 엔진 인스턴스의 일부입니다.
- 라이선스는 변경되지 않습니다(바인딩과 관련된 추가 비용 없음).
- 데이터베이스 엔진에 대한 SQL Server 지원 정책은 계속 유지됩니다.
이 문서의 나머지 부분에서는 바인딩 메커니즘과 각 버전의 SQL Server에서의 작동 방식을 설명합니다.
참고
바인딩은 SQL Server 인스턴스에 바인딩된 데이터베이스 내 인스턴스에만 적용됩니다. 이 경우 독립 실행형 설치에는 바인딩이 필요하지 않습니다.
SQL Server 2016 바인딩 고려 사항
SQL Server 2016 R Services 고객의 경우 바인딩은 다음을 제공합니다.
- 업데이트된 R 패키지.
- 원래 설치의 일부가 아닌 새 패키지(MicrosoftML)
- 감정 분석 및 이미지 검색을 위한 미리 학습된 기계 학습 모델.
모든 바인딩은 Microsoft Machine Learning Server의 새로운 주/부 릴리스 각각에서 추가로 새로 고쳐질 수 있습니다.
버전 요약
다음 표는 버전 맵입니다. 각 맵은 릴리스 간에 패키지 버전을 보여 줍니다. Microsoft Machine Learning Server(Machine Learning Server 9.2.1부터 Python 지원을 추가하기 전에는 R Server라고 함)에 바인딩할 때 업그레이드 경로를 검토할 수 있습니다.
바인딩이 R 또는 Anaconda의 최신 버전을 보장하지는 않습니다. Microsoft Machine Learning Server에 바인딩하면 설치 과정을 통해 R 또는 Python 버전이 설치됩니다. 하지만 이 버전은 웹에서 제공되는 최신 버전이 아닐 수도 있습니다.
구성 요소 | 초기 릴리스 | R Server 9.0.1 | R Server 9.1 | Machine Learning Server 9.2.1 | Machine Learning Server 9.3 | Machine Learning Server 9.4.7 |
---|---|---|---|---|---|---|
R 기반 Microsoft R Open(MRO) | R 3.2.2 | R 3.3.2 | R 3.3.3 | R 3.4.1 | R 3.4.3 | R 3.5.2 |
RevoScaleR | 8.0.3 | 9.0.1 | 9.1 | 9.2.1 | 9.3 | 9.4.7 |
MicrosoftML | n.a. | 9.0.1 | 9.1 | 9.2.1 | 9.3 | 9.4.7 |
미리 학습된 모델 | n.a. | 9.0.1 | 9.1 | 9.2.1 | 9.3 | 9.4.7 |
sqlrutils | n.a. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
olapR | n.a. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
SQL Server 2017 Machine Learning Services
구성 요소 | 초기 릴리스 | Machine Learning Server 9.3 | Machine Learning Server 9.4.7 |
---|---|---|---|
R 기반 Microsoft R Open(MRO) | R 3.3.3 | R 3.4.3 | R 3.5.2 |
RevoScaleR | 9.2 | 9.3 | 9.4.7 |
MicrosoftML | 9.2 | 9.3 | 9.4.7 |
sqlrutils | 1.0 | 1.0 | 1.0 |
olapR | 1.0 | 1.0 | 1.0 |
Python 3.5 기반 Anaconda 4.2 | 4.2/3.5.2 | 4.2/3.5.2 | |
revoscalepy | 9.2 | 9.3 | 9.4.7 |
microsoftml | 9.2 | 9.3 | 9.4.7 |
미리 학습된 모델 | 9.2 | 9.3 | 9.4.7 |
구성 요소 업그레이드 작동 방법
실행 파일, Python 및 R 라이브러리는 사용자가 기존에 설치된 Python 및 R을 Machine Learning Server에 바인딩할 때 업그레이드됩니다.
바인딩은 Python 또는 R 통합이 포함된 기존 SQL Server 데이터베이스 엔진에서 설치 프로그램을 실행할 때 Microsoft Machine Learning Server 설치 프로그램에 의해 수행됩니다.
설치 프로그램은 기존 기능을 검색하고 Machine Learning Server에 다시 바인딩하라는 메시지를 표시합니다.
바인딩하는 동안 C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES
및 \PYTHON_SERVICES
내용을 C:\Program Files\Microsoft\ML Server\R_SERVER
및 \PYTHON_SERVER
의 최신 실행 파일 및 라이브러리로 덮어씁니다.
바인딩은 Python 및 R 기능에만 적용됩니다. Python 및 R에 대한 오픈 소스 패키지는 다음으로 구성됩니다.
- Anaconda
- Microsoft R Open
- 전용 패키지 RevoScaleR
- Revoscalepy
바인딩은 데이터베이스 엔진 인스턴스 지원 모델 또는 SQL Server 버전을 변경하지 않습니다.
바인딩은 되돌릴 수 있습니다. 인스턴스를 언바인딩하고 SQL Server 데이터베이스 엔진 인스턴스를 복구하여 SQL Server 서비스로 되돌릴 수 있습니다.
설치 프로그램을 사용하여 Machine Learning Server에 바인딩
설치 프로그램을 사용하여 Microsoft Machine Learning Server에 SQL Server를 바인딩하려면 다음 단계를 수행합니다.
SSMS에서
SELECT @@version
을 실행하여 서버가 최소 빌드 요구 사항을 충족하는지 확인합니다.R Base 및 RevoScaleR 패키지 버전을 확인하여 기존 버전이 바꾸려는 버전보다 낮은지 확인합니다.
EXECUTE sp_execute_external_script @language=N'R' ,@script = N'str(OutputDataSet); packagematrix <- installed.packages(); Name <- packagematrix[,1]; Version <- packagematrix[,3]; OutputDataSet <- data.frame(Name, Version);' , @input_data_1 = N'' WITH RESULT SETS ((PackageName nvarchar(250), PackageVersion nvarchar(max) ))
SSMS를 닫고 SQL Server에 연결된 상태의 다른 도구를 모두 닫습니다. 바인딩하면 프로그램 파일을 덮어씁니다. SQL Server에 열려 있는 세션이 있으면 바인딩 오류 코드 6과 함께 바인딩이 실패합니다.
업그레이드하려는 인스턴스가 포함된 컴퓨터에 Microsoft Machine Learning Server를 다운로드합니다. 최신 버전을 사용하는 것이 좋습니다.
폴더 압축을 풀고 MLSWIN93에 있는 ServerSetup.exe를 시작합니다.
설치 구성에서 업그레이드할 구성 요소를 확인하고 호환되는 인스턴스 목록을 검토합니다.
라이선스 계약 페이지에서 사용 조건에 동의함을 선택하여 Machine Learning Server의 라이선스 조건을 수락합니다.
이후 페이지에서도 Microsoft R Open 또는 Python Anaconda 배포와 같은 선택한 모든 오픈 소스 구성 요소에 대한 추가 라이선스 조건에 동의합니다.
거의 완료 페이지에서 설치 폴더 위치를 확인합니다. 기본 폴더는 \Program Files\Microsoft\ML Server입니다.
설치 폴더를 변경하려면 고급을 선택하여 마법사의 첫 번째 페이지로 돌아갑니다. 하지만 이전의 모든 선택 항목을 다시 반복해야 합니다.
업그레이드가 실패하면 SqlBindR 오류 코드로 자세한 내용을 확인하세요.
오프라인 바인딩(인터넷 액세스 없음)
인터넷 연결이 없는 시스템의 경우, 설치 프로그램 및 .cab 파일을 인터넷에 연결된 컴퓨터에 다운로드한 후 파일을 격리된 서버로 이동할 수 있습니다.
설치 프로그램(ServerSetup.exe)에는 Microsoft 패키지(RevoScaleR, MicrosoftML, olapR, sqlRUtils)가 포함됩니다. .cab 파일은 다른 핵심 구성 요소를 제공합니다. 예를 들어 "SRO" cab는 오픈 소스 R의 Microsoft 배포판인 R Open을 제공합니다.
다음 지침에서는 오프라인 설치를 위한 파일 배치 방법을 설명합니다.
MLSWIN93 설치 프로그램을 다운로드합니다. 이 프로그램은 단일 압축 파일로 다운로드됩니다. 최신 버전이 권장되지만 이전 버전을 설치할 수도 있습니다.
.cab 파일을 다운로드합니다. 다음 링크는 9.3 릴리스용입니다. 이전 버전이 필요한 경우 R Server 9.1에서 추가 링크를 찾을 수 있습니다. Python/Anaconda는 SQL Server Machine Learning Services 인스턴스에만 추가할 수 있습니다. 미리 학습된 모델이 Python 및 R 모두에 대해 존재하며 .cab은 사용 중인 언어로 모델을 제공합니다.
기능 다운로드 R SRO_3.4.3.0_1033.cab Python SPO_9.3.0.0_1033.cab 미리 학습된 모델 MLM_9.3.0.0_1033.cab .zip 및 .cab 파일을 대상 서버로 이동합니다.
서버에서 실행 명령에
%temp%
를 입력하여 임시 디렉터리의 실제 위치를 가져옵니다. 실제 경로는 컴퓨터에 따라 다르지만 일반적으로C:\Users\<your-user-name>\AppData\Local\Temp
입니다..cab 파일을 %temp% 폴더에 둡니다.
설치 프로그램의 압축을 풉니다.
ServerSetup.exe를 실행하고 화면 안내에 따라 설치를 완료합니다.
명령줄 작업
팁
SqlBindR을 찾을 수 없습니까? 설치 프로그램을 실행되지 않았기 때문일 수 있습니다. SqlBindR은 Machine Learning Server 설치 프로그램을 실행한 후에만 사용할 수 있습니다.
관리자 권한으로 명령 프롬프트를 열고 sqlbindr.exe가 포함된 폴더로 이동합니다. 기본 위치는 C:\Program Files\Microsoft\MLServer\Setup입니다.
다음 명령을 입력하여 사용 가능한 인스턴스 목록을 표시합니다.
SqlBindR.exe /list
전체 인스턴스 이름을 나열된 대로 기록해 둡니다. 예를 들어 기본 인스턴스의 이름은 MSSQL14.MSSQLSERVER이거나 SERVERNAME.MYNAMEDINSTANCE와 비슷할 수 있습니다.
/bind 인수를 사용하여 SqlBindR.exe 명령을 실행합니다. 이전 단계에서 반환된 인스턴스 이름을 사용하여 업그레이드할 인스턴스의 이름을 지정합니다.
예를 들어 기본 인스턴스만 업그레이드하려면 다음을 입력합니다.
SqlBindR.exe /bind MSSQL14.MSSQLSERVER
업그레이드가 완료되면 수정된 인스턴스와 연관된 실행 패드 서비스를 다시 시작합니다.
인스턴스 되돌리기 또는 언바인딩
바인딩된 인스턴스를 SQL Server 설치 프로그램으로 설정되는 Python 및 R 구성 요소의 초기 설치로 복원할 수 있습니다. SQL Server 서비스로 되돌리기 위해서는 세 단계를 수행해야 합니다.
1단계: 바인딩 해제
바인딩 롤백에는 설치 프로그램을 다시 실행하거나 SqlBindR 명령줄 유틸리티를 사용하는 두 가지 옵션이 있습니다.
설치 프로그램을 사용하여 언바인딩
- Machine Learning Server 설치 프로그램을 찾습니다. 설치 프로그램을 제거한 경우에는 이를 다시 다운로드하거나 다른 컴퓨터에서 복사해야 할 수 있습니다.
- 언바인딩하려는 인스턴스가 포함된 컴퓨터에서 설치 프로그램을 실행해야 합니다.
- 설치 프로그램이 언바인딩 후보인 로컬 인스턴스를 식별합니다.
- 원래 구성으로 되돌리려는 인스턴스 옆에 있는 확인란을 선택 취소합니다.
- 모든 라이선스 계약에 동의합니다.
- 마침을 선택합니다. 이 프로세스는 시간이 오래 걸립니다.
명령줄을 사용하여 언바인딩
이전 섹션에 설명된 대로 명령 프롬프트를 열고 sqlbindr.exe가 포함된 폴더로 이동합니다.
/unbind 인수와 함께 SqlBindR.exe 명령을 실행하고 인스턴스를 지정합니다.
예를 들어 다음 명령은 기본 인스턴스를 되돌립니다.
SqlBindR.exe /unbind MSSQL14.MSSQLSERVER
2단계: SQL Server 인스턴스 복구
SQL Server 설치 프로그램을 실행하여 Python 및 R 기능이 포함된 데이터베이스 엔진 인스턴스를 복구합니다. 기존 업데이트는 유지됩니다. 다음 단계는 Python 및 R 패키지에 대한 서비스 업데이트에서 업데이트가 누락된 경우에 적용됩니다.
대체 솔루션: 데이터베이스 엔진 인스턴스를 완전히 제거하고 다시 설치한 후 모든 서비스 업데이트를 적용하세요.
3단계: 모든 타사 패키지 추가
패키지 라이브러리에 다른 오픈 소스 또는 타사 패키지가 추가되었을 수도 있습니다. 바인딩을 되돌리면 기본 패키지 라이브러리의 위치가 전환되기 때문에 Python 및 R이 현재 사용 중인 라이브러리에 패키지를 다시 설치해야 합니다. 자세한 내용은 R 패키지 정보 및 설치, Python 패키지 정보 및 설치를 참조하세요.
SqlBindR.exe 명령 구문
사용
sqlbindr [/list] [/bind <SQL_instance_ID>] [/unbind <SQL_instance_ID>]
매개 변수
속성 | Description |
---|---|
list | 현재 컴퓨터의 모든 SQL Server 인스턴스 ID 목록을 표시합니다. |
bind | 지정된 SQL Server 인스턴스를 최신 버전의 R 서버로 업그레이드하고 인스턴스가 R Server의 향후 업그레이드를 자동으로 가져오도록 합니다. |
unbind | 지정된 SQL Server 인스턴스에서 최신 버전의 R Server를 제거하고 향후 R Server 업그레이드가 인스턴스에 영향을 주지 않도록 합니다. |
바인딩 오류
Machine Learning Server 설치 프로그램 및 SqlBindR은 모두 다음 오류 코드와 메시지를 반환합니다.
오류 코드 | 메시지 | 세부 정보 |
---|---|---|
바인딩 오류 0 | 확인(성공) | 오류 없이 바인딩이 통과했습니다. |
바인딩 오류 1 | 잘못된 인수 | 구문 오류입니다. |
바인딩 오류 2 | 잘못된 작업 | 구문 오류입니다. |
바인딩 오류 3 | 잘못된 인스턴스 | 인스턴스가 존재하지만 바인딩에 적합하지 않습니다. |
바인딩 오류 4 | 바인딩할 수 없음 | |
바인딩 오류 5 | 이미 바인딩됨 | bind 명령을 실행했지만 지정한 인스턴스가 이미 바인딩되어 있습니다. |
바인딩 오류 6 | 바인딩 실패 | 인스턴스를 언바인딩하는 중 오류가 발생했습니다. 기능을 선택하지 않고 Machine Learning Server 설치 프로그램을 실행하면 이 오류가 발생할 수 있습니다. 바인딩하려면 MSSQL 인스턴스와 Python 및 R을 모두 선택해야 합니다(인스턴스가 SQL Server 2017인 경우). SqlBindR이 Program Files 폴더에 쓰기를 수행할 수 없는 경우에도 이 오류가 발생합니다. SQL Server에 대한 세션 또는 핸들이 열려 있으면 이 오류가 발생합니다. 이 오류가 발생하면 컴퓨터를 다시 시작하고 새 세션을 시작하기 전에 바인딩 단계를 다시 실행합니다. |
바인딩 오류 7 | 바인딩되지 않음 | 데이터베이스 엔진 인스턴스에 R Services 또는 SQL Server Machine Learning Services가 있습니다. 인스턴스가 Microsoft Machine Learning Server에 바인딩되지 않았습니다. |
바인딩 오류 8 | 언바인딩 실패 | 인스턴스를 언바인딩하는 중 오류가 발생했습니다. |
바인딩 오류 9 | 인스턴스를 찾을 수 없습니다. | 이 컴퓨터에서 데이터베이스 엔진 인스턴스를 찾을 수 없습니다. |
알려진 문제
이 섹션에서는 SqlBindR.exe 유틸리티 사용 또는 Machine Learning Server 업그레이드와 관련해서 SQL Server 인스턴스에 영향을 줄 수 있는 알려진 문제들을 설명합니다.
이전에 설치된 패키지 복원
SqlBindR.exe는 Microsoft R Server 9.0.1 업그레이드로 원래 패키지 또는 R 구성 요소를 복원하지 못합니다. 인스턴스에 SQL Server 복구를 사용하고 모든 서비스 릴리스를 적용합니다. 인스턴스를 다시 시작합니다.
이후 버전의 SqlBindR은 원래 R 기능을 자동으로 복원하므로, R 구성 요소를 다시 설치하거나 서버에 패치를 다시 적용할 필요가 없습니다. 하지만 초기 설치 후 추가되었을 수 있는 R 패키지 업데이트는 설치해야 합니다.
R 명령을 사용하여 설치된 패키지를 데이터베이스의 레코드를 사용하는 파일 시스템에 동기화합니다. 자세한 내용은 SQL Server에 대한 R 패키지 관리를 참조하세요.
SQL Server에서 sqlbinr.ini 파일 덮어쓰기 문제
시나리오: 이 문제는 Machine Learning Server 9.4.7을 SQL Server 2017에 바인딩할 때 발생합니다. Python이 업데이트 및 바인딩될 때 또는 사용자가 새 CU로 업데이트할 때, Python이 바인딩되는 것이 파악되지 않아 파일을 덮어씁니다. R에는 알려진 문제가 없습니다.
이 문제를 해결하려면 비어 있지 않은 PYTHON_SERVICES 디렉터리에 sqlbindr.ini
파일을 만듭니다. 내용은 파일의 작동 방식에 영향을 주지 않습니다.
9.4.7.82를 포함하는 sqlbindr.ini
파일을 만들고 다음 위치에 저장합니다.
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES
SQL Server의 여러 업그레이드 문제
시나리오: 이전에 SQL Server 2016 R Services 인스턴스를 9.0.1로 업그레이드했습니다. Microsoft R Server 9.1.0용 새 설치 프로그램을 실행했습니다. 설치 프로그래이 모든 유효한 인스턴스의 목록을 표시합니다. 기본적으로 설치 프로그램은 이전에 바인딩된 인스턴스를 선택합니다. 작업을 계속하면 이전에 바인딩된 인스턴스가 언바인딩됩니다. 그 결과, 이전 9.0.1 설치 및 모든 관련 패키지는 제거되지만 새 버전의 Microsoft R Server(9.1.0)가 설치되지 않습니다.
이를 해결하기 위해서는 다음과 같이 기존 R Server 설치를 수정할 수 있습니다.
- 제어판에서 프로그램 추가 또는 제거를 엽니다.
- Microsoft R Server를 찾고 변경/수정을 선택합니다.
- 설치 프로그램이 시작되고 9.1.0에 바인딩하려는 인스턴스를 선택합니다.
Microsoft Machine Learning Server 9.2.1 및 9.3에는 이 문제가 없습니다.
바인딩 또는 언바인딩하면 임시 폴더가 여러 개 남아 있음
설치가 완료된 후 임시 폴더를 제거합니다.
참고
설치가 완료될 때까지 기다려야 합니다. 한 버전과 연결된 R 라이브러리를 제거하고 새로운 R 라이브러리를 추가하기 위해서는 시간이 오래 걸릴 수 있습니다. 작업이 완료되면 임시 폴더가 제거됩니다.