SQL Server용 R 사용자 지정 런타임 설치

적용 대상: SQL Server 2019(15.x)

SQL Server에서 외부 R 스크립트를 실행할 수 있도록 다음 위치에 R 사용자 지정 런타임을 설치하는 방법을 설명합니다.

  • Windows
  • Ubuntu Linux
  • RHEL(Red Hat Enterprise Linux)
  • SLES(SUSE Linux Enterprise Server) 버전 12

사용자 지정 런타임은 기계 학습 스크립트를 실행할 수 있으며 SQL Server 언어 확장을 사용합니다.

SQL Server Machine Learning Services와 함께 설치되는 기본 런타임 버전 대신 고유한 버전의 R 런타임을 SQL Server에서 사용할 수 있습니다.

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

사전 요구 사항

R 사용자 지정 런타임을 설치하기 전에 다음을 설치합니다.

언어 확장 설치

참고

SQL Server 2019에 Machine Learning Services가 설치되어 있는 경우 언어 확장이 이미 설치되어 있으므로 이 단계를 건너뛰어도 됩니다.

R 사용자 지정 런타임에 사용되는 SQL Server 언어 확장을 설치하려면 다음 단계를 수행합니다.

  1. SQL Server 2019용 설치 마법사를 시작합니다.

  2. 설치 탭에서 새 SQL Server 독립 실행형 설치 또는 기존 설치에 기능 추가를 선택합니다.

  3. 기능 선택 페이지에서 다음 옵션을 선택합니다.

    • 데이터베이스 엔진 서비스

      SQL Server에서 언어 확장을 사용하려면 데이터베이스 엔진의 인스턴스를 설치해야 합니다. 새 인스턴스 또는 기존 인스턴스를 사용할 수 있습니다.

    • Machine Learning Services 및 언어 확장

      Machine Learning Services 및 언어 확장을 선택합니다. 나중에 사용자 지정 R 런타임을 설치할 것이므로 R을 선택하지 마세요.

      SQL Server 2019 Language Extensions setup.

  4. 설치 준비 완료 페이지에서 이러한 선택 사항이 포함되어 있는지 확인하고 설치를 선택합니다.

    • 데이터베이스 엔진 서비스
    • Machine Learning Services 및 언어 확장
  5. 설치가 완료된 후 컴퓨터를 다시 시작하라는 메시지가 표시되면 컴퓨터를 다시 시작합니다.

중요

SQL Server 2019의 새 인스턴스를 언어 확장과 함께 설치하는 경우 다음 단계를 진행하기 전에 CU(누적 업데이트) 3 이상을 설치합니다.

R 설치

사용자 지정 런타임으로 사용할 R 버전을 다운로드하여 설치합니다. R 버전 3.3 이상이 지원됩니다.

  1. R 버전 3.3 이상을 다운로드합니다.

  2. R 설치를 실행합니다.

  3. R이 설치되는 경로를 확인합니다. 예를 들어 이 문서에서는 C:\Program Files\R\R-4.0.3입니다.

    R setup

시스템 환경 변수 업데이트

다음 단계에 따라 시스템 환경 변수 PATH를 수정합니다.

  1. Windows 검색 상자에서 시스템 환경 변수 편집을 검색하여 엽니다.

  2. 고급에서 환경 변수를 선택합니다.

  3. PATH 시스템 환경 변수를 수정합니다.

    PATH를 선택하고 편집을 클릭합니다.

    새로 만들기를 선택하고 R 설치 경로의 \bin\x64 폴더에 경로를 추가합니다. 예들 들어 C:\Program Files\R\R-4.0.3\bin\x64입니다.

Rcpp 패키지 설치

