SQL Server 2016 R Services + Microsoft R Server 技術資料
-
Upload
koichiro-sasaki -
Category
Technology
-
view
87 -
download
3
Transcript of SQL Server 2016 R Services + Microsoft R Server 技術資料
2
Microsoft R Server と R Services 概要
まとめ
1.
3.
Microsoft R Server と R Services 詳細2.
2. Microsoft R Server と R Services 詳細3. まとめ
4
• 無償、オープンソースの R ディストリビューション
• マイクロソフトによって拡張して提供
Microsoft R Open (MRO)
• スケール実行が可能でサポートが受けられる
R ディストリビューション
• マイクロソフトによって作成した特別なコンポーネントを含む
Microsoft R Server (MRS)
5
Revolution R
Enterprise
Revolution R
Open
Microsoft R Server
SQL Server 2016
R Services *
Microsoft R Open
これまで これから
Windows
Hadoop
Red Hat SuSE
Teradata
Linux (Ubuntu/CentOS
/Red Hat/SuSE)
Windows Mac
* SQL Server 2016 リリースまでは Revolution R Enterprise for Windows を利用
6
• Language Platform• データ分析と統計に最適化• データ可視化の枠組みも併せ持つ• オープンソース
• 強力なコミュニティ• 250 万を超える全世界にまたがる統計分析/機械学習のユーザー
• 大学の統計プログラムで最も使われていると言われている
• エコシステム• CRAN に 6500 を超える無償のアルゴリズム/テストデータ/
評価スクリプト• 大規模データでの利用実績
8
9
• コスト / ライセンス• 非常に高価• 複雑なライセンス体系と価格設定
• 導入• 特定プラットフォームへの固定化• 長期間、かつ大規模なアップグレードや更新
• 関係者間での意見の衝突• データサイエンティスト: R, Python 最先端技術で分析したい。• 業務部門:データサイエンティストはお金がかかる。GUI ツールを導入して簡易にしたい。• 情報システム部:セルフサービスで分析できる仕組みを大規模データストレージ上に構築し
たい。
10
• オープンソースを拡張• R のスキルで対応可能。人材確保のハードルを下げる• 他の分析パッケージやデータとの統合が容易に可能• 大量の R 分析ライブラリが利用可能 (オープンソース R との 100% 互換)
• パフォーマンス• 並列アルゴリズムによる分散実行• Hadoop (HDInsight/Cloudera/Hortonworks/MapR), Teradata に対して並列実行• 利用可能メモリの制限なし
• 利便性• 強力な GUI、IDE (統合開発環境) の提供• Windows、Linux を共にサポート
11
• データサイエンティスト• R 利用による汎用スキルの獲得と活用、R によるキャリア• Hadoop 利用によるスケーラビリティが確保された環境• マルチプラットフォーム (Windows/Linux)
• 情報システム部• 既存のビッグデータ基盤上でも利用/統合可能• マイクロソフトのサポートによるオープン ソースリスクの低減
• 業務部門• 予測可能な処理時間• 業務分析にかかるコストの低下
12
• Microsoft R Server for Red Hat Linux
• Microsoft R Server for SUSE Linux
• Microsoft R Server for Teradata DB
• Microsoft R Server for Hadoop on Red Hat
• RRE for Windows(Microsoft SQL Server 2014 Enterprise Edition + SA の場合)
Microsoft R Server (MRS)
Microsoft SQL Server 2016
• Microsoft SQL Server 2016
13
データ処理 インメモリ インメモリ インメモリ or ディスク
分析スピード シングルスレッド マルチスレッドマルチスレッド1:N のサーバーに対する並列処理
サポート コミュニティ コミュニティコミュニティ+
商用サポート
分析のためのパッケージ
7500 を超えるパッケージ (CRAN)
7500 を超えるパッケージ (CRAN)
7500 を超えるパッケージ
(CRAN) +商用の高速並列関数
ライセンス オープンソース オープンソース 商用ライセンス
Microsoft ROpen (MRO)
Microsoft RServer (MRS)
SQL Server 2016R Services
14
R Open R Server
DevelopRDeployR
15
16
マスターアルゴリズムプロセス
アルゴリズム
大規模データ各ブロック
を分析
都度ブロック読み込み
分散処理
結果
Microsoft R Server“クライアント” Microsoft R Server “サーバー”
コンソール
R IDEもしくは
コマンドライン
リクエスト内容纏めてリモート環境に送信
17
18
ソフトウェア 環境 処理時間
SAS 16 コア Sun サーバー 5 時間
rmr / map-reduce 8 コア 10 ノードのHadoop クラスター
10 時間以上
オープンソース R 250-GB サーバー 測定不可(72時間以上)
Revolution R
(RevoScaleR)
4 コア 5 ノードのクラスター 5 分 42 秒
http://blog.revolutionanalytics.com/2012/10/allstate-big-data-glm.html
19
Microsoft ROpen (MRO)
Microsoft RServer (MRS)GNU R
SQL ServerR Services
20
21
22
Gradient Boosted Decision Trees
Naïve Bayes
Data import – Delimited, Fixed, SAS, SPSS,
OBDC
Variable creation & transformation
Recode variables
Factor variables
Missing value handling
Sort, Merge, Split
Aggregate by category (means, sums)
Min / Max, Mean, Median (approx.)
Quantiles (approx.)
Standard Deviation
Variance
Correlation
Covariance
Sum of Squares (cross product matrix for set
variables)
Pairwise Cross tabs
Risk Ratio & Odds Ratio
Cross-Tabulation of Data (standard tables & long
form)
Marginal Summaries of Cross Tabulations
Chi Square Test
Kendall Rank Correlation
Fisher’s Exact Test
Student’s t-Test
Subsample (observations & variables)
Random Sampling
Data Preparation Statistical Tests
Sampling
Descriptive Statistics Sum of Squares (cross product matrix for set
variables)
Multiple Linear Regression
Generalized Linear Models (GLM) exponential
family distributions: binomial, Gaussian, inverse
Gaussian, Poisson, Tweedie. Standard link
functions: cauchit, identity, log, logit, probit. User
defined distributions & link functions.
Covariance & Correlation Matrices
Logistic Regression
Classification & Regression Trees
Predictions/scoring for models
Residuals for all models
Predictive Models K-Means
Decision Trees
Decision Forests
Cluster Analysis
Classification
Simulation
Variable Selection
Stepwise Regression
Simulation (e.g. Monte Carlo)
Parallel Random Number Generation
Combination rxDataStep
rxExec
PEMA-R API Custom Algorithms
23
sqlCompute <- RxInSqlServer(connectionString = sqlConnString, shareDir = sqlShareDir, wait = sqlWait, consoleOutput = sqlConsoleOutput)
24
25
### ANALYTICAL PROCESSING ###
### Statistical Summary of the data
rxSummary(~ArrDelay+DayOfWeek, data= AirlineDataSet, reportProgress=1)
### CrossTab the data
rxCrossTabs(ArrDelay ~ DayOfWeek, data= AirlineDataSet, means=T)
### Linear Model and plot
hdfsXdfArrLateLinMod <- rxLinMod(ArrDelay ~ DayOfWeek + 0 , data = AirlineDataSet)
plot(hdfsXdfArrLateLinMod$coefficients)
### SETUP LOCAL ENVIRONMENT VARIABLES ###
myLocalCC <- “localpar”
### LOCAL COMPUTE CONTEXT ###
rxSetComputeContext(myLocalCC)
### CREATE LINUX, DIRECTORY AND FILE OBJECTS ###
localFS <- RxNativeFileSystem()
AirlineDataSet <- RxXdfData(“AirlineDemoSmall.xdf”,
fileSystem = localFS)
自ノードでの並列実行 – Linux/Windows SQL Server 上での実行
R スクリプトの実行コンテキスト
「どこで処理を行うか?」の設定
処理内容は実行する場所が変わっても同一
### SETUP SQL Server ENVIRONMENT VARIABLES ###
mssqlCC <- "Driver=SQL;SERVER=localhost;Database=RevoTester;
Uid=RevoTester; pwd=######"
### SQL SERVER COMPUTE CONTEXT ###
rxSetComputeContext(mssqlCC)
### CREATE SQL SERVER DATA SOURCE ###
AirlineDemoQuery <- "SELECT * FROM AirlineDemoSmall;"
AirlineDataSet <- RxSqlServerData(connectionString =
mySqlCC, sqlQuery = AirlineDemoQuery)
26
### ANALYTICAL PROCESSING ###
### Statistical Summary of the data
rxSummary(~ArrDelay+DayOfWeek, data= AirlineDataSet, reportProgress=1)
### CrossTab the data
rxCrossTabs(ArrDelay ~ DayOfWeek, data= AirlineDataSet, means=T)
### Linear Model and plot
hdfsXdfArrLateLinMod <- rxLinMod(ArrDelay ~ DayOfWeek + 0 , data = AirlineDataSet)
plot(hdfsXdfArrLateLinMod$coefficients)
### SETUP LOCAL ENVIRONMENT VARIABLES ###
myLocalCC <- “localpar”
### LOCAL COMPUTE CONTEXT ###
rxSetComputeContext(myLocalCC)
### CREATE LINUX, DIRECTORY AND FILE OBJECTS ###
localFS <- RxNativeFileSystem()
AirlineDataSet <- RxXdfData(“AirlineDemoSmall.xdf”,
fileSystem = localFS)
myHadoopCC <- RxHadoopMR()
rxSetComputeContext(myHadoopCC)
hdfsFS <- RxHdfsFileSystem()
hdfsFS
自ノードでの並列実行 – Linux/Windows Hadoop 上での実行
R スクリプトの実行コンテキスト
「どこで処理を行うか?」の設定
処理内容は実行する場所が変わっても同一
27
### ANALYTICAL PROCESSING ###
### Statistical Summary of the data
rxSummary(~ArrDelay+DayOfWeek, data= AirlineDataSet, reportProgress=1)
### CrossTab the data
rxCrossTabs(ArrDelay ~ DayOfWeek, data= AirlineDataSet, means=T)
### Linear Model and plot
hdfsXdfArrLateLinMod <- rxLinMod(ArrDelay ~ DayOfWeek + 0 , data = AirlineDataSet)
plot(hdfsXdfArrLateLinMod$coefficients)
### SETUP LOCAL ENVIRONMENT VARIABLES ###
myLocalCC <- “localpar”
### LOCAL COMPUTE CONTEXT ###
rxSetComputeContext(myLocalCC)
### CREATE LINUX, DIRECTORY AND FILE OBJECTS ###
localFS <- RxNativeFileSystem()
AirlineDataSet <- RxXdfData(“AirlineDemoSmall.xdf”,
fileSystem = localFS)
自ノードでの並列実行 – Linux/Windows Teradata 上での実行
R スクリプトの実行コンテキスト
「どこで処理を行うか?」の設定
処理内容は実行する場所が変わっても同一
### SETUP TERADATA ENVIRONMENT VARIABLES ###
myTdCC <- "Driver=Teradata; DBCNAME=TeradataProd;
Database=RevoTester; Uid=RevoTester; pwd=######"
### TERADATA COMPUTE CONTEXT ###
rxSetComputeContext(myTdCC)
### CREATE TERADATA DATA SOURCE ###
AirlineDemoQuery <- "SELECT * FROM AirlineDemoSmall;"
AirlineDataSet <- RxTeradata(connectionString =
myTdCC, sqlQuery = AirlineDemoQuery)
28
29
・デバッグ (ステップ実行、ブレークポイント)・コードスニペット、インテリセンス・変数エクスプローラー・ GUI のパッケージ管理
https://www.visualstudio.com/en-us/features/rtvs-vs.aspx
30
Revolution ScaleR + 6500 以上の R パッケージ
R モデルリポジトリ
セキュリティ機能
R セッション管理
リソース管理XML/JSON エンコード
デスクトップアプリ モバイルアプリ Web アプリ リアルタイムアプリ
ライブラリ
クライアント
DeployR
Webサービス
R モデルの並列実行
R セッション開始
スクリプト読み込み
R モデルリクエスト/ パラメーター
R モデル出力の受取
R モデル出力を
クライアントに応答
31
BI ツールでの不正分析Web アプリでの市場バスケット分析
Size of circles
indicate credit
card balance,
and the
darkness of the
circle shows the
prediction of
fraud
Excel 統合
32
33
・ R スクリプトをアップロードすることで即時に REST API として利用可能
34
プールサイズを設定して秒単位、分単位で実行可能なタスク数を制限
DeployR モニターで全ての処理を確認可能
35
業務アプリからインプットされるパラメーターを定義可能
実行する R スクリプトのテスト、編集も可能
36
String deployrEndpoint = “http://192.168.0.1:7400/deploy”;
// DeployR との接続
RClient rClient = RClientFactory.createClient(deployrEndpoint);
// 指定した R スクリプトの実行
RScriptExecution exec = rClient.executeScript(scriptName, scriptDirectory, scriptAuthor, scriptVersion);
// 結果ファイルをダウンロード
foreach (RProjectFile file in exec.about().artifacts)
{
WebClient webClient = new WebClient();
webClient.DownloadFile(file.about().url, @directoryPath + Path.GetFileName(file.about().url));
}
37
DeployR Server
グリッドフレームワーク
グリッドノード
1. Microsoft R Server と R Services 概要
2. Microsoft R Server と R Services 詳細3. まとめ
39
40
処理の流れ
InputColumn1 に 10 が格納
InputDataSet にInputCollumn1 の値が格納
InputDataSet / 4 が計算されOutputDataSet に格納
OutputColumn1 という列名で結果セット出力
41
42
43
SQL Server 2016 正式リリース (2016/6/1) 時点では、スタンドアロンインスタンスのみサポート(AlwaysOn AG 含む)
⇒フェールオーバークラスターインスタンス(FCI) としてはインストール不可
44
Hadoop MapReduce として実行 (MR から R プロセスを起動)
Scala シェルとして実行(Scala から R プロセスを起動)
専用プロセスから R プロセスを起動
45
RTerm.exe
R.dll
RxLink.dll
BxlServer.exe
SQL
Server
プロセス(sqlsrvr.exe)
SqlSatellite.dll
SQL/R
Reader,
Writer,
Converter
TCP/IP 接続 データチャネル
Launchpad
サービス
Rlauncher.dll
名前付き
パイプ
Microsoft
R Open
SQL Server との
通信プロセス
sp_
execute_
external_
script
46
SQL Server 2016
Microsoft R Open
(Revolution R
Enterprise)
Advanced Analytics
Extensions
47
Launchpad.exe
Launchpad.exe
ScaleRlaunch
er.dll
Sqlsrvr.exe
Sqlsrvr.exe
起動
起動
RTerm.exe
R.dll
RxLink.dll
BxlServer.exe
RTerm.exe
名前付きパイプ
SqlSatellite.dll
SQL/R Reader,
Writer,
Converter
BxlServer.exe
RTerm.exe
R.dll
RxLink.dll
BxlServer.exe
RTerm.exe
SqlSatellite.dll
SQL/R Reader,
Writer,
Converter
BxlServer.exe
マスタープロセス
ワーカープロセス
名前付きパイプ
48
ノード 1
ノード 2
・・・
ノード N
49
50
51
ノード 1
ノード 2
・・・
ノード N
52
ノード 1
ノード 2
・・・
ノード N
53
54
SQL Server on Windows
R Server on Linux
1. Microsoft R Server と R Services 概要2. Microsoft R Server と R Services 詳細
3. まとめ
56
本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。
本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。
Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
© 2016 Microsoft Corporation. All rights reserved.
Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。