RelationalData10x increaseevery 5 yearsVOLUME4.3 connecteddevices per adultVELOCITYVARIETY85% fromnew data typesBig Data
80%growthof unstructureddata ispredicted overthe next fiveyears.1.8 zettabytesof digital datawere in useworldwide in2011, ...
機能 RDB Big Dataデータタイプ 構造化データ 非構造化データスキーマ 静的- 書き込み時に必要 動的 – 読み込み時Read write パターン read/writeの繰り返し Writeは一回、Readの繰り返しストレージボリュ...
(Still) Rapidly EvolvingMapReduce (Job Scheduling/Execution System)HDFS(Hadoop Distributed File System)HBase (Column DB)Pi...
• ビッグデータの分析・レポーティングのための統一ストレージ• 内部アプリケーションのために複数のデータセットを格納• クラウドにより信頼性、弾力性、低コストを実現
• ストリームデータまたは非構造化データを既存のデータベースにロード• ロードする前にクレンジング、転送、バリデーションを実行• 定期的にデータの可視化またはレポートの作成
• 新しいタイプのデータを検証• 少人数によるインタラクティブな分析• レポートの作成や外部または内部データの可視化
• 外部データソースを内部の企業データウェアハウスと統合• スケジュールされた間隔もしくはオンデマンドでデータ更新• 外部データによりデータウェアハウスを強化
• プラットフォーム: Traditional DWH/BI or HDInsight• ランタイム : HDInsight in the Cloud or on-premises• ストレージ: ASV or HDFS• データ収集 : Fi...
• アップローダー• アップローダーはライブラリーとして実装し、スクリプトやSSISから呼び出し可能とする• コマンドラインユーティリティを作成してインタラクティブなアップロードもサポートする• ASVへのアップロード• データを小さいサイズへ...
ボトルネック チューニングテクニック大量の入力データによるストレージIO データソースの圧縮Mapper出力ステージでスピルアウトするレコードによるストレージ I/OMapperからスピルアウトするレコードを減らす大量のMapper出力によるネ...
http://WAG.Codeplex.comhttp://www.windowsAzure.comhttp://hadoop.apache.orghttp://pnp.azurewebsites.net/en-us/
// Map function - runs on all nodesvar map = function (key, value, context) {// split the data into an array of wordsvar h...
-- load tweetsTweets = LOAD asv://uploads/data AS (date, id, author, tweet);-- split tweet into wordsTweetWords = FOREACH ...
CREATE EXTERNAL TABLE dailytwittertags(tweetdate STRING,tag STRING,totalcount INT,daycount INT)ROW FORMAT DELIMITEDFIELDS ...
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
HDInsight によるビッグ データ ソリューションの開発
Upcoming SlideShare
Loading in …5
×

HDInsight によるビッグ データ ソリューションの開発

1,311 views

Published on

Windows Azure HDInsight を利用したビッグ データ プロジェクトにおける典型的なシナリオ、および開発プロセスの各ステップについて解説します。ツールの使い分け方針やユースケース、関連するテクノロジを含むより広範囲なスコープで実践的なガイドラインを紹介します。

Published in: Technology