다음 단계에 따라 Rcpp 패키지를 설치합니다.

  1. 상승된 권한 명령 프롬프트를 시작합니다(관리자 권한으로 실행).

  2. 명령 프롬프트에서 R을 시작합니다. R 설치 경로의 폴더에서 \bin\R.exe를 실행합니다. 예들 들어 C:\Program Files\R\R-4.0.3\bin\R.exe입니다.

    "C:\Program Files\R\R-4.0.3\bin\R.exe"
    
  3. 다음 스크립트를 실행하여 R 설치 경로의 \library 폴더에 Rcpp 패키지를 설치합니다. 예들 들어 C:\Program Files\R\R-4.0.3\library입니다.

    install.packages("Rcpp", lib="C:\\Program Files\\R\\R-4.0.3\\library");
    

R 폴더에 대한 액세스 권한 부여

참고

C:\Program Files\R\R-version의 기본 위치(예: C:\Program Files\R\R-4.0.3)에 R을 설치한 경우 이 단계를 건너뛰어도 됩니다.

새 관리자 권한 명령 프롬프트에서 다음 icacls 명령을 실행하여 SQL Server 실행 패드 서비스 사용자 이름 및 SID S-1-15-2-1(ALL APPLICATION PACKAGES)에 대한 READ & EXECUTE 액세스 권한을 부여합니다. 실행 패드 서비스 사용자 이름은 NT Service\MSSQLLAUNCHPAD$INSTANCENAME 형식이며, 여기서 INSTANCENAME은 SQL Server의 인스턴스 이름입니다.

이 명령은 지정된 디렉터리 경로 아래의 모든 파일 및 폴더에 대한 액세스 권한을 재귀적으로 부여합니다.

  1. R 설치 경로에 SQL Server 실행 패드 서비스 사용자 이름에 대한 권한을 부여합니다. 예들 들어 C:\Program Files\R\R-4.0.3입니다.

    icacls "C:\Program Files\R\R-4.0.3" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
    

    명명된 인스턴스의 경우 명령은 SQL01이라는 인스턴스에 대한 icacls "C:\Program Files\R\R-4.0.3" /grant "NT Service\MSSQLLAUNCHPAD$SQL01":(OI)(CI)RX /T이 됩니다.

  2. R 설치 경로에 SID S-1-15-2-1에 대한 권한을 부여합니다. 예들 들어 C:\Program Files\R\R-4.0.3입니다.

    icacls "C:\Program Files\R\R-4.0.3" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

    위의 명령은 컴퓨터 SID S-1-15-2-1에 권한을 부여하며 이는 영어 버전 Windows에서의 ALL APPLICATION PACKAGES와 같습니다. 또는 영어 버전 Windows에서 icacls "C:\Program Files\R\R-4.0.3" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T를 사용할 수도 있습니다.

SQL Server 실행 패드 다시 시작

SQL Server 실행 패드 서비스를 다시 시작하려면 다음 단계를 수행합니다.

  1. SQL Server 구성 관리자를 엽니다.

  2. SQL Server 서비스에서 SQL Server 실행 패드(MSSQLSERVER)를 마우스 오른쪽 단추로 클릭하고 다시 시작을 선택합니다. 명명된 인스턴스를 사용하는 경우 (MSSQLSERVER) 대신 인스턴스 이름이 표시됩니다.

언어 확장 등록

R 사용자 지정 런타임에 사용되는 R 언어 확장을 다운로드하고 등록하려면 다음 단계를 수행합니다.

  1. SQL Server 언어 확장 GitHub 리포지토리에서 R-lang-extension-windows-release.zip 파일을 다운로드합니다.

    또는 개발 또는 테스트 환경에서는 디버그 버전(R-lang-extension-windows-debug.zip)을 사용할 수도 있습니다. 디버그 버전은 오류를 조사하기 위한 자세한 로깅 정보를 제공하며 프로덕션 환경에는 권장되지 않습니다.

  2. Azure Data Studio를 사용하여 SQL Server 인스턴스에 연결하고, 다음 T-SQL 명령을 실행하여 R 언어 확장을 CREATE EXTERNAL LANGUAGE에 등록합니다.

    다운로드한 언어 확장 zip 파일(R-lang-extension-windows-release.zip)의 위치와 R 설치 위치(C:\\Program Files\\R\\R-4.0.3)를 반영하도록 이 명령문의 경로를 수정합니다.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'C:\path\to\R-lang-extension-windows-release.zip', 
        FILE_NAME = 'libRExtension.dll',
        ENVIRONMENT_VARIABLES = N'{"R_HOME": "C:\\Program Files\\R\\R-4.0.3"}');
    GO
    

    R 언어 확장을 사용하려는 각 데이터베이스에 대해 명령문을 실행합니다.

    참고

    R은 예약어이며 새 외부 언어 이름으로 사용할 수 없습니다. 다른 이름을 사용하세요. 예를 들어 위의 명령문에서는 myR을 사용합니다.

