2
3
4
マイクロソフトのデータ分析基盤
利用事例
データ分析のため前処理と分析バッチ処理- Azure Data Lake Analytics
R スクリプトを並列実行 - Microsoft R Server
機械学習を具体的な API として利用
- Project Oxford / Azure Machine Learning
まとめ
1.
2.
3.
4.
5.
6.
10 分
15 分
20 分
20 分
20 分
5 分
6
開発言語
Microsoft Azure
7
米国中部Iowa
米国西部California
北ヨーロッパIreland
米国東部Virginia
米国東部2Virginia米国政府
Virginia
米国中北部Illinois
米国政府Iowa
米国中南部Texas
南ブラジルSao Paulo
西ヨーロッパNetherlands
北中国 *Beijing
南中国 *Shanghai
東日本Saitama
西日本Osaka
南インドChennai
東アジアHong Kong
東南アジアSingapore
東南オーストラリアVictoria
東オーストラリアNew South Wales
中央インドPune
カナダ東部Quebec City
カナダ中部Toronto
西インドMumbai
(2015年 12月現在)
稼働中 構築中 * Operated by 21Vianet
100カ所以上のデータセンター ネットワーク網が全世界でトップスリーの一つ AWS の2倍、Google 6倍の地域サポート G Series – 最大 VM 提供開始 – 32 コア, 448GB RAM, SSD…
22 の地域でサービス中、28 の地域まで拡大予定
ドイツ ×2Magdeburg & Frankfurt
UK ×2
8
MachineLearning
Stream AnalyticsSQL Data Ware House
/ SQL Database/ DocumentDB
IoT Hub /Event Hub
各種デバイス
Data FactoryData Lake Store
Storage(Blob / Table / Queue)
Data Lake Analytics
Power BI
Cortana Analytics Suite (コルタナ アナリティクス スイート) * IoT Hub と R Server 除く
一部サービス含む
MicrosoftR Server
HDInsight
ProjectOxford
Data Catalog
9価値
11
https://www.microsoft.com/en-us/server-cloud/cloud-os/customer-stories/pier-1-imports.aspx
12
Demo
13
https://blogs.microsoft.com/business-matters/2015/07/13/dartmouth-hitchcock-ushers-in-a-new-age-of-proactive-personalized-healthcare-using-cortana-analytics-suite/
14
Demo
16
* 平均26年度総務省 情報通信白書 第 3 章より
17
18
19
・ マイクロソフトが提供する Managed な Hadoop サービス・ GUI / スクリプトでクラスター構成可能
Hadoop の設定ファイルを 1 つ 1 つ編集、設定することも可能・ Apache Hadoop ファミリーや Apache Spark の
各種コンポーネントも利用可能- Apache HBase, Apache Storm, Hive, Pig, Spark Streaming 等
・ マイクロソフトが提供する Managed な HDFS* 互換サービス* Hadoop Distributed File System
・ 構造化/非構造化ファイルを容量上限なしに格納可能・ HDFS 同様、複数ファイルに自動複製して保持
・ 並列分散処理のためのサービス・ Scala や Python ではなく、U-SQL と呼ぶ SQL ライクな言語で
処理を実装する・ 実行の都度、並列度 (シングルから超多重処理まで) を決定可・ 処理内容の統計(各操作の In/Out や時間等) をグラフィカルに
確認可
20
HDInsight
Microsoft R Server
Azure Data Lake Store
HDInsight & Azure Data Lake Analytics
21
Demo
22
23
.Split(‘;’)
24
Azure Data Lake Analytics
Azure SQLData Warehouse
AzureSQL Database
Azure Blob Storage
Azure Data Lake Store
SQL DBon Azure VM
25
Azure Data Lake Analytics
Azure Data Lake Store
なし
¥ 1.74 / 分¥ 2.55 / ジョブ
例) ¥ 52,200 / 月毎日 10 時間 100 多重で100 ジョブ実行
定常的にかかる費用 処理量に応じてかかる費用
¥ 4.08 / 1GB
例) ¥ 20,040常時 5 TB を格納
¥ 7.14 / 最大 128GB
例) ¥ 1,712毎日 約 1TB のアクセス (In/Out)
26
28
• 無償、オープン ソースの R ディストリビューション
• マイクロソフトによって拡張して提供
Microsoft R Open (MRO)
• スケール実行が可能でサポートが受けられる
R ディストリビューション
• マイクロソフトによって作成した特別なコンポーネントを含む
Microsoft R Server (MRS)
29
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 を利用
30
31
• 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)
32
• メモリに収まる範囲での処理
• 大規模データ使用時の Out of Memory
• データのサンプリングによる制約
• 直列処理、処理するためにはデータの移動が必要
• 長時間かかる処理、データ移動も長時間かかる
• 並列実行を独自に組み込むには複雑
• 商用サポートなし
• 個人 PC のみでの利用で低い機能性、企業利用の場合問題が発生しても
解決が難しい場合も
33
データ処理 インメモリ インメモリ インメモリ or ディスク
分析スピード シングルスレッド マルチスレッドマルチスレッド1:N のサーバーに対する並列処理
サポート コミュニティ コミュニティコミュニティ+
商用サポート
分析のためのパッケージ
7500 を超えるパッケージ (CRAN)
7500 を超えるパッケージ (CRAN)
7500 を超えるパッケージ
(CRAN) +商用の高速並列関数
ライセンス オープンソース オープンソース 商用ライセンス
Microsoft ROpen (MRO)
Microsoft RServer (MRS)
34
マスターアルゴリズム
プロセス
アルゴリズム
大規模データ各ブロック
を分析
都度ブロック読み込み
分散処理
結果
Microsoft R Server“クライアント” Microsoft R Server “サーバー”
コンソール
R IDEもしくは
コマンドライン
リクエスト内容纏めてリモート
環境に送信
35
### 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 スクリプトの実行コンテキスト
「どこで処理を行うか?」の設定
処理内容は実行する場所が変わっても同一
36
### 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 ###
mySqlCC <- "Driver=SQL;SERVER=localhost;Database=RevoTester;
Uid=RevoTester; pwd=######"
### SQL SERVER COMPUTE CONTEXT ###
rxSetComputeContext(mySqlCC)
### CREATE SQL SERVER DATA SOURCE ###
AirlineDemoQuery <- "SELECT * FROM AirlineDemoSmall;"
AirlineDataSet <- RxSqlServerData(connectionString =
mySqlCC, sqlQuery = AirlineDemoQuery)
37
### 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)
38
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
39
DeployR
R Open R Server
DevelopR
40
41
43
44
ブラウザ (ML Studio) だけで すぐに始められる• サーバー等の環境準備/設定不要
複雑なモデルを GUI 操作だけでも実装可能
作成したモデルをボタン 1つで Web サービス化
R / Python での実装も可能
各種ストレージ、データベースを入力、出力に• Azure Blob/Azure Table/Azure SQL Database/
HiveQL/Web URL via HTTP/OData
1時間あたり ¥102 (ML Studio)/ ¥204 (API) の従量課金• 実行時間に対してのみ課金される• サブスクリプションなしで始められる Free Tier あり
45
46
・ モデルの選択はヘルプドキュメントとチートシートを参照・ R 実装によって独自にモデルを追加可能
47
48
49
Machine Learning API
実装済み機械学習モジュールRESTful API として利用
Experiment 例
50
51
52
53
Machine Learning API
実装済み機械学習モジュールREST API として利用
Experiment 例
54
55
56
Demo
57
58
Demo
59
60
61
宣伝
62
https://www.microsoft.com/ja-jp/server-cloud/products-Microsoft-Azure-IoT-Service.aspx
http://download.microsoft.com/download/C/E/0/CE041DB1-BE60-4419-85E2-A19018E29DC8/Azure_IoT_Suite_SelfLearning_V1.0.1.pdf
63
MachineLearning
Stream AnalyticsSQL Data Ware House
/ SQL Database/ DocumentDB
IoT Hub /Event Hub
各種デバイス
Data FactoryData Lake Store
Storage(Blob / Table / Queue)
Data Lake Analytics
Power BI
Cortana Analytics Suite (コルタナ アナリティクス スイート) * IoT Hub と R Server 除く
一部サービス含む
MicrosoftR Server
HDInsight
ProjectOxford
Data Catalog
65
66
本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。
本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。
Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
© 2016 Microsoft Corporation. All rights reserved.
Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。