マイクロソフトが考える ビッグデータ活用とソリューション

マイクロソフトが考える
ビッグデータ活用とソリューション
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.