사전 요구 사항

R 사용자 지정 런타임을 설치하기 전에 다음을 설치합니다.

언어 확장 설치

참고

SQL Server 2019에 Machine Learning Services가 설치된 경우 언어 확장용 mssql-server-extensibility 패키지가 이미 설치되어 있으므로 이 단계를 건너뛰어도 됩니다.

R 사용자 지정 런타임에 사용되는 SQL Server 언어 확장을 Ubuntu Linux에 설치하려면 다음 명령을 실행합니다.

  1. 가능하면 설치하기 전에 이 명령을 실행하여 시스템에서 패키지를 새로 고칩니다.

    # Install as root or sudo
    sudo apt-get update
    
  2. 이 명령을 사용하여 mssql-server-extensibility를 설치합니다.

    # Install as root or sudo
    sudo apt-get install mssql-server-extensibility
    

R 설치

  1. Machine Learning Services가 있는 경우 이미 /opt/microsoft/ropen/3.5.2/lib64/R에 R이 설치되어 있습니다. 이 경로를 R_HOME으로 계속 사용하려는 경우 이 단계를 건너뛰어도 됩니다.

    R의 다른 런타임을 사용하려면 먼저 새 버전을 설치하기 전에 microsoft-r-open-mro를 제거해야 합니다.

    sudo apt remove microsoft-r-open-mro-3.5.2
    
  2. Ubuntu용 R(3.3 이상)을 설치합니다. 기본적으로 R은 /usr/lib/R에 설치됩니다. 이 경로가 R_HOME입니다. 다른 위치에 R을 설치하는 경우 해당 경로를 R_HOME으로 기록해 둡니다.

    다음은 Ubuntu에 대한 지침 예제입니다. 아래의 리포지토리 URL을 사용하는 R 버전에 맞게 변경합니다.

    export DEBIAN_FRONTEND=noninteractive
    sudo apt-get update
    sudo apt-get --no-install-recommends -y install curl zip unzip apt-transport-https libstdc++6
    
    # Add R CRAN repository. This repository works for R 4.0.x.
    #
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
    sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran40/'
    sudo apt-get update
    
    # Install R runtime.
    #
    sudo apt-get -y install r-base-core
    

R 사용자 지정 설치

참고

R을 기본 위치 /usr/lib/R에 설치한 경우 이 섹션을 건너뛰고 Rcpp 패키지 설치 섹션으로 이동해도 됩니다.

환경 변수 업데이트

먼저 mssql-launchpadd 서비스를 편집하여 R_HOME 환경 변수를 /etc/systemd/system/mssql-launchpadd.service.d/override.conf 파일에 추가합니다.

  1. systemctl을 사용하여 파일 열기

    sudo systemctl edit mssql-launchpadd
    
  2. 열리는 /etc/systemd/system/mssql-launchpadd.service.d/override.conf 파일에 다음 텍스트를 삽입합니다. R_HOME 값을 사용자 지정 R 설치 경로로 설정합니다.

    [Service]
    Environment="R_HOME=<path to R>"
    
  3. 저장하고 닫습니다.

