적용 대상: SQL Server 2019(15.x)
Important
Microsoft SQL Server 2019 빅 데이터 클러스터는 사용 중지되었습니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일부터 종료되었습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 공지 블로그 게시물 및 빅 데이터 옵션을 참조하세요.
Sparklyr는 Apache Spark에 대한 R 인터페이스를 제공합니다. Sparklyr는 R 개발자가 Spark를 사용하는 인기 있는 방법입니다. 이 문서에서는 RStudio를 사용하여 SQL Server 2019 빅 데이터 클러스터에서 sparklyr를 사용하는 방법을 설명합니다.
Prerequisites
R 및 RStudio Desktop 설치
다음 단계를 사용하여 RStudio Desktop 을 설치하고 구성합니다.
Windows 클라이언트에서 실행하는 경우 R 3.6.3을 다운로드하여 설치합니다. 또한 RTools 3.5를 다운로드하여 설치합니다. PATH 환경 변수에서 RTools 이진 폴더를 구성해야 합니다.
Warning
아래에 지정된 R 버전 4.x 및 sparklyr 버전은 SQL Server 빅 데이터 클러스터 CU13에서 작동하지 않는 것으로 확인됩니다.
RStudio Desktop을 다운로드하고 설치합니다. 필요에 따라 모든 샘플은 R 셸에서 작동합니다.
설치가 완료되면 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에 연결합니다.
Tip
<AZDATA_USERNAME> 및 <AZDATA_PASSWORD> 값의 경우, 빅 데이터 클러스터 배포 중 설정한 사용자 이름과 암호를 사용하십시오.
SQL Server 2019(15.x) CU 5부터 기본 인증을 사용하여 새 클러스터를 배포하면 게이트웨이를 포함한 모든 엔드포인트가 AZDATA_USERNAME 및 AZDATA_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 연결을 사용하므로 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)
Next steps
빅 데이터 클러스터에 대한 자세한 내용은 SQL Server 2019 빅 데이터 클러스터란?을 참조하세요.