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

56

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

Page 1: SQL Server 2016 R Services + Microsoft R Server 技術資料
Page 2: SQL Server 2016 R Services + Microsoft R Server 技術資料

2

Microsoft R Server と R Services 概要

まとめ

1.

3.

Microsoft R Server と R Services 詳細2.

Page 3: SQL Server 2016 R Services + Microsoft R Server 技術資料

2. Microsoft R Server と R Services 詳細3. まとめ

Page 4: SQL Server 2016 R Services + Microsoft R Server 技術資料

4

• 無償、オープンソースの R ディストリビューション

• マイクロソフトによって拡張して提供

Microsoft R Open (MRO)

• スケール実行が可能でサポートが受けられる

R ディストリビューション

• マイクロソフトによって作成した特別なコンポーネントを含む

Microsoft R Server (MRS)

Page 5: SQL Server 2016 R Services + Microsoft R Server 技術資料

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 を利用

Page 6: SQL Server 2016 R Services + Microsoft R Server 技術資料

6

• Language Platform• データ分析と統計に最適化• データ可視化の枠組みも併せ持つ• オープンソース

• 強力なコミュニティ• 250 万を超える全世界にまたがる統計分析/機械学習のユーザー

• 大学の統計プログラムで最も使われていると言われている

• エコシステム• CRAN に 6500 を超える無償のアルゴリズム/テストデータ/

評価スクリプト• 大規模データでの利用実績

Page 8: SQL Server 2016 R Services + Microsoft R Server 技術資料

8

Page 9: SQL Server 2016 R Services + Microsoft R Server 技術資料

9

• コスト / ライセンス• 非常に高価• 複雑なライセンス体系と価格設定

• 導入• 特定プラットフォームへの固定化• 長期間、かつ大規模なアップグレードや更新

• 関係者間での意見の衝突• データサイエンティスト: R, Python 最先端技術で分析したい。• 業務部門:データサイエンティストはお金がかかる。GUI ツールを導入して簡易にしたい。• 情報システム部:セルフサービスで分析できる仕組みを大規模データストレージ上に構築し

たい。

Page 10: SQL Server 2016 R Services + Microsoft R Server 技術資料

10

• オープンソースを拡張• R のスキルで対応可能。人材確保のハードルを下げる• 他の分析パッケージやデータとの統合が容易に可能• 大量の R 分析ライブラリが利用可能 (オープンソース R との 100% 互換)

• パフォーマンス• 並列アルゴリズムによる分散実行• Hadoop (HDInsight/Cloudera/Hortonworks/MapR), Teradata に対して並列実行• 利用可能メモリの制限なし

• 利便性• 強力な GUI、IDE (統合開発環境) の提供• Windows、Linux を共にサポート

Page 11: SQL Server 2016 R Services + Microsoft R Server 技術資料

11

• データサイエンティスト• R 利用による汎用スキルの獲得と活用、R によるキャリア• Hadoop 利用によるスケーラビリティが確保された環境• マルチプラットフォーム (Windows/Linux)

• 情報システム部• 既存のビッグデータ基盤上でも利用/統合可能• マイクロソフトのサポートによるオープン ソースリスクの低減

• 業務部門• 予測可能な処理時間• 業務分析にかかるコストの低下

Page 12: SQL Server 2016 R Services + Microsoft R Server 技術資料

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

Page 13: SQL Server 2016 R Services + Microsoft R Server 技術資料

13

データ処理 インメモリ インメモリ インメモリ or ディスク

分析スピード シングルスレッド マルチスレッドマルチスレッド1:N のサーバーに対する並列処理

サポート コミュニティ コミュニティコミュニティ+

商用サポート

分析のためのパッケージ

7500 を超えるパッケージ (CRAN)

7500 を超えるパッケージ (CRAN)

7500 を超えるパッケージ

(CRAN) +商用の高速並列関数

ライセンス オープンソース オープンソース 商用ライセンス

Microsoft ROpen (MRO)

Microsoft RServer (MRS)

SQL Server 2016R Services

Page 14: SQL Server 2016 R Services + Microsoft R Server 技術資料

14

R Open R Server

DevelopRDeployR

Page 15: SQL Server 2016 R Services + Microsoft R Server 技術資料

15

Page 16: SQL Server 2016 R Services + Microsoft R Server 技術資料

16

マスターアルゴリズムプロセス

アルゴリズム

大規模データ各ブロック

を分析

都度ブロック読み込み

分散処理

結果

Microsoft R Server“クライアント” Microsoft R Server “サーバー”

コンソール

R IDEもしくは

コマンドライン

リクエスト内容纏めてリモート環境に送信

Page 17: SQL Server 2016 R Services + Microsoft R Server 技術資料

17

Page 18: SQL Server 2016 R Services + Microsoft R Server 技術資料

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

Page 20: SQL Server 2016 R Services + Microsoft R Server 技術資料

20

Page 21: SQL Server 2016 R Services + Microsoft R Server 技術資料

21

Page 22: SQL Server 2016 R Services + Microsoft R Server 技術資料

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

Page 23: SQL Server 2016 R Services + Microsoft R Server 技術資料

23

sqlCompute <- RxInSqlServer(connectionString = sqlConnString, shareDir = sqlShareDir, wait = sqlWait, consoleOutput = sqlConsoleOutput)

Page 24: SQL Server 2016 R Services + Microsoft R Server 技術資料

24

Page 25: SQL Server 2016 R Services + Microsoft R Server 技術資料

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)

