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

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

이 문서에서는 Linux에 SQL Server Machine Learning Services를 설치하는 과정을 안내합니다. Machine Learning Services를 사용하여 데이터베이스 내에서 Python 및 R 스크립트를 실행할 수 있습니다.

Machine Learning Services는 Ubuntu 및 RHEL(Red Hat Enterprise Linux)에 설치할 수 있습니다. 현재, SLES(SUSE Linux Enterprise Server)는 지원되지 않습니다.

Linux 배포를 실행하는 Docker 컨테이너에 ML 서비스를 설치할 수 있습니다. Docker 컨테이너 내에서 단계는 아래와 같습니다.

자세한 내용은 SQL Server on Linux 설치 지침의 지원되는 플랫폼 섹션을 참조하세요.

중요

이 문서에서는 SQL Server 2022(16.x)를 참조합니다. SQL Server 2019 on Linux의 경우 Linux에 SQL Server 2019 Machine Learning Services(Python 및 R) 설치를 참조하세요. Windows의 SQL Server의 경우 Windows에서 SQL Server 2022 Machine Learning Services(Python 및 R) 설치를 참조하세요.

설치 전 검사 목록

  • SQL Server on Linux를 설치한 다음, 설치를 확인합니다.

  • Python 및 R 확장의 SQL Server Linux 리포지토리를 확인합니다. 데이터베이스 엔진 설치에 대한 원본 리포지토리를 이미 구성한 경우 동일한 리포지토리 등록을 사용하여 mssql-server-extensibility 패키지 설치 명령을 실행할 수 있습니다.

  • T-SQL 명령을 실행하기 위한 도구가 있어야 합니다.

    • Linux, Windows 및 macOS에서 실행되는 무료 데이터베이스 도구인 Azure Data Studio를 사용할 수 있습니다.
  • 이 설치 프로세스 중에 SQL Server 인스턴스를 다시 시작해야 합니다.

패키지 목록

인터넷에 연결된 디바이스에서 패키지는 각 운영 체제의 패키지 설치 프로그램을 사용하여 데이터베이스 엔진과 독립적으로 다운로드 및 설치됩니다.

SQL Server 2022(16.x) on Linux에 사용 가능한 설치 패키지:

패키지 이름 적용 대상 Description
mssql-server-extensibility 모두 Python 및 R을 실행하는 데 사용되는 확장성 프레임워크입니다.

mssql-server-extensibility 패키지 설치

  1. Linux 배포에 해당하는 Linux 리포지토리를 구성합니다. 패키지 mssql-server-extensibility 및 관련 종속성을 사용하여 SQL Server 확장성 기능을 설치합니다 libssl-dev.

    Ubuntu

    sudo apt-get install mssql-server-extensibility libssl-dev
    

    RHEL

    yum install mssql-server-extensibility
    
  2. SQL Server ML 서비스에 대한 EULA(최종 사용자 사용권 계약)를 검토하고 동의합니다.

    sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
    

    EULA의 동의를 완료하려면 SQL Server 인스턴스를 다시 시작해야 합니다.

    sudo systemctl restart mssql-server
    

런타임 및 패키지 설치

R 지원 설정

R 런타임 설치

  1. 원하는 R 버전을 다운로드하여 설치합니다. cran.r-project.org에서 바로 다운로드할 수 있는 R 4.2 이상 버전을 선택합니다. 원하는 런타임에 대한 지침을 따릅니다.

  2. 관리자 R 터미널을 엽니다.

    sudo R
    
  3. 다음을 실행하여 종속성을 CompatibilityAPIRevoScaleR 설치합니다.

    # R Terminal
    install.packages("iterators", lib="/usr/lib/R/library")
    install.packages("foreach", lib="/usr/lib/R/library")
    install.packages("R6", lib="/usr/lib/R/library")
    install.packages("jsonlite", lib="/usr/lib/R/library")
    
  4. Linux용 CompatibilityAPIRevoScaleR을 다운로드하여 설치합니다.

    install.packages("https://aka.ms/sqlml/r4.2/linux/CompatibilityAPI_1.1.0_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library")
    install.packages("https://aka.ms/sqlml/r4.2/linux/RevoScaleR_10.0.1_R_x86_64-pc-linux-gnu.tar.gz", repos=NULL, lib="/usr/lib/R/library")
    
  5. R 터미널에서 RevoScaleR 설치를 확인합니다.

    library("RevoScaleR")
    

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

  1. 설치된 R 런타임을 Linux용 SQL Server를 사용하여 구성합니다. 여기서 path/to/는 R 이진에 대한 파일 경로이고 RFolderVersion은 R 런타임 설치에 대한 버전별 폴더 이름(예: R4.2)입니다.

    sudo /opt/mssql/bin/mssql-conf set extensibility rbinpath /usr/lib/R/bin/R
    sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib/R
    
  2. Launchpadd 서비스를 다시 시작합니다.

    systemctl restart mssql-launchpadd.service
    
  3. sp_configure 시스템 저장 프로시저를 사용하여 외부 스크립트를 허용하도록 Linux용 SQL Server를 구성합니다.

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE
    GO
    
  4. R 버전을 반환하는 간단한 T-SQL 명령을 실행하여 설치를 확인합니다.

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