다음으로 libR.so을 로드할 수 있는지 확인합니다.

  1. /etc/ld.so.conf.d에 custom-r.conf 파일을 만듭니다.

    sudo vi /etc/ld.so.conf.d/custom-r.conf
    
  2. 열리는 파일에서 사용자 지정 R 설치의 libR.so 경로를 추가합니다.

    <path to the R lib>
    
  3. 새 파일을 저장하고 편집기를 닫습니다.

  4. 다음 명령을 실행하고 모든 종속 라이브러리를 찾을 수 있는지 확인하여 ldconfig를 실행하고 libR.so를 로드할 수 있는지 확인합니다.

    sudo ldconfig
    ldd <path to the R lib>/libR.so
    

사용자 지정 R 설치 폴더에 대한 액세스 권한 부여

/var/opt/mssql/mssql.conf 파일의 확장성 섹션에서 datadirectories 옵션을 사용자 지정 R 설치로 설정합니다.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>

mssql-launchpadd 서비스 다시 시작

다음 명령을 실행하여 mssql-launchpadd를 다시 시작합니다.

sudo systemctl restart mssql-launchpadd

Rcpp 패키지 설치

다음 단계에 따라 Rcpp 패키지를 설치합니다.

  1. 다음과 같이 셸에서 R을 시작합니다.

    sudo ${R_HOME}/bin/R
    
  2. 다음 스크립트를 실행하여 ${R_HOME}/library 폴더에 Rcpp 패키지를 설치합니다.

install.packages("Rcpp", lib = "${R_HOME}/library");

언어 확장 등록

R 사용자 지정 런타임에 사용되는 R 언어 확장을 다운로드하고 등록하려면 다음 단계를 수행합니다.

  1. SQL Server 언어 확장 GitHub 리포지토리에서 R-lang-extension-linux-release.zip 파일을 다운로드합니다.

    개발 또는 테스트 환경에서는 디버그 버전(R-lang-extension-linux-debug.zip)을 사용할 수 있습니다. 디버그 버전은 오류를 조사하기 위한 자세한 로깅 정보를 제공하며 프로덕션 환경에는 권장되지 않습니다.

  2. Azure Data Studio를 사용하여 SQL Server 인스턴스에 연결하고, 다음 T-SQL 명령을 실행하여 R 언어 확장을 CREATE EXTERNAL LANGUAGE에 등록합니다.

    다운로드한 언어 확장 zip 파일(R-lang-extension-linux-release.zip)의 위치를 반영하도록 이 명령문의 경로를 수정합니다.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1');
    GO
    

    R 언어 확장을 사용하려는 각 데이터베이스에 대해 명령문을 실행합니다.

    참고

    R은 예약어이며 새 외부 언어 이름으로 사용할 수 없습니다. 다른 이름을 사용하세요. 예를 들어 위의 명령문에서는 myR을 사용합니다.

사전 요구 사항

R 사용자 지정 런타임을 설치하기 전에 다음을 설치합니다.

  • RExtension에는 GLIBCXX_3.4.20이 필요합니다. RHEL(Red Hat Enterprise Linux) 설치의 libstdc++.so.6 버전이 GLIBCXX_3.4.20을 제공하는지 확인하세요.

언어 확장 설치

참고

SQL Server 2019에 Machine Learning Services가 설치된 경우 언어 확장용 mssql-server-extensibility 패키지가 이미 설치되어 있으므로 이 단계를 건너뛰어도 됩니다.

R 사용자 지정 런타임에 사용되는 SQL Server 언어 확장을 RHEL(Red Hat Enterprise Linux)에 설치하려면 다음 명령을 실행합니다.

# Install as root or sudo
sudo yum install mssql-server-extensibility

R 설치

  1. Machine Learning Services가 있는 경우 이미 /opt/microsoft/ropen/3.5.2/lib64/R에 R이 설치되어 있습니다. 이 경로를 R_HOME으로 계속 사용하려는 경우 이 단계를 건너뛰어도 됩니다.

    R의 다른 런타임을 사용하려면 먼저 새 버전을 설치하기 전에 microsoft-r-open-mro를 제거해야 합니다.

    sudo yum erase microsoft-r-open-mro-3.5.2
    
  2. RHEL(Red Hat Enterprise Linux)용 R(3.3 이상)을 설치합니다. 기본적으로 R은 /usr/lib64/R에 설치됩니다. 이 경로가 R_HOME입니다. 다른 위치에 R을 설치하는 경우 해당 경로를 R_HOME으로 기록해 둡니다.

    sudo yum install -y R
    

