Azure SQL Managed Instance와 SQL Server의 Machine Learning Services에 대한 주요 차이점

이 문서에서는 Azure SQL Managed Instance의 Machine Learning ServicesSQL 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* - -
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 이상)

SQL Server 2022부터 R, Python 및 Java용 런타임은 더 이상 SQL 설치 시 함께 배송 또는 설치되지 않습니다. 대신 원하는 R 및/또는 Python 사용자 지정 런타임과 패키지를 설치합니다. 자세한 내용은 Windows에서 SQL Server 2022 Machine Learning Services(Python 및 R) 설치를 참조하세요.

Python 및 R 패키지

SQL Managed Instance에서는 외부 런타임(예: Java)에 의존하거나 설치 또는 사용을 위해 OS API에 액세스해야 하는 패키지에 대한 지원이 없습니다.

Python 및 R 패키지에 대한 자세한 내용은 다음을 참조하세요.

sqlmlutils를 통한 패키지 관리

로컬로 빌드하여 이진 패키지를 출력으로 생성할 수 있는 경우 sqlmlutils로 이진 패키지를 설치할 수 있습니다. 예를 들어 sqlmlutils를 사용하여 R 패키지 설치 또는 sqlmlutils를 사용하여 Python 패키지 설치를 참조하세요.

리소스 거버넌스

SQL Managed Instance에서 Resource Governor를 통해 R 리소스를 제한할 수 없으며 외부 리소스 풀은 지원되지 않습니다.

기본적으로 R 리소스는 확장성을 사용하는 경우 사용 가능한 SQL Managed Instance 리소스의 최대 20%로 설정됩니다. 이 기본 백분율을 변경하려면 https://azure.microsoft.com/support/create-ticket/에서 Azure 지원 티켓을 만듭니다.

확장성은 다음의 SQL 명령을 통해 사용하도록 설정됩니다(SQL Managed Instance가 다시 시작되고 몇 초간 사용할 수 없음).

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

확장성을 사용하지 않도록 설정하고 메모리/CPU 리소스의 100%를 SQL Server로 복원하려면 다음 명령을 사용합니다.

sp_configure 'external scripts enabled', 0;
RECONFIGURE WITH OVERRIDE;

SQL Managed Instance에 사용할 수 있는 총 리소스는 선택한 서비스 계층에 따라 달라집니다. 자세한 내용은 Azure SQL Database 구매 모델을 참조하세요.

메모리 부족 오류

메모리 사용량은 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를 검토합니다.

SQL Managed Instance 풀

Machine Learning Services는 현재 Azure SQL Managed Instance 풀(미리 보기)에서 지원되지 않습니다.

아웃바운드 네트워크 액세스

네트워크 액세스가 허용되지 않거나 차단되었으며 사용하도록 설정할 수 없습니다. Azure SQL Managed Instance에 대한 아웃바운드 네트워크 연결은 Machine Learning Services에 사용할 수 없습니다.

다음 단계