이 문서에서는 Azure SQL Managed Instance Machine Learning Services와 SQL Server Machine Learning Services 간의 몇 가지 주요 기능에 대해 설명합니다.
언어 지원
SQL Managed Instance 및 SQL Server의 Machine Learning Services는 Python 및 R 확장성 프레임워크지원합니다. SQL Managed Instance의 주요 차이점은 Python 및 R만 지원되며 Java와 같은 외부 언어를 추가할 수 없다는 것입니다.
초기 버전의 Python 및 R은 SQL Managed Instance 및 SQL Server에서 다릅니다.
| 플랫폼 | Python 런타임 버전 | R 런타임 버전 |
|---|---|---|
| Azure SQL Managed Instance | 3.7.2 | 3.5.2 |
| SQL Server 2022 1 | - | - |
| SQL Server 2019 | 3.7.1 | 3.5.2 |
| SQL Server 2017 | 3.5.2 및 3.7.2(CU22 이상) | 3.3.3 및 3.5.2(CU22 이상) |
| SQL Server 2016 | 사용할 수 없음 | 3.2.2 및 3.5.2(SP2 CU14 이상) |
1 SQL Server 2022부터 R, Python 및 Java용 런타임은 SQL 설치 프로그램 내에서 더 이상 배송되거나 설치되지 않습니다. 대신 원하는 R 및/또는 Python 사용자 지정 런타임 및 패키지를 설치합니다. 자세한 내용은 Windows에서 SQL Server 2022 Machine Learning Services(Python 및 R) 설치을 참조하세요.
Python 및 R 패키지
외부 런타임(예: Java)에 의존하거나 설치 또는 사용을 위해 OS API에 액세스해야 하는 패키지에 대한 SQL Managed Instance는 지원되지 않습니다.
Python 및 R 패키지 관리에 대한 자세한 내용은 다음을 참조하세요.
- Python 패키지 정보 가져오기
- R 패키지 정보 가져오기
sqlmlutils를 통해 패키지 관리
로컬로 빌드하여 이진 패키지를 출력으로 생성할 수 있는 경우 sqlmlutils사용하여 이진 패키지를 설치할 수 있습니다. 예제는 sqlmlutils를 사용하여 R 패키지 설치를 참조하세요.
리소스 거버넌스
SQL Managed Instance에서는 리소스 관리자를 통해 R 리소스를 제한할 수 없으며 외부 리소스 풀은 지원되지 않습니다.
기본적으로 R 리소스는 확장성을 사용하는 경우 사용 가능한 SQL Managed Instance 리소스의 최대 20%로 설정됩니다. 이 기본 백분율을 변경하려면 Azure 지원 티켓을 만듭니다.
다음 SQL 명령을 사용하여 확장성을 사용할 수 있습니다(SQL Managed Instance가 다시 시작되고 몇 초 동안 사용할 수 없음).
sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
확장성을 사용하지 않도록 설정하고 100% 메모리 및 CPU 리소스를 SQL Server로 복원하려면 다음 명령을 사용합니다.
sp_configure 'external scripts enabled', 0;
RECONFIGURE WITH OVERRIDE;
SQL Managed Instance에 사용할 수 있는 총 리소스는 선택한 서비스 계층에 따라 달라집니다. 자세한 내용은 Azure SQL Database의 vCore 및 DTU 기반 구매 모델 비교를 참조하세요.
메모리 부족 오류
메모리 사용량은 R 스크립트에서 사용되는 양과 실행 중인 병렬 쿼리 수에 따라 달라집니다. R에 사용할 수 있는 메모리가 부족한 경우 오류 메시지가 표시됩니다. 일반적인 오류 메시지는 다음과 같습니다.
Unable to communicate with the runtime for 'R' script for request id: *******. Please check the requirements of 'R' runtime'R' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x80004004. ...an external script error occurred: "..could not allocate memory (0 Mb) in C function 'R_AllocStringBuffer'"An external script error occurred: Error: cannot allocate vector of size.
이러한 오류 중 하나가 수신되면 데이터베이스를 더 높은 서비스 계층으로 확장하여 해결할 수 있습니다.
Azure SQL Managed Instance에서 메모리 부족 오류가 발생하면 sys.dm_os_out_of_memory_events를 확인하세요.
정책 업데이트
Machine Learning Services는 SQL Server 2022 업데이트 정책으로 구성된 SQL 관리 인스턴스에서만 제공됩니다.
SQL Server 2025 또는 Always-up-to-date 업데이트 정책으로는 제공되지 않습니다. SQL Server 2022 업데이트 정책은 SQL Server 2022에 대한 주류 지원이 종료될 때까지 제공됩니다. 그때 인스턴스는 최신 주요 SQL Server 릴리스의 업데이트 정책으로 자동으로 이동하며, Machine Learning Services는 사용할 수 없게 됩니다. 해당 인스턴스에서 외부 호스팅된 머신러닝 모델을 호출하려면 .sp_invoke_external_rest_endpoint
SQL Managed Instance 풀
Machine Learning Services는 현재 Azure SQL Managed Instance 풀에서 지원되지 않습니다.
아웃바운드 네트워크 액세스
네트워크 액세스가 허용되지 않거나 차단되어 사용하도록 설정할 수 없습니다. Azure SQL Managed Instance에 대한 아웃바운드 네트워크 연결은 Machine Learning Services에서 사용할 수 없습니다.