R 사용자 지정 설치

참고

R을 기본 위치 /usr/lib/R에 설치한 경우 이 섹션을 건너뛰고 Rcpp 패키지 설치 섹션으로 이동해도 됩니다.

환경 변수 업데이트

먼저 mssql-launchpadd 서비스를 편집하여 R_HOME 환경 변수를 /etc/systemd/system/mssql-launchpadd.service.d/override.conf 파일에 추가합니다.

  1. systemctl을 사용하여 파일 열기

    sudo systemctl edit mssql-launchpadd
    
  2. 열리는 /etc/systemd/system/mssql-launchpadd.service.d/override.conf 파일에 다음 텍스트를 삽입합니다. R_HOME 값을 사용자 지정 R 설치 경로로 설정합니다.

    [Service]
    Environment="R_HOME=<path to R>"
    
  3. 저장하고 닫습니다.

다음으로 libR.so을 로드할 수 있는지 확인합니다.

  1. /etc/ld.so.conf.d에 custom-r.conf 파일을 만듭니다.

    sudo vi /etc/ld.so.conf.d/custom-r.conf
    
  2. 열리는 파일에서 사용자 지정 R 설치의 libR.so 경로를 추가합니다.

    <path to the R lib>
    
  3. 새 파일을 저장하고 편집기를 닫습니다.

  4. 다음 명령을 실행하고 모든 종속 라이브러리를 찾을 수 있는지 확인하여 ldconfig를 실행하고 libR.so를 로드할 수 있는지 확인합니다.

    sudo ldconfig
    ldd <path to the R lib>/libR.so
    

사용자 지정 R 설치 폴더에 대한 액세스 권한 부여

/var/opt/mssql/mssql.conf 파일의 확장성 섹션에서 datadirectories 옵션을 사용자 지정 R 설치로 설정합니다.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>

mssql-launchpadd 서비스 다시 시작

다음 명령을 실행하여 mssql-launchpadd를 다시 시작합니다.

sudo systemctl restart mssql-launchpadd

Rcpp 패키지 설치

다음 단계에 따라 Rcpp 패키지를 설치합니다.

  1. 다음과 같이 셸에서 R을 시작합니다.

    sudo ${R_HOME}/bin/R
    
  2. 다음 스크립트를 실행하여 ${R_HOME}/library 폴더에 Rcpp 패키지를 설치합니다.

install.packages("Rcpp", lib = "${R_HOME}/library");

언어 확장 등록

R 사용자 지정 런타임에 사용되는 R 언어 확장을 다운로드하고 등록하려면 다음 단계를 수행합니다.

  1. SQL Server 언어 확장 GitHub 리포지토리에서 R-lang-extension-linux-release.zip 파일을 다운로드합니다.

    개발 또는 테스트 환경에서는 디버그 버전(R-lang-extension-linux-debug.zip)을 사용할 수 있습니다. 디버그 버전은 오류를 조사하기 위한 자세한 로깅 정보를 제공하며 프로덕션 환경에는 권장되지 않습니다.

  2. Azure Data Studio를 사용하여 SQL Server 인스턴스에 연결하고, 다음 T-SQL 명령을 실행하여 R 언어 확장을 CREATE EXTERNAL LANGUAGE에 등록합니다.

    다운로드한 언어 확장 zip 파일(R-lang-extension-linux-release.zip)의 위치를 반영하도록 이 명령문의 경로를 수정합니다.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1');
    GO
    

    R 언어 확장을 사용하려는 각 데이터베이스에 대해 명령문을 실행합니다.

    참고

    R은 예약어이며 새 외부 언어 이름으로 사용할 수 없습니다. 다른 이름을 사용하세요. 예를 들어 위의 명령문에서는 myR을 사용합니다.

