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
© Copyright 2024 ExpyDoc