Page 26: SQL Server 2016 R Services + Microsoft R Server 技術資料

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 スクリプトの実行コンテキスト

「どこで処理を行うか?」の設定

処理内容は実行する場所が変わっても同一

Page 27: SQL Server 2016 R Services + Microsoft R Server 技術資料

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)

Page 28: SQL Server 2016 R Services + Microsoft R Server 技術資料

28

Page 29: SQL Server 2016 R Services + Microsoft R Server 技術資料

29

・デバッグ (ステップ実行、ブレークポイント)・コードスニペット、インテリセンス・変数エクスプローラー・ GUI のパッケージ管理

https://www.visualstudio.com/en-us/features/rtvs-vs.aspx

Page 30: SQL Server 2016 R Services + Microsoft R Server 技術資料

30

Revolution ScaleR + 6500 以上の R パッケージ

R モデルリポジトリ

セキュリティ機能

R セッション管理

リソース管理XML/JSON エンコード

デスクトップアプリ モバイルアプリ Web アプリ リアルタイムアプリ

ライブラリ

クライアント

DeployR

Webサービス

R モデルの並列実行

R セッション開始

スクリプト読み込み

R モデルリクエスト/ パラメーター

R モデル出力の受取

R モデル出力を

クライアントに応答

Page 31: SQL Server 2016 R Services + Microsoft R Server 技術資料

31

BI ツールでの不正分析Web アプリでの市場バスケット分析

Size of circles

indicate credit

card balance,

and the

darkness of the

circle shows the

prediction of

fraud

Excel 統合

Page 32: SQL Server 2016 R Services + Microsoft R Server 技術資料

32

Page 33: SQL Server 2016 R Services + Microsoft R Server 技術資料

33

・ R スクリプトをアップロードすることで即時に REST API として利用可能

Page 34: SQL Server 2016 R Services + Microsoft R Server 技術資料

34

プールサイズを設定して秒単位、分単位で実行可能なタスク数を制限

DeployR モニターで全ての処理を確認可能

Page 35: SQL Server 2016 R Services + Microsoft R Server 技術資料

35

業務アプリからインプットされるパラメーターを定義可能

実行する R スクリプトのテスト、編集も可能

Page 36: SQL Server 2016 R Services + Microsoft R Server 技術資料

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));

}

Page 37: SQL Server 2016 R Services + Microsoft R Server 技術資料

37

DeployR Server

グリッドフレームワーク

グリッドノード

Page 38: SQL Server 2016 R Services + Microsoft R Server 技術資料

1. Microsoft R Server と R Services 概要

2. Microsoft R Server と R Services 詳細3. まとめ

Page 39: SQL Server 2016 R Services + Microsoft R Server 技術資料

39

Page 40: SQL Server 2016 R Services + Microsoft R Server 技術資料

40

処理の流れ

InputColumn1 に 10 が格納

InputDataSet にInputCollumn1 の値が格納

InputDataSet / 4 が計算されOutputDataSet に格納

OutputColumn1 という列名で結果セット出力

Page 41: SQL Server 2016 R Services + Microsoft R Server 技術資料

41

Page 42: SQL Server 2016 R Services + Microsoft R Server 技術資料

42

Page 43: SQL Server 2016 R Services + Microsoft R Server 技術資料

43

SQL Server 2016 正式リリース (2016/6/1) 時点では、スタンドアロンインスタンスのみサポート(AlwaysOn AG 含む)

⇒フェールオーバークラスターインスタンス(FCI) としてはインストール不可

Page 44: SQL Server 2016 R Services + Microsoft R Server 技術資料

44

Hadoop MapReduce として実行 (MR から R プロセスを起動)

Scala シェルとして実行(Scala から R プロセスを起動)

専用プロセスから R プロセスを起動

Page 45: SQL Server 2016 R Services + Microsoft R Server 技術資料

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

Page 46: SQL Server 2016 R Services + Microsoft R Server 技術資料

46

SQL Server 2016

Microsoft R Open

(Revolution R

Enterprise)

Advanced Analytics

Extensions

Page 47: SQL Server 2016 R Services + Microsoft R Server 技術資料

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

マスタープロセス

ワーカープロセス

名前付きパイプ

Page 48: SQL Server 2016 R Services + Microsoft R Server 技術資料

48

ノード 1

ノード 2

・・・

ノード N

Page 49: SQL Server 2016 R Services + Microsoft R Server 技術資料

49

Page 50: SQL Server 2016 R Services + Microsoft R Server 技術資料

50

Page 51: SQL Server 2016 R Services + Microsoft R Server 技術資料

51

ノード 1

ノード 2

・・・

ノード N

Page 52: SQL Server 2016 R Services + Microsoft R Server 技術資料

52

ノード 1

ノード 2

・・・

ノード N

Page 53: SQL Server 2016 R Services + Microsoft R Server 技術資料

53

Page 54: SQL Server 2016 R Services + Microsoft R Server 技術資料

54

SQL Server on Windows

R Server on Linux

Page 55: SQL Server 2016 R Services + Microsoft R Server 技術資料

1. Microsoft R Server と R Services 概要2. Microsoft R Server と R Services 詳細

3. まとめ

Page 56: SQL Server 2016 R Services + Microsoft R Server 技術資料

56

本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。

本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。

すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。

Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。

© 2016 Microsoft Corporation. All rights reserved.

Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。

その他、記載されている会社名および製品名は、一般に各社の商標です。