SQL Server のビッグ データ クラスターで sparklyr を使用する
適用対象: SQL Server 2019 (15.x)
重要
Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの SQL Server 2019 を使用する既存の全ユーザーはプラットフォームで完全にサポートされ、ソフトウェアはその時点まで SQL Server の累積更新プログラムによって引き続きメンテナンスされます。 詳細については、お知らせのブログ記事と「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。
Sparklyr には、Apache Spark 用の R インターフェイスが用意されています。 Sparklyr は、Spark を使用する R 開発者にとって一般的な方法です。 この記事では、RStudio を使用して SQL Server 2019 ビッグ データ クラスター で sparklyr を使用する方法について説明します。
前提条件
R と RStudio Desktop をインストールする
次の手順で RStudio Desktop をインストールして構成します。
Windows クライアントで実行している場合は、R 3.6.3 をダウンロードしてインストールします。 また、RTools 3.5 もダウンロードしてインストールします。 PATH 環境変数で RTools バイナリ フォルダーを構成してください。
警告
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 に接続します。
ヒント
<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 の機能の 1 つとして、spark_apply を使用して R 計算を分散する機能があります。
ビッグ データ クラスターは 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 ビッグ データ クラスター とはの概要に関するページを参照してください。