SlideShare a Scribd company logo
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 を超える無償のアルゴリズム/テストデータ/
評価スクリプト
• 大規模データでの利用実績
7
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 R
Open (MRO)
Microsoft R
Server (MRS)
SQL Server 2016
R 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 R
Open (MRO)
Microsoft R
Server (MRS)GNU R
SQL Server
R 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 の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。

More Related Content

PDF
20160121 データサイエンティスト協会 木曜セミナー #5
PDF
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
PDF
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
PDF
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
PPTX
Yahoo! JAPANのOracle構成-2017年版
PPTX
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
PPTX
SQL Server 入門
PDF
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
20160121 データサイエンティスト協会 木曜セミナー #5
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
Yahoo! JAPANのOracle構成-2017年版
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
SQL Server 入門
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは

What's hot (20)

PPTX
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用
PPTX
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
PDF
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
PDF
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
PDF
Evolution of Impala #hcj2014
PDF
簡単!AWRをEXCELピボットグラフで分析しよう♪
PDF
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
PDF
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
PDF
SIGMOD’12勉強会 -Session 7-
PDF
20190314 PGStrom Arrow_Fdw
PDF
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
PDF
Osc2012 spring HBase Report
PDF
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
PDF
(LT)Spark and Cassandra
PPTX
RDB開発者のためのApache Cassandra データモデリング入門
PDF
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
PDF
Dat009 クラウドでビック
PDF
PHP開発者のためのNoSQL入門
PDF
Developers.IO 2019 Effective Datalake
PDF
Hadoopのシステム設計・運用のポイント
Qlik Replicate - 双方向レプリケーション(Bidirectional Replication)の利用
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
Evolution of Impala #hcj2014
簡単!AWRをEXCELピボットグラフで分析しよう♪
[db tech showcase Tokyo 2016] A32: Oracle脳で考えるSQL Server運用 by 株式会社インサイトテクノロジー...
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
SIGMOD’12勉強会 -Session 7-
20190314 PGStrom Arrow_Fdw
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
Osc2012 spring HBase Report
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
(LT)Spark and Cassandra
RDB開発者のためのApache Cassandra データモデリング入門
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Dat009 クラウドでビック
PHP開発者のためのNoSQL入門
Developers.IO 2019 Effective Datalake
Hadoopのシステム設計・運用のポイント
Ad

Similar to SQL Server 2016 R Services + Microsoft R Server 技術資料 (20)

PDF
Dat011 hd insight_+_spark_+_r_を活用した
PDF
レボリューションR(RRE)のご紹介
PDF
Oracle Cloud Developers Meetup@東京
PDF
10min r study_tokyor25
PDF
10min r study_tokyor25
PDF
Rにおける大規模データ解析(第10回TokyoWebMining)
PDF
TokyoR24 - PerformanceRvsC#
PPTX
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
PPTX
関東第1回r勉強会
PPTX
DB TechShowcase Tokyo - Intelligent Data Platform
PDF
R note 01_ver1.2
PDF
そういえばRとはなんだったか
PDF
財布にやさしいRを使ったデータマイニング
PPTX
R超入門機械学習をはじめよう
PDF
R-hpc-1 TokyoR#11
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PPTX
Hadoop scr第7回 hw2011フィードバック
PDF
第3回Japan rパネルディスカッション
PDF
データ解析技術入門(R編)
PPTX
第1回関西ゼロからはじめるR勉強会
Dat011 hd insight_+_spark_+_r_を活用した
レボリューションR(RRE)のご紹介
Oracle Cloud Developers Meetup@東京
10min r study_tokyor25
10min r study_tokyor25
Rにおける大規模データ解析(第10回TokyoWebMining)
TokyoR24 - PerformanceRvsC#
クラウドから始めるRのビッグデータ分析- Oracle R Enterprise in Cloud
関東第1回r勉強会
DB TechShowcase Tokyo - Intelligent Data Platform
R note 01_ver1.2
そういえばRとはなんだったか
財布にやさしいRを使ったデータマイニング
R超入門機械学習をはじめよう
R-hpc-1 TokyoR#11
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Hadoop scr第7回 hw2011フィードバック
第3回Japan rパネルディスカッション
データ解析技術入門(R編)
第1回関西ゼロからはじめるR勉強会
Ad

