Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,040 views

Published on

Microsoft R Server および SQL Server 2016 で追加された R Services の技術観点の説明資料です

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×