HDInsight によるビッグ データ ソリューションの開発

  1. 1. RelationalData10x increaseevery 5 yearsVOLUME4.3 connecteddevices per adultVELOCITYVARIETY85% fromnew data typesBig Data
  2. 2. 80%growthof unstructureddata ispredicted overthe next fiveyears.1.8 zettabytesof digital datawere in useworldwide in2011, up 30%from 2010.70% of U.S.smartphoneowners regularlyshop online viatheir devices.44% ofusers (350Mpeople) accessFacebook viamobile devices.50% ofmillennials usemobile devicesto researchproducts.60% of U.S.mobile data willbe audio andvideo streamingby 2014.Mobility2/3 of theworlds mobiledata traffic will bevideo by 2016.33%of BI willbe consumedvia handhelddevicesby 2013.Gaming consolesare now used anaverage of1.5 hrs/wkto connect tothe Internet.1 in 4Facebookusers addtheir locationto posts(2B/month).500MTweets arehosted onTwitter each day38% ofpeoplerecommend abrand they “like”or followon a socialnetwork.100MFacebook“likes” per day.Brands getBigDataSocialMobility CloudTackling growth in the volume, velocity and variety of data
  3. 3. 機能 RDB Big Dataデータタイプ 構造化データ 非構造化データスキーマ 静的- 書き込み時に必要 動的 – 読み込み時Read write パターン read/writeの繰り返し Writeは一回、Readの繰り返しストレージボリューム Gigabytes to terabytes Terabytes, petabytes, andbeyondスケーラビリティ スケールアップ スケールアウトエコノミクス 高価なハードウェアとソフトウェアコモディティハードウェアとオープンソース
  4. 4. (Still) Rapidly EvolvingMapReduce (Job Scheduling/Execution System)HDFS(Hadoop Distributed File System)HBase (Column DB)Pig (DataFlow)Hive(Warehouseand DataAccess)Traditional BI ToolsZookeeper(Coordination)Hadoop = MapReduce + HDFSSqoopOozie(Workflow)Chukwa FlumeApacheMahoutCassandraAvro(Serialization)
  5. 5. • ビッグデータの分析・レポーティングのための統一ストレージ• 内部アプリケーションのために複数のデータセットを格納• クラウドにより信頼性、弾力性、低コストを実現
  6. 6. • ストリームデータまたは非構造化データを既存のデータベースにロード• ロードする前にクレンジング、転送、バリデーションを実行• 定期的にデータの可視化またはレポートの作成
  7. 7. • 新しいタイプのデータを検証• 少人数によるインタラクティブな分析• レポートの作成や外部または内部データの可視化
  8. 8. • 外部データソースを内部の企業データウェアハウスと統合• スケジュールされた間隔もしくはオンデマンドでデータ更新• 外部データによりデータウェアハウスを強化
  9. 9. • プラットフォーム: Traditional DWH/BI or HDInsight• ランタイム : HDInsight in the Cloud or on-premises• ストレージ: ASV or HDFS• データ収集 : File upload, StreamInsight, SSIS, Custom App• クエリー: MR, Pig, Hive, UDF or Hadoop Streaming• データ可視化: EXCEL , Sharepoint, LINQ to Hive or Custom app• レポーティング : SSRS, SQL Azure Reporting, Crystal Report etc.• DWH 統合: Sqoop, SSIS, Hive ODBC, PolyBase• 他の要素 : ZooKeeper, Oozie, HCatalog, Mahout etc.
  10. 10. • アップローダー• アップローダーはライブラリーとして実装し、スクリプトやSSISから呼び出し可能とする• コマンドラインユーティリティを作成してインタラクティブなアップロードもサポートする• ASVへのアップロード• データを小さいサイズへと分割して同時アップロード• AzureのBlobサイズ
  11. 11. ボトルネック チューニングテクニック大量の入力データによるストレージIO データソースの圧縮Mapper出力ステージでスピルアウトするレコードによるストレージ I/OMapperからスピルアウトするレコードを減らす大量のMapper出力によるネットワーク転送 Mapperの出力を圧縮Combinerの実装大量のReducer出力によるストレージIOまたはネットワーク転送JOBの出力を圧縮レプリケーション設定の変更Hive – クエリー出力の圧縮間違ったコンフィグレーションによるタスクの不足 Map, ReduceタスクまたはJob slotsの数を増やすタスクへのメモリアロケーション不足 メモリ設定を変更データ偏在化による特定Reducerの負荷増大 偏在化の除去
  12. 12. http://WAG.Codeplex.comhttp://www.windowsAzure.comhttp://hadoop.apache.orghttp://pnp.azurewebsites.net/en-us/
  13. 13. // Map function - runs on all nodesvar map = function (key, value, context) {// split the data into an array of wordsvar hashtags = value.split(/[^0-9a-zA-Z#]/);//Loop through the array, creating a value of 1 for each word beginning "#"for (var i = 0; i < hashtags.length; i++) {if (hashtags[i].substring(0, 1) == "#") {context.write(hashtags[i].toLowerCase(), 1);}}};//Reduce function - runs on reducer node(s)var reduce = function (key, values, context) {var sum = 0;// Sum the counts of each tag found in the map functionwhile (values.hasNext()) {sum += parseInt(values.next());}context.write(key, sum);};
  14. 14. -- load tweetsTweets = LOAD asv://uploads/data AS (date, id, author, tweet);-- split tweet into wordsTweetWords = FOREACH Tweets GENERATE date, FLATTEN(TOKENIZE(tweet)) AS tag, id;--filter words to find hashtagsTags = FILTER TweetWords BY tag matches #.*;-- clean tags by removing trailing periodsCleanTags = FOREACH Tags GENERATE date, LOWER(REPLACE(tag, ¥¥., )) as tag, id;-- group tweets by date and tagGroupedTweets = GROUP CleanTags BY (date, tag);-- count tag mentions per groupCountedTagMentions = FOREACH GroupedTweets GENERATE group, COUNT(CleanTags.id) asmentions;-- flatten the group to generate columnsTagMentions = FOREACH CountedTagMentions GENERATE FLATTEN(group) as (date, tag),mentions;-- load the top tags found by map/reduce previouslyTopTags = LOAD asv://results/countedtags/part-r-00000 AS (toptag, totalcount:long);-- Join tweets and top tags based on matching tagTagMentionsAndTopTags = JOIN TagMentions BY tag, TopTags BY toptag;-- get the date, tag, totalcount, and mentions columnsTagMentionsAndTotals = FOREACH TagMentionsAndTopTags GENERATE date, tag, totalcount,mentions;-- sort by date and mentionsSortedTagMentionsAndTotals = ORDER TagMentionsAndTotals BY date, mentions;-- store the results as a fileSTORE SortedTagMentionsAndTotals INTO asv://results/dailytagcounts;
  15. 15. CREATE EXTERNAL TABLE dailytwittertags(tweetdate STRING,tag STRING,totalcount INT,daycount INT)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ¥tSTORED AS TEXTFILE LOCATION asv://tables/dailytagcount

×