SQL Server 빅 데이터 클러스터의 Sparklyr 사용

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

중요

Microsoft SQL Server 2019 빅 데이터 클러스터 추가 기능이 사용 중지됩니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일에 종료됩니다. Software Assurance를 사용하는 SQL Server 2019의 모든 기존 사용자는 플랫폼에서 완전히 지원되며, 소프트웨어는 지원 종료 시점까지 SQL Server 누적 업데이트를 통해 계속 유지 관리됩니다. 자세한 내용은 공지 블로그 게시물Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.

SparklyR은 Apache Spark에 대한 R 인터페이스를 제공합니다. Sparklyr는 R 개발자가 Spark를 사용하는 데 널리 사용되는 방법입니다. 이 문서에서는 SQL Server 2019 빅 데이터 클러스터에서 RStudio를 사용하여 sparklyr를 사용하는 방법을 설명합니다.

필수 조건

R 및 RStudio Desktop 설치

다음 단계에 따라 RStudio Desktop을 설치 및 구성합니다.

  1. Windows 클라이언트에서 실행하는 경우 R 3.6.3을 다운로드하여 설치합니다. 또한 RTools 3.5를 다운로드하여 설치합니다. PATH 환경 변수에서 RTools 이진 폴더를 구성해야 합니다.

    Warning

    아래에 지정된 버전 이외의 R 버전 4.x 및 sparklyr 버전은 SQL Server 빅 데이터 클러스터 CU13 기준 작동하지 않는 것으로 확인되었습니다.

  2. RStudio Desktop을 다운로드하여 설치합니다. 필요에 따라 모든 샘플을 R 셸에서 작동할 수 있습니다.

  3. 설치가 완료되면 RStudio Desktop 또는 R 셸 내에서 다음 명령을 실행하여 필요한 패키지를 설치합니다. 메시지가 표시되면 원본에서 패키지를 컴파일하도록 확인합니다.

install.packages("devtools")
devtools::install_github('rstudio/sparklyr', ref = 'v1.7.0', upgrade = 'always', repos = 'https://cran.microsoft.com/snapshot/2021-06-11/')

빅 데이터 클러스터에서 Spark에 연결

sparklyr를 사용하여 클라이언트에서 Livy 및 HDFS/Spark 게이트웨이를 사용하는 빅 데이터 클러스터로 연결할 수 있습니다.

RStudio에서 다음 예제처럼 R 스크립트를 만들고 Spark에 연결합니다.

<AZDATA_USERNAME><AZDATA_PASSWORD> 값의 경우, 빅 데이터 클러스터 배포 중에 설정한 사용자 이름과 암호를 사용하세요.

SQL Server 2019(15.x) CU 5부터 기본 인증을 사용하여 새 클러스터를 배포하는 경우 게이트웨이를 비롯한 모든 엔드포인트는 AZDATA_USERNAMEAZDATA_PASSWORD를 사용합니다. CU 5로 업그레이드된 클러스터의 엔드포인트는 게이트웨이 엔드포인트에 연결하기 위해 사용자 이름으로 root를 계속 사용합니다. Active Directory 인증을 사용하는 배포에는 이 변경 내용이 적용되지 않습니다. 릴리스 정보에서 게이트웨이 엔드포인트를 통해 서비스에 액세스하기 위한 자격 증명을 참조하세요.

<IP> 값 및 <PORT> 값은 빅 데이터 클러스터에 연결 관련 내용이 있는 설명서를 참조하세요.

library(sparklyr)
library(dplyr)
library(DBI)

#Specify the Knox username and password
config <- livy_config(user = "<AZDATA_USERNAME>", password = "<AZDATA_PASSWORD>")

httr::set_config(httr::config(ssl_verifypeer = 0L, ssl_verifyhost = 0L))

sc <- spark_connect(master = "https://<IP>:<PORT>/gateway/default/livy/v1",
                    method = "livy",
                    config = config)

sparklyr 쿼리 실행

Spark에 연결한 후 sparklyr를 실행할 수 있습니다. 다음 예제에서는 sparklyr를 사용하여 iris 데이터 세트를 대상으로 쿼리를 실행합니다.

iris_tbl <- copy_to(sc, iris)

iris_count <- dbGetQuery(sc, "SELECT COUNT(*) FROM iris")

iris_count

분산 R 계산

sparklyr의 한 가지 기능은 spark_applyR 계산을 배포하는 기능입니다.

빅 데이터 클러스터는 Livy 연결을 사용하므로 spark_apply 호출에서 packages = FALSE를 설정해야 합니다. 자세한 내용은 분산 R 계산에 대한 sparklyr 설명서의 Livy 섹션을 참조하세요. 이 설정을 사용하면 spark_apply에 전달된 R 코드에서 사용자의 Spark 클러스터에 이미 설치된 R 패키지만 사용할 수 있습니다. 다음 예에서는 이 기능을 보여줍니다.

iris_tbl %>% spark_apply(function(e) nrow(e), names = "nrow", group_by = "Species", packages = FALSE)

다음 단계

빅 데이터 클러스터에 대한 자세한 내용은 SQL Server 2019 빅 데이터 클러스터란을 참조하세요.