SQL Server 2016 R Services + Microsoft R Server 技術資料

  • 2. 2 Microsoft R Server と R Services 概要 まとめ 1. 3. Microsoft R Server と R Services 詳細2.
  • 3. 2. Microsoft R Server と R Services 詳細 3. まとめ
  • 4. 4 • 無償、オープン ソースの R ディストリビューション • マイクロソフトによって拡張して提供 Microsoft R Open (MRO) • スケール実行が可能でサポートが受けられる R ディストリビューション • マイクロソフトによって作成した特別なコンポーネントを含む Microsoft R Server (MRS)
  • 5. 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. 6 • Language Platform • データ分析と統計に最適化 • データ可視化の枠組みも併せ持つ • オープン ソース • 強力なコミュニティ • 250 万を超える全世界にまたがる統計分析/機械学習のユーザー • 大学の統計プログラムで最も使われていると言われている • エコシステム • CRAN に 6500 を超える無償のアルゴリズム/テストデータ/ 評価スクリプト • 大規模データでの利用実績
  • 7. 7
  • 8. 8
  • 9. 9 • コスト / ライセンス • 非常に高価 • 複雑なライセンス体系と価格設定 • 導入 • 特定プラットフォームへの固定化 • 長期間、かつ大規模なアップグレードや更新 • 関係者間での意見の衝突 • データ サイエンティスト: R, Python 最先端技術で分析したい。 • 業務部門:データ サイエンティストはお金がかかる。GUI ツールを導入して簡易にしたい。 • 情報システム部:セルフサービスで分析できる仕組みを大規模データストレージ上に構築し たい。
  • 10. 10 • オープン ソースを拡張 • R のスキルで対応可能。人材確保のハードルを下げる • 他の分析パッケージやデータとの統合が容易に可能 • 大量の R 分析ライブラリが利用可能 (オープンソース R との 100% 互換) • パフォーマンス • 並列アルゴリズムによる分散実行 • Hadoop (HDInsight/Cloudera/Hortonworks/MapR), Teradata に対して並列実行 • 利用可能メモリの制限なし • 利便性 • 強力な GUI、IDE (統合開発環境) の提供 • Windows、Linux を共にサポート
  • 11. 11 • データ サイエンティスト • R 利用による汎用スキルの獲得と活用、R によるキャリア • Hadoop 利用によるスケーラビリティが確保された環境 • マルチ プラットフォーム (Windows/Linux) • 情報システム部 • 既存のビッグデータ基盤上でも利用/統合可能 • マイクロソフトのサポートによるオープン ソース リスクの低減 • 業務部門 • 予測可能な処理時間 • 業務分析にかかるコストの低下
  • 12. 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. 13 データ処理 インメモリ インメモリ インメモリ or ディスク 分析スピード シングルスレッド マルチスレッド マルチスレッド 1:N のサーバーに対する 並列処理 サポート コミュニティ コミュニティ コミュニティ+ 商用サポート 分析のための パッケージ 7500 を超えるパッ ケージ (CRAN) 7500 を超えるパッ ケージ (CRAN) 7500 を超えるパッケージ (CRAN) + 商用の高速並列関数 ライセンス オープンソース オープンソース 商用ライセンス Microsoft R Open (MRO) Microsoft R Server (MRS) SQL Server 2016 R Services
  • 14. 14 R Open R Server DevelopRDeployR
  • 15. 15
  • 16. 16 マスター アルゴリズム プロセス アルゴリズム 大規模 データ各ブロック を分析 都度ブロック 読み込み 分散処理 結果 Microsoft R Server “クライアント” Microsoft R Server “サーバー” コンソール R IDE もしくは コマンドライン リクエスト内容 纏めてリモート 環境に送信
  • 17. 17
  • 18. 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. 19 Microsoft R Open (MRO) Microsoft R Server (MRS)GNU R SQL Server R Services
  • 20. 20
  • 21. 21
  • 22. 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. 23 sqlCompute <- RxInSqlServer( connectionString = sqlConnString, shareDir = sqlShareDir, wait = sqlWait, consoleOutput = sqlConsoleOutput)
  • 24. 24
  • 25. 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. 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. 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. 28
  • 29. 29 ・ デバッグ (ステップ実行、ブレークポイント) ・ コード スニペット、インテリセンス ・ 変数エクスプローラー ・ GUI のパッケージ管理 https://www.visualstudio.com/en-us/features/rtvs-vs.aspx
  • 30. 30 Revolution ScaleR + 6500 以上の R パッケージ R モデル リポジトリ セキュリティ 機能 R セッション 管理 リソース管理 XML/JSON エンコード デスクトップ アプリ モバイル アプリ Web アプリ リアルタイム アプリ ライブラリ クライアント DeployR Web サービス R モデルの 並列実行 R セッション 開始 スクリプト 読み込み R モデル リクエスト/ パラメーター R モデル 出力の受取 R モデル 出力を クライアント に応答
  • 31. 31 BI ツールでの不正分析 Web アプリでの市場バスケット分析 Size of circles indicate credit card balance, and the darkness of the circle shows the prediction of fraud Excel 統合
  • 32. 32
  • 36. 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)); }
  • 38. 1. Microsoft R Server と R Services 概要 2. Microsoft R Server と R Services 詳細 3. まとめ
  • 39. 39
  • 40. 40 処理の流れ InputColumn1 に 10 が格納 InputDataSet に InputCollumn1 の値が格納 InputDataSet / 4 が計算され OutputDataSet に格納 OutputColumn1 という列名 で結果セット出力
  • 41. 41
  • 42. 42
  • 43. 43 SQL Server 2016 正式リリース (2016/6/1) 時点では、 スタンドアロン インスタンスのみサポート (AlwaysOn AG 含む) ⇒ フェールオーバー クラスター インスタンス (FCI) としてはインストール不可
  • 44. 44 Hadoop MapReduce として 実行 (MR から R プロセスを起動) Scala シェルとして実行 (Scala から R プロセスを起動) 専用プロセスから R プロセスを 起動
  • 46. 46 SQL Server 2016 Microsoft R Open (Revolution R Enterprise) Advanced Analytics Extensions
  • 49. 49
  • 50. 50
  • 53. 53
  • 54. 54 SQL Server on Windows R Server on Linux
  • 55. 1. Microsoft R Server と R Services 概要 2. Microsoft R Server と R Services 詳細 3. まとめ
  • 56. 56  本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、 ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。  本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。  すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、 機械的、複写、レコーディング、その他)、および目的であっても禁じられています。 これらは著作権保護された権利を制限するものではありません。  Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの 特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。 © 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。 その他、記載されている会社名および製品名は、一般に各社の商標です。