Python 지원 설정

Python 런타임 설치

  1. Python을 다운로드하고 설치합니다. 특히 버전 Python 3.10을 선택하여 python.org 직접 다운로드할 수 있습니다. 제공된 지침을 따릅니다. 또한 런타임 버전에 대한 공유 Python 런타임 라이브러리를 설치합니다. 예를 들어 Ubuntu용 libpython3.10을 설치하려면 sudo apt-get install libpython3.10을 선택합니다.

  2. 루트 사용자에 대해 revoscalepy를 다운로드하고 설치합니다.

    sudo pip install dill numpy==1.22.0 pandas patsy python-dateutil
    sudo pip install https://aka.ms/sqlml/python3.10/linux/revoscalepy-10.0.1-py3-none-any.whl --target=/usr/lib/python3.10/dist-packages
    
  3. Python 터미널에서 revoscalepy 설치를 확인합니다. 라이브러리를 가져올 수 있는지 확인합니다.

    import revoscalepy
    

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

  1. SQL Server에서 설치된 Python 런타임을 구성합니다. 여기서 pythonbinbath는 설치된 python 이진 파일의 경로로 설정되며 datadirectories에는 패키지가 원하는 python 버전에 대해 설치되는 경로(예: /usr/lib/python3.10/dist-packages)를 포함합니다. 다음 스크립트를 실제 설치 경로와 함께 사용합니다.

    sudo /opt/mssql/bin/mssql-conf set extensibility pythonbinpath /usr/bin/python3.10
    sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/lib:/usr/lib/python3.10/dist-packages
    
  2. Launchpadd 서비스를 다시 시작합니다.

    systemctl restart mssql-launchpadd.service
    
  3. sp_configure 시스템 저장 프로시저를 사용하여 외부 스크립트를 허용하도록 Linux용 SQL Server를 구성합니다.

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE
    GO
    
  4. Python 버전을 반환하는 간단한 T-SQL 명령을 실행하여 설치를 확인합니다.

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

Java 설치

Java 언어 확장을 설치하려면 Linux에서 SQL Server Java 언어 확장 설치를 참조하세요.

설치 확인

설치의 유효성을 검사하려면 다음 방법 중 하나를 사용합니다.

  • 쿼리 도구를 사용하여 Python 또는 R 호출 시스템 저장 프로시저를 실행하는 T-SQL 스크립트를 실행합니다.

  • 다음 SQL 명령을 실행하여 SQL Server에서 R 실행을 테스트합니다. 오류가 발생하는 경우 서비스를 다시 시작해 보세요(sudo systemctl restart mssql-server.service).

    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)); 
    GO 
    
  • 다음 SQL 명령을 실행하여 SQL Server에서 Python 실행을 테스트합니다.

    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 
    

오프라인 설치

패키지 설치 단계의 오프라인 설치 지침을 따릅니다. 다운로드 사이트를 찾은 후 아래 패키지 목록을 사용하여 특정 패키지를 다운로드합니다.

여러 패키지 관리 도구에서 패키지 종속성을 확인하는 데 도움이 되는 명령을 제공합니다. Yum의 경우 sudo yum deplist [package]를 사용합니다. Ubuntu의 경우 dpkg -I [package name].debsudo apt-get install --reinstall --download-only [package name]을 차례로 사용합니다.

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

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

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

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