Big Data を支えるクラウドのスケーラブル

Big Data を支えるクラウドの
スケーラブル アーキテクチャー
日本マイクロソフト株式会社
D5-401
萩原 正義
@masayh
(C) 2011 Microsoft Corporation
3
(C) 2011 Microsoft Corporation
4
1. Volume
3. Variety
2. Velocity
4. Complexity
(Variability)
(C) 2011 Microsoft Corporation
5
(C) 2011 Microsoft Corporation
6
Service
Instance
Service
Instance
C, D
A, B, E, F
SQL
E, F
C, D, G, H
f(G) = 4601
53
53
Service
Instance
SQL
1
1
A, B
C, D, K,
L
SQL
G
SQL
Service
Request
Service
Instance
905
Data
Dependent
Routing
G
5000
6435
5501
Service
Instance
Service
Instance
K, L
A, B, I, J
I, J
K, L, G, H
(C) 2011 Microsoft Corporation
X
G, H
E, F, I, J
Replica
Size = 3
7
Collect-Store-Organize-Analyze-Share
センサー
サービス
MapRecuce/
P-DW
アプリ
共有
装置
エージェ
ント
CEP/
フィルター
解
釈
、
分
類
BI 分析
分析
(構造化)
業
務
プ
ロ
セ
ス
ERP
CRM
データ
ストア
分析
(非構造化)
レポーティング
ESB/SOA
LOB
On-premise またはクラウド
(C) 2011 Microsoft Corporation
意思決定
8
概念の種類
特徴
例
こと
発生した時間を持つ出来事。状態、記録となる
多くの場合「~する、~が起こる」と言えることで
「もの」と区別がつく(例、契約する、転勤するな
ど)
原材料、部品、商品、人、客、組織、 契約、製造、注文、消費、転勤、会議、事故、
病気、イベントの発生
場所
もの
時間的に変化しない実体(物理的/
抽象的)
変化するときは「こと」が必要になる
(C) 2011 Microsoft Corporation
9
Hotspot :
特定人気商品 (株価銘柄、チケット)
RDB
マスター データ
No SQL
参照のみ
トランザクション データ集計
計画系、在庫、サマリ
データ
Hadoop
ウェアハウス
AP1
AP2
AP3
AP4
IMDB
CEP
トランザクション
ETL
データ CQRS
AP :
rich client、
Web page、
business logic、
service provider、
Azure Web role など
RDB
No SQL
Hotspot :
トランザクション 識別番号、合算
(在庫、bid)
データ
(C) 2011 Microsoft Corporation
10
更新系
(OLTP)
商品が売れた
画面 Enqueue/Dequeue
(UoW)
UoW
Command
参照系
(分析)
売上が計上された
画面 Enqueue/Dequeue
(UoW)
Enqueue/Dequeue
UoW
Query
Web role
Worker role または Web role
(C) 2011 Microsoft Corporation
11
出典: Column Stores vs. Row Stores: How Different Are They Really?
(C) 2011 Microsoft Corporation
12
Time Dim
Product
Dim
Date Dim ID
Calendar Year
Calendar Qtr
Calendar Mo
Calendar Day
Prod
Prod
Prod
Prod
Dim ID
Category
Sub Cat
Desc
SQL
Sales Facts
Date Dim ID
Store Dim ID
Prod Dim ID
Mktg Camp Id
Qty Sold
Dollars Sold
Store Dim
Store
Store
Store
Store
Dim ID
Name
Mgr
Size
SQL
SQL
Mktg
Campaign Dim
SQL
Mktg Camp ID
Camp Name
Camp Mgr
Camp Start
Camp End
(C) 2011 Microsoft Corporation
13
Time Dim
Product
Dim
Date Dim ID
Calendar Year
Calendar Qtr
Calendar Mo
Calendar Day
Prod
Prod
Prod
Prod
Dim ID
Category
Sub Cat
Desc
Larger Fact Table is
Hash Distributed
Across All Compute
Nodes
SQL
Sales Facts
Date Dim ID
Store Dim ID
Prod Dim ID
Mktg Camp Id
Qty Sold
Dollars Sold
Store Dim
Store
Store
Store
Store
Dim ID
Name
Mgr
Size
SQL
SQL
Mktg
Campaign Dim
SQL
Mktg Camp ID
Camp Name
Camp Mgr
Camp Start
Camp End
(C) 2011 Microsoft Corporation
14
Time Dim
Product
Dim
Date Dim ID
Calendar Year
Calendar Qtr
Calendar Mo
Calendar Day
Prod
Prod
Prod
Prod
Dim ID
Category
Sub Cat
Desc
Smaller Dimension
Tables are
Replicated on Every
Compute Node
SQL
Sales Facts
Date Dim ID
Store Dim ID
Prod Dim ID
Mktg Camp Id
Qty Sold
Dollars Sold
Store Dim
Store
Store
Store
Store
Dim ID
Name
Mgr
Size
SQL
SQL
Mktg
Campaign Dim
Mktg Camp ID
Camp Name
Camp Mgr
Camp Start
Camp End
SQL
Result: Fact Dimension Inner Joins
can be performed
locally
(C) 2011 Microsoft Corporation
15
(C) 2011 Microsoft Corporation
16
Master
Worker
Partition0
Partition1
Split 0
Split 1
Split 2
Worker
Input File
and its Split
Worker
Map
Phase
Output
file0
Worker
Output
file1
Partition0
Partition1
Split 3
Split 4
Worker
Partition0
Partition1
Intermediate File
on Local Disk
(C) 2011 Microsoft Corporation
Reduce
Phase
Final
Output
17
(C) 2011 Microsoft Corporation
18
データ
ストア
semi-structured data
unstructured data
semi-structured data
collect, store
Create context
(classification, text mining)
Parse, aggregate
データ
ウェアハウス
structured data
Analyze, report
(C) 2011 Microsoft Corporation
Analyze, indexing
データ
ウェアハウス
Analyze
データ
ウェアハウス
Analyze, report
Active archival
Long running queries
19
MapReduce の振る舞いを制御する関数
開発すべき関数
定義
Input reader
stream -> list(input)
Map function
(input, param) -> list(key, value)
Combiner function
(optional)
(key, list(value)) -> list(value2)
Partition function
key -> int
Compare function
(key, key) -> int
Reduce function
(key, list(value2)) -> list(result)
Output writer
list(result) -> stream
(C) 2011 Microsoft Corporation
20
(C) 2011 Microsoft Corporation
21
page_view
pageid
userid
time
1
111
9:08:01
2
111
9:08:13
1
222
9:08:14
age
key
value
pv_users
111 <1,1>
111
<1,1>
Pageid
age
111 <1,2>
111
<1,2>
1
25
111
<2,25>
2
25
pageid
age
1
32
222 <1,1>
Map
user
userid
value
key
gender
111
25
female
222
32
male
key
value
111
<2,25>
222
<2,32>
Shuffle
Reduce
Sort
key
value
222
<1,1>
222
<2,32>
(C) 2011 Microsoft Corporation
22
pv_users
pageid
age
1
25
1
25
pageid
age
2
32
1
25
key
value
key
value
<1,25>
2
<1,25>
2
<1,25>
1
Shuffle
Sort
Reduce
Map
key
value
<1,25>
1
<2,32>
1
key
value
<2,32>
1
(C) 2011 Microsoft Corporation
pageid
age
count
1
25
3
pageid
age
count
2
32
1
23
Task A
Table X
Common Join Task
Mapper
Mapper
…Mapper
…
Mapper
…Mapper
Mapper
Table Y
Shuffle
Reducer
(C) 2011 Microsoft Corporation
24
Task A
Small
Table
Data
MapJoin
Task … Mapper
…
…
Mapper
…
…
Mapper
…
Record
Record
Record
Big
Table
Data
Record
Record
Task C
…
…
(C) 2011 Microsoft Corporation
25
(C) 2011 Microsoft Corporation
26
Join アルゴリズム
Nested Loops
Sort Merge
Semi Join
Hash Semi Join
手順
1.サイト1に関係 R(AB) があり、サイト2に関係 S(CD) が存
在する場合 外側のループRから1行取り出し
2.サイト2に送信
3.サイト2で S との結合処理を行う
4.次に R の行を1行進めて S との結合処理を行う
5.以下、それを繰り返す
1.ソート結果をどちらかのサイトに送信
2.マージ処理の中で結合を行う
1.分散データベースの通信量を減らすために用いられる方法
関係 R(AB) と S(BC) が別々のサイトにある場合 R と S の結合
の対象となる列をどちらかの相手方に送信
2.相手方では結合処理を行う
3.相手方はマッチした行を、問い合わせの抽出に必要な列ととも
に返送
4.返送を受けた側で最終的な結合処理を行い結果を取り出す
上記セミジョイン法において、列を送る代わりに、値をハッシュ
関数で変換したハッシュ値を送り相手方も結合対象列の値をハッ
シュ化し、ハッシュ値同士でマッチングをとる
(C) 2011 Microsoft Corporation
27
Outputs
Processing
vertices
Channels
(file, pipe,
shared
memory)
Inputs
(C) 2011 Microsoft Corporation
28
Application
SQL
Sawzall, Java
Sawzall,FlumeJava
Language
Execution Parallel
Databases
Storage
≈SQL
Pig, Hive
MapReduce
Hadoop
GFS
BigTable
HDFS
S3
(C) 2011 Microsoft Corporation
LINQ, SQL
DryadLINQ
Scope
Dryad
Cosmos
Azure
SQL Server
29
Read
1.
Check well-formedness of request.
2.
Check authorization in Chubby file.
3.
Merge memtable and SSTables to find data.
4.
Return data.
(C) 2011 Microsoft Corporation
30
MapReduce を
スケジュール管理
と通信に利用
MapReduce の拡張法
(1)プロトコル(ス
ケジュール、同期点)
(2)ストレージ
(3)プログラミング
モデル
出典: HadoopDB: An Architectural Hybrid of MapReduce and
DBMS Technologies for Analytical Workloads
(C) 2011 Microsoft Corporation
31
BSP に近づくアーキテクチャースタイル
(1)ローカルデータ
を使った並列、パター
ンマッチングなどの実
行(関数型)
(2)一貫性、状態遷
移(オブジェクト指
向)
出典: TransMR: Data-Centric Programming Beyond Data Parallelism
(C) 2011 Microsoft Corporation
32
Windows HPC Application
Client
Logic
Job Scheduling
Cluster
Management
Logic
Logic
Windows HPC
Server
Head Node
Windows 7
Windows HPC
Server
Windows Azure
Compute Nodes
(C) 2011 Microsoft Corporation
33
(C) 2011 Microsoft Corporation
34
ご清聴ありがとうございました
ご清聴ありがとうございました
D5-401