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

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

이 문서에서는 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 컨테이너에 Machine Learning Services를 설치할 수 있습니다. Docker 컨테이너 내에서는 다음과 같은 단계가 진행됩니다.

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

Important

이 문서에서는 SQL Server 2022(16.x)를 참조합니다. 리눅스용 SQL Server 2019에 대해서는 '리눅스에서 SQL Server 2019 Machine Learning Services (Python and 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(Transact-SQL) 명령을 실행하기 위한 도구가 있어야 합니다.

  • 이 설치 프로세스 중에 SQL Server 인스턴스를 다시 시작해야 합니다.

패키지 목록

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

다음 설치 패키지가 리눅스용 SQL Server 2022 (16.x)용으로 제공됩니다:

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

mssql-server-extensibility 패키지 설치

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

    Ubuntu

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

    RHEL

    yum install mssql-server-extensibility
    
  2. SQL Server Machine Learning 서비스에 대한 최종 사용자 라이선스 계약(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. 다음을 실행하여 CompatibilityAPI 및 RevoScaleR에 대한 종속 요소를 설치합니다.

    # 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용 CompatibilityAPI 및 RevoScaleR을 다운로드하여 설치합니다.

    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 런타임을 SQL Server for Linux로 구성하세요. 다음 명령어들은 기본 R 설치 경로를 사용합니다. 다른 곳에 R을 설치했다면 경로를 업데이트하세요.

    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. mssql-launchpadd 서비스를 다시 시작합니다.

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

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

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

Python 지원 설정

Python 런타임 설치

  1. Python 다운로드하고 설치합니다. Python.org에서 직접 다운로드할 수 있는 Python 3.10을 선택하세요. 제공된 지침을 따르세요. 또한, 런타임 버전용 공유 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. 설치된 Python 런타임을 SQL Server로 구성하는데, pythonbinpath 여기서 는 설치된 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. mssql-launchpadd 서비스를 다시 시작합니다.

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

    EXECUTE sp_configure 'external scripts enabled', 1;
    GO
    
    RECONFIGURE;
    GO
    
  4. 간단한 T-SQL 명령어를 실행하여 Python 버전을 반환하여 설치를 확인하세요:

    EXECUTE 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).

    EXECUTE 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 실행을 테스트합니다.

    EXECUTE 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
    

오프라인 설치

패키지 설치 단계의 오프라인 설치 지침을 따릅니다. 다운로드 사이트를 찾아서 위의 패키지 목록을 사용해 특정 패키지를 다운로드하세요.

Tip

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

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

RevoScale 패키지는 Python과 R 런타임을 함께 독립 실행형 패키지로도 지원합니다. 독립 실행형 시나리오에서 Python 또는 R 런타임을 설정하려면 각각 Install Python 런타임과 Install R 런타임 섹션의 지침을 따르세요.