マイクロソフトが考える ビッグデータ活用とソリューション Microsoft® SQL Server®による データ可視化・分析の高速化のために必要なこと 30th Nov. 2012 14:00-15:20 日本マイクロソフト株式会社 アプリケーションプラットフォーム製品部 エグゼクティブプロダクトマネージャー 北川 剛 Agenda 最近データベースシステムにおいて、IO を高速化させるフラッシュメモリを利用したス トレージが多数利用可能となってきました。 また、最近話題にのぼる「ビッグデータ」を活用するためには、データベースに対して 高速に大量のデータを入出力する必要があります。 では、フラッシュメモリを利用したストレージを活用することによって、従来慣れ親し んだ RDBMS を利用してビックデータの活用を図ることはできないのでしょうか。 • • • • • • • • ビッグデータ市場の将来シナリオ ビッグデータで何が変えられるのか マイクロソフトのビッグ データ ソリューション その時データベースに何が起こるか SQL Server のパフォーマンスを決める要素 広義のパフォーマンス チューニング 禁断のチューニングを可能にしたストレージ なぜ禁断のチューニングをすすめるのか ビッグデータってどんなデータ? • • • • • • • ウェブサイトのログ センサーデバイスから送信されるデータ ウェブやソーシャルのコンテンツ POS レジから送信されるデータ 携帯電話の位置情報 会社の CRM に蓄積されているデータ 商品の売り上げデータ ビッグデータで何が変えられるのか • ビッグデータの定義 「3 つの V」の特性を持つデータ o Volume : o Velocity : o Variety : 大量のデータ データ発生の頻度/スピードの高さ さまざまな形式/種類 では、なぜ企業がビッグデータに注目しているのでしょうか。 それは、これらを意思決定のための「情報」として活用したいからです。 現在、企業を取り巻くビジネス環境は非常に早いスピードで変 化し、企業間の競争も熾烈を極めています。そうした中で重要 になっているのは、いかにして賢く競争するか、他社より先ん ずるかということです。 膨大なデータを迅速かつリアルタイムに処理し、そこから叡智 を抽出して企業の戦略や方向性、お客様へのサービス レベル 向上などに向けて活用していかなければなりません。経験や勘 も引き続き大切ですが、ビッグ データに基づくタイムリーな 意思決定は、企業が競争力を獲得するうえで重要だと認識して います。 ビッグデータ市場の将来シナリオ 2012 | 2013 1,900 億円程度 売上向上、スピード経営を狙った投資が活発化 マイニング ノウハウがある企業にとって、 ビッグデータ技術は生産性向上に直結 市場規模: 実質的には BI 市場がほとんどを占める 2015 当日会場で 4,200 億円 ビッグデータを活用した、 業界常識を打ち破るようなサービスが登場する 6,300 2017 年度 ビッグデータ活用で、 社会コストの最適化が生まれる 億円 ビッグデータで何が変えられるのか • ビッグデータの活用 意味を持つ「情報」にしてこそ、ビッグデータの活用です データは 「特定の目的」 に応じて加工することで意味を持つ 「情報」 になります。 例えば、年次、四半期、月次での経理処理データは、ある特定の日のお客様の動向予 測には役立ちません。よりタイムリーな意思決定が求められる中においては、年次/月 次だけでなく日次のデータ、統計データよりも流動的なデータ、消費者ニーズに対応 した多様なデータ等が意味を持ちます。 年次/月次だけでなく日次のデータ 統計データよりも流動的なデータ 消費者ニーズに対応した多様なデータ 連動 こうしたデータを活用するためには、高度な情報処理プロセスが必要になります。そ のため、ガートナーではビッグデータを 『高度な洞察や意思決定を行うために、”コスト効果が高く革新的な情報処理プロセス を必要とする” 大量・高速・多様な情報資産』 と定義しています。 マイクロソフトのビッグ データ ソリューション BI フロント ツール 分析・レポート エンジン Analysis Services Reporting Services PowerView Data Warehouse Data Mart Hadoop によるデータ変換 Hadoop on Hadoop on Hadoop connector for SQL Server / Parallel Data Warehouse 当日会場で CEP および ETL によるデータ変換 Stream Insight 外部ビッグデータ bot Crawlers Twitter Integration Services With Flash Memory Technology 内部のビッグデータ Sensor Device ERP CRM LOB 大量データを高速に処理するための基盤技術 SQL Server 2012 では標準コンポーネントを利用して ”大量・高速・多様” なデータを、分析のため のデータベースにとりこむ事ができます。 ストリーム データ (継続的に発生する膨大のデータ) をリアルタイムに処理 StreamInsight SQL Server 2012 データの信頼性/整合性を強化 (データ クレンジング) SSIS With DQS ※SSIS With DQS : SQL Server Integration Services With Data Quality Services 非構造化データには Hadoop の利用も ソーシャル メディアなど発生と同時にいかに早くとらえることができるかが重要である 非構造化データの加工には、強力な分散処理が可能な ”Hadoop”を利用することもできます。 マイクロソフトでは Hortonworks と協力して Hadoop ソリューションの開発を行っています。 その実装の 1 つである “Hadoop on Windows Azure/Windows Server” では Hive ODBC Driver や Hive Add in for Excel などを利用し、分散処理したデータを Excel で参照したり、SSIS のソー スとして利用することができます。 また Hadoop Connectors for SQL Server/Parallel Data Warehouse もすでに提供しており Hadoop 上で処理したデートを SQL Sever に取り込む事もできます Excel PowerPivot 分散処理した データの活用 分散処理 データアクセス Hive ODBC Driver Analysis Services Reporting Services Microsoft BI PowerPivot – インメモリでの高速な分析を実現 • ビックデータも高速処理するインメモリ分析 (インメモリ Tabular 型 OLAP エンジン) • 100 万行を超える膨大なデータ セットをメモリにロード、圧縮し、インメモリで高速にデータを多次 元分析できます • 内部では多次元データベース (キューブ) を自動生成できます 容易なデータベースアクセス & レポート作成 直観的かつ分かりやすい操作でデータベースから データを読み込み、分析レポート (PowerPivot ワークブック) を作成 クライアント上のメモリ レポート 生成 多様なデータ ソースとの接続に対応 Power View – ダイナミックなデータの見せる化 • Silverlight のテクノロジーにより、ブラウザー上で動的にデータ加工ができます • プレゼンテーションの際には、PowerPoint 上でも 動的なレポートを作成できます • グラフ同士の連動が可能。直感的な絞込み操作に効果的 (グラフ自身がスライサーとなって、グラフ同士が選択された値によって動的に変化する) • 再生可能なバブル チャートが作成できる (時間によって変化する値をアニメーションで確認可能。軌跡を表示できる) グラフ同士を連動させた 絞込み PowerPoint へ出力し、 インタラクティブな レポート操作が可能 Hadoop 上のデータも使い慣れた Excel で • Hadoop 等の Big Data も Excel 内で直接利用しながら、パワフルなデータ分析が可能 • ピボットテーブル、スライサー、使い慣れた Excel 2010 の機能を使用して、対話的に探索と分析を 行い、レポートを作成できる • データ マイニング アドイン によって、Excel 上で SQL Server の予測分析機能を活用できます。 • マスター データ サービス アドインによって Excel 上 MDS データを管理できます。 Reporting Services - あらゆるデータからリッチなレポートを作成 • 多彩なレポート用パーツを標準搭載誰もがリッチなレポートが簡単に作れます。 • SharePoint テクノロジーにレポート環境を統合できます。 • 汎用性の高い XML や CSV、表示性に優れた HTML や PDF、TIFF 画像による出力にも対応 • 複雑なレポート作成を支援する開発者向けツール (BI Development Studio) を提供 その時データベースに何が起こるか • ビッグデータを活用するためには、格納されたデータを様々な知見 を持つユーザーがアドホックに操作することにつながります データベースから定型帳票で可 視化されたデータを利用する。 データベースから自由にデータ を抽出し、試行錯誤して有意な 情報を見つけ出す。 Demonstration アドホックなデータアクセスが発生する環境の例 • Data Mining Add-in for Excel を利用したデータ分析 • PowerPivot for Excel を利用したデータ分析 SQL Server のパフォーマンスを決める要素 • ソフトウェア側の要素 • テーブル設計(適切なインデックスを作成しているか) • 実行計画(インデックスの有無, 統計情報) • データファイルの数, 配置 • サーバー側の要素 • プロセッサ • メモリ • ストレージ SQL 文のパース処理などに影響します。もちろん、T-SQL の実行速度などにも影響します。現行プロセッサで は、コアあたり約260MB/sec のデータ フローが可能です。もちろん、クロックが早い方が好ましく、コア数やプロ セッサ数が増えることにより並列処理の能力が向上します。データベースシステムはファイル処理と異なり、複 数のプロセッサやコアを利用したパラレル処理を得意としています。 サーバーに搭載されたメモリが多いほど、SQL Server のバッファ キャッシュに大きなメモリを割り当てることができ ますので、キャッシュ ヒット率の向上が期待できます。 サーバーで最も処理が遅いのがストレージ。 データがキャッシュに乗っている場合と、乗っていない場合とで速度差が確認できることから明らかかと思います。 それくらいストレージに対するディスクアクセスはデータベースシステムの足を引っ張ります。 通常の SAS HDD では、15krpm で 150~180IOPs 程度、シーケンシャルであれば 90MB/sec~125MB/sec と低速です。このディスクアクセスのコストを低減させるために、 • 適切な索引を利用し、大量のディスクアクセスにつながるフル スキャンを回避する • 適切な索引が実行計画で選択されるよう統計情報をメンテナンスする • HDD にとって高速に処理できるシーケンシャルリードが行われるような格納順序とする • ディスクアクセスが削減できるよう(1回の IO でより多くのレコードを読み取れるよう)データの圧縮を行う というソフトウェア側の対処を行ったり、キャッシュ ヒット率を高くするために、メモリを増やしたり、Read/Write 速度を向上させるために複数の HDD をストライピングしたり、高速な HDD (15Krpm SAS HDD など) を利用 したりします。このディスクアクセスの特性を把握するためには、ワークロードを見極める必要があり、データベー スおよびストレージに対しての高い知見を必要とします。 ディスクアクセスを高速に行うことができれば、データベースも高速に稼働します。 広義でのパフォーマンス チューニング • アドホック クエリが頻発する中で、ボトルネックの解消による チューニングは工数がかかります。 • しかし、先に示したように、SQL Server のパフォーマンスに大きな 影響を与えているのは「ストレージの速度」です。 性能問題の発生を未然に防止する、という 「広義のパフォーマンス チューニング」 を、 「ストレージ アーキテクチャを根本的に変える」 という 「禁断のチューニング手法」 で行うことができるのではないでしょうか。 禁断のチューニングを可能にしたストレージ • 最近は高速なフラッシュ メモリを利用した高機能なストレージが利 用できるようになってきました フラッシュ メモリ ストレージは、従来の SAS HDD と比較して、100 倍から300倍高速(低レイテンシ)です。 このようなストレージを利用することで、SQL Server のパフォーマン スに大きな影響を与える IO を高速化させることができます。 Flash Storage vs. HDD 当日会場で 1TB Random Read (8K) – 約 20 倍高速に 1TB Random Write (8K) – 約 10 倍高速に HDD SSD SSD : HP VMA3205 HDD : CX4-240 (SAS 15K 450GB HDD x10 RAID10) SQLIO を利用した自社社内検証結果より なぜ禁断のチューニングを勧めるのか • SQL Server にも IO 削減や IO 競合を防止するための機能があります クラスタ化インデックス インデックス スキャンによる IO 削減 メリーゴーランド スキャン IO 競合を防止するためのスキャン アルゴリズム (SQL Server 2005 以降) パーティション テーブル テーブルを論理分割することで IO 競合を防止 (SQL Server 2005 以降) ページ圧縮 データを圧縮することで IO 削減 (SQL Server 2008 以降) カラム ストア インデックス カラム ストアの概念を導入することで IO 削減 (SQL Server 2012 以降) ただし、ビッグデータの処理ではリアルタイム性も求められます。そ のため、データロード(書き込み)と分析処理(読み取り)という 2 つのワークロードをサポートする必要があります。 複数ワークロードをサポートするためには、ソフトウェア側でボトル ネックの解消を図るより、負荷の高い IO を削減する方が効果的です。 クラスタ化インデックス インデックスの B ツリー構造の末端のページ中にデータまで全部入れたものであり、 インデックスキーに設定された列の値によってソートされます。 SELECT* FROM 顧客 WHERE 姓 = “tanaka” ページ:100 takagi 鳥取 tanaka 静岡 tanaka 埼玉 nakano 岡山 ・・・・ ・・・・ ページ:121 tanaka niwa ・・・・ ・・・・ 01:100 01:110 ・・・・ ・・・・ ページ:120 tanaka ・・・・ nakajima ・・・・ 01:121 ・・・・ 01:127 ・・・・ ページ:110 ・・・・ ・・・・ niwa 新潟 ・・・・ ・・・・ ・・・・ ・・・・ ページ:127 ・・・・ nakajima ・・・・ ・・・・ ・・・・ 01:150 ・・・・ ・・・・ ソートされて格納されるため、 ツリーを辿って効率のよい データ・アクセスが行える 20 メリーゴーランド スキャン スキャンが実行された時、すでに別のスキャンが実行されていることを検出すると、 スキャン作業は結合され、スキャンが開始 (結合) された場所に到達するまで続けられます。 ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 1 ・・・ ・・・ ・・・ ・・・ ・・・ Scan 1 Stats ・・・ ・・・ ・・・ ・・・ ・・・ 2 ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 300 ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 301 Scan 2 Stats ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 700 ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 2,000 Scan 3 Stats Scan 2 と Scan 3 は先頭に戻ってスキャン 21 パーティション テーブル 大規模なテーブルを論理的なパーティションに分割するパーティション機能により、クエリ やインデックス、バックアップの対象範囲を最小化できるため、パフォーマンスと管理性の 向上を同時に実現します。 パーティションを またがるデータに対して、 高速なパラレル クエリを 実行できます ディスク 1 パーティション単位で バックアップ/復元、 インデックスの構築可能 クエリ ディスク 2 SQL Server 2012 バックアップ 復元 2012年7月受注データ バックアップ ディスク ディスク 3 故障発生 ディスク障害などが発生しても、正 常なディスクに対しては アクセス可能 22 ページ圧縮 大規模なテーブルを論理的なパーティションに分割するパーティション機能により、クエリやインデック ス、バックアップの対象範囲を最小化できるため、パフォーマンスと管理性の向上を同時に実現します。 ページ圧縮は、リーフ レベルのテーブルとインデックスに対して 3 つの操作が実行されます。 行の圧縮 プレフィックスの圧縮 ディクショナリの圧縮 日付 購入番号 区分 価格 20070601 1-BB-2A01 99550 8883000 20070602 1-BB-1288 88500 110200550 20070602 1-BB-25F1 99500 110200500 20070602 1-BB-2500 31800 110000 20070602 1-BB-25F8 99200 28550 20070603 3-BB-31AB 99555 11200 データ圧縮 複数レベルのデータ圧縮を提供し、 ストレージの節約とパフォーマンスの向上を実現 データ パーティションで分割したパーティション 単位でも、圧縮レベルを変えられるため、更新頻度 などの特性に合わせた利用が可能 ページ圧縮 行 (ROW) 圧縮 固定長カラムを可変長として格 納日付 購入番号 区分 価格 20070601 1-BB-2A01 99550 8883000 20070602 1-BB-1288 88500 110200550 20070602 1-BB-25F1 99500 110200500 20070602 1-BB-2500 31800 110000 20070602 1-BB-25F8 99200 28550 20070603 3-BB-31AB 99555 11200 列ごとに重複している情報を 日付 購入番号 区分 価格 圧縮 99550 110200550 6 A01 Null 0 8883000 Null 5 1288 0 88500 Null Null Null 7 00 0 31800 3 000 Null Null 8 8 2 200 0 28550 Null 0 3-BB-31AB 4 5 2 200 20070602 7 1 7 3 1-BB-25F1 さらに詳細レベルで 重複している情報を圧縮 可能 日付 購入番号 区分 3 00 Null 7 00 20070602 0 1-BB-25F1 700 1 価格 99550 2200 110200550 6 A01 Null 0 8883000 Null 5 1288 0 88500 Null Null 7 1 7 3 3 00 Null 0 0 0 31800 3 000 8 8 1 0 28550 0 3-BB-31AB 4 5 1 23 カラム ストア インデックス SELECT 商品名,梱包単位 FROM 商品テーブル WHERE 単価 = 190 ■レコードの場合 (従来からの方法) 商品コード 001 002 003 004 005 006 商品名 100% オレンジ 100% グレープ 100% アップル 珈琲マイルド 珈琲ビター 珈琲ミルク 単価 200 200 200 190 190 190 容量 200ml 200ml 200ml 180ml 180ml 180ml 梱包単位 200g×12瓶 200g×12瓶 200g×12瓶 195g×10缶 195g×10缶 195g×10缶 発売日 201005 201005 201203 201205 201204 201202 ※商品コードにクラスタ化インデックス リーフページを読み取り、[商品名] [梱包単位]を返す 001-100 101-200 001-010 011-020 商品 商品 単 容 梱包 発売 コード 名 価 量 単位 日 101-110 111-120 商品 商品 単 容 梱包 発売 コード 名 価 量 単位 日 商品 商品 単 容 梱包 発売 コード 名 価 量 単位 日 商品 商品 単 容 梱包 発売 コード 名 価 量 単位 日 特定のカラムだけを参照したい 場合も行全体を読み込む I/O の単位はページ 24 カラム ストア インデックス SELECT 商品名,梱包単位 FROM 商品テーブル WHERE 単価 = 190 ■カラム ストア の場合 特定の Column (列) を store (格納) したインデックを作成します。 インデックスに必要な列だけを格納してインデックスを作成することにより、不要な列を読み込まない ためパフォーマンスが向上します。 商品コード 001 002 003 004 005 006 商品名 100% オレンジ 100% グレープ 100% アップル 珈琲マイルド 珈琲ビター 珈琲ミルク 単価 200 200 200 190 190 190 容量 200ml 200ml 200ml 180ml 180ml 180ml 梱包単位 200g×12瓶 200g×12瓶 200g×12瓶 195g×10缶 195g×10缶 195g×10缶 発売日 201005 201005 201203 201205 201204 201202 ※商品コードにクラスタ化インデックス 列のチャンクから該当値のみを読み取る 商品名 梱包単位 100% オレンジ 200g×12瓶 100% グレープ 200g×12瓶 100% アップル 200g×12瓶 珈琲マイルド 195g×10缶 珈琲ビター 195g×10缶 珈琲ミルク 195g×10缶 インデックスに必要な列のみ格納 列の集合= カラム ストア インデックス I/O の単位は、セレクトされた列 さらに、 カラム ストア インデックスは、圧縮して 作成されるため、読み出しデータ量が減り パフォーマンスの向上にもつながります。 25 Demonstration アドホックなデータアクセスが発生する環境の例 • PowerView を利用したデータ分析 まとめ • ビッグデータの活用のためには 「禁断のパフォーマンスチューニング手法」 である、高速なフラッシュ メモリ ストレージをぜひ! 当日会場で © 2012 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
© Copyright 2024 ExpyDoc