사전 요구 사항

R 사용자 지정 런타임을 설치하기 전에 다음을 설치합니다.

언어 확장 설치

참고

SQL Server 2019에 Machine Learning Services가 설치된 경우 언어 확장용 mssql-server-extensibility 패키지가 이미 설치되어 있으므로 이 단계를 건너뛰어도 됩니다.

R 사용자 지정 런타임에 사용되는 SQL Server 언어 확장을 SLES(SUSE Linux Enterprise Server)에 설치하려면 다음 명령을 실행합니다.

# Install as root or sudo
sudo zypper install mssql-server-extensibility

R 설치

  1. Machine Learning Services가 있는 경우 이미 /opt/microsoft/ropen/3.5.2/lib64/R에 R이 설치되어 있습니다. 이 경로를 R_HOME으로 계속 사용하려는 경우 이 단계를 건너뛰어도 됩니다.

    R의 다른 런타임을 사용하려면 먼저 새 버전을 설치하기 전에 microsoft-r-open-mro를 제거해야 합니다.

    sudo zypper remove microsoft-r-open-mro-3.4.4
    
  2. SLES(SUSE Linux Enterprise Server)용 R(3.3 이상)을 설치합니다. 기본적으로 R은 /usr/lib64/R에 설치됩니다. 이 경로가 R_HOME입니다. 다른 위치에 R을 설치하는 경우 해당 경로를 R_HOME으로 기록해 둡니다.

    R을 설치하려면 다음 단계를 수행합니다.

    sudo zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/R:/patched/openSUSE_12.3/ R-patched
    sudo zypper --gpg-auto-import-keys ref
    sudo zypper install R-core-libs R-core R-core-doc R-patched
    

    이 패키지가 필요하지 않은 경우 R-tcltk-3.6.1에 대한 경고는 무시해도 됩니다.

gcc-c++ 설치

SLES(SUSE Linux Enterprise Server)에 gcc-c++ 를 설치합니다. 이는 추후 설치되는 Rcpp에 사용됩니다.

sudo zypper install gcc-c++

R 사용자 지정 설치

참고

R을 기본 위치 /usr/lib/R에 설치한 경우 이 섹션을 건너뛰고 Rcpp 패키지 설치 섹션으로 이동해도 됩니다.

환경 변수 업데이트

먼저 mssql-launchpadd 서비스를 편집하여 R_HOME 환경 변수를 /etc/systemd/system/mssql-launchpadd.service.d/override.conf 파일에 추가합니다.

  1. systemctl을 사용하여 파일 열기

    sudo systemctl edit mssql-launchpadd
    
  2. 열리는 /etc/systemd/system/mssql-launchpadd.service.d/override.conf 파일에 다음 텍스트를 삽입합니다. R_HOME 값을 사용자 지정 R 설치 경로로 설정합니다.

    [Service]
    Environment="R_HOME=<path to R>"
    
  3. 저장하고 닫습니다.

다음으로 libR.so을 로드할 수 있는지 확인합니다.

  1. /etc/ld.so.conf.d에 custom-r.conf 파일을 만듭니다.

    sudo vi /etc/ld.so.conf.d/custom-r.conf
    
  2. 열리는 파일에서 사용자 지정 R 설치의 libR.so 경로를 추가합니다.

    <path to the R lib>
    
  3. 새 파일을 저장하고 편집기를 닫습니다.

  4. 다음 명령을 실행하고 모든 종속 라이브러리를 찾을 수 있는지 확인하여 ldconfig를 실행하고 libR.so를 로드할 수 있는지 확인합니다.

    sudo ldconfig
    ldd <path to the R lib>/libR.so
    

사용자 지정 R 설치 폴더에 대한 액세스 권한 부여

/var/opt/mssql/mssql.conf 파일의 확장성 섹션에서 datadirectories 옵션을 사용자 지정 R 설치로 설정합니다.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to R>

mssql-launchpadd 서비스 다시 시작

다음 명령을 실행하여 mssql-launchpadd를 다시 시작합니다.

sudo systemctl restart mssql-launchpadd

Rcpp 패키지 설치

다음 단계에 따라 Rcpp 패키지를 설치합니다.

  1. 다음과 같이 셸에서 R을 시작합니다.

    sudo ${R_HOME}/bin/R
    
  2. 다음 스크립트를 실행하여 ${R_HOME}/library 폴더에 Rcpp 패키지를 설치합니다.

install.packages("Rcpp", lib = "${R_HOME}/library");

언어 확장 등록

R 사용자 지정 런타임에 사용되는 R 언어 확장을 다운로드하고 등록하려면 다음 단계를 수행합니다.

  1. SQL Server 언어 확장 GitHub 리포지토리에서 R-lang-extension-linux-release.zip 파일을 다운로드합니다.

    개발 또는 테스트 환경에서는 디버그 버전(R-lang-extension-linux-debug.zip)을 사용할 수 있습니다. 디버그 버전은 오류를 조사하기 위한 자세한 로깅 정보를 제공하며 프로덕션 환경에는 권장되지 않습니다.

  2. Azure Data Studio를 사용하여 SQL Server 인스턴스에 연결하고, 다음 T-SQL 명령을 실행하여 R 언어 확장을 CREATE EXTERNAL LANGUAGE에 등록합니다.

    다운로드한 언어 확장 zip 파일(R-lang-extension-linux-release.zip)의 위치를 반영하도록 이 명령문의 경로를 수정합니다.

    CREATE EXTERNAL LANGUAGE [myR]
    FROM (CONTENT = N'/path/to/R-lang-extension-linux-release.zip', FILE_NAME = 'libRExtension.so.1.1');
    GO
    

    R 언어 확장을 사용하려는 각 데이터베이스에 대해 명령문을 실행합니다.

    참고

    R은 예약어이며 새 외부 언어 이름으로 사용할 수 없습니다. 다른 이름을 사용하세요. 예를 들어 위의 명령문에서는 myR을 사용합니다.

외부 스크립트 사용

저장 프로시저 sp_execute_external script를 사용하여 R 외부 스크립트를 실행할 수 있습니다.

외부 스크립트를 사용하려면 Azure Data Studio를 사용하여 다음 문을 실행합니다.

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

설치 확인

다음 SQL 스크립트를 사용하여 R 사용자 지정 런타임의 설치 및 기능을 확인합니다. 아래 샘플 스크립트에서는 사용자 지정 런타임에 기본 언어 이름 R을 제공할 수 없으므로 myR이 언어 이름으로 사용됩니다.

EXEC sp_execute_external_script
    @language =N'myR',
    @script=N'
print(R.home());
print(file.path(R.home("bin"), "R"));
print(R.version);
print("Hello RExtension!");'

알려진 문제

언어 확장을 등록할 때 R_HOMEC:\Program Files\Microsoft SQL Server\MSSQL15.<INSTANCE_NAME>\R_SERVICES로 설정하여 SQL Server Machine Learning Services의 일부로 제공되는 R 런타임을 사용하는 경우, sp_execute_external script를 사용하여 외부 사용자 지정 R 스크립트를 실행할 때 다음 오류가 발생할 수 있습니다.

Error: cons memory exhausted (limit reached?) (오류: cons 메모리를 모두 소모함(한도에 도달했을 수 있음))

이 문제를 해결하려면 다음을 수행합니다.

  1. 고정된 크기의 개체(cons cells) 수를 나타내는 환경 변수 R_NSIZE를 적절한 값(예: 200000)으로 설정합니다.
  2. 실행 패드 서비스를 다시 시작하고 스크립트 실행을 다시 시도합니다.

알려진 문제

libstdc++.so.6이 올바른 버전이 아닌 경우 다음 오류가 표시됩니다.

Exthost: 확장을 로드하지 못했습니다. /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20'을 찾을 수 없습니다(/home/mssql_satellite/externallanguagessandboxpath/libRExtension.so.1.1에 필요).

다음 단계