Upload
insight-technology-inc
View
904
Download
8
Embed Size (px)
DESCRIPTION
「情報戦を制する者が、選挙戦を制する」──。2012年11月の米大統領選で、民主党・現職のオバマ大統領が共和党・ロムニー候補を激戦の末に破り、再選を果たしたのは記憶に新しい。今回の大統領選でオバマ陣営は、「すべての行動をデータで判断する」という大方針を掲げ、世論調査の結果や有権者の声、ソーシャルメディアなどの膨大なデータを素早く分析して、的確な意思決定を行った。ある地域での投票率は57.16%、ボランティアの記録や消費者、党支持者、有権者などの声、世論調査の結果、「Twitter」や「Facebook」といったソーシャルメディア(SNS)でやり取りされている意見など、すべてのデータを1カ所にまとめて分析した予測値はなんと57.68%と0.52%の差でしかなかった。この驚異的なビッグデータ解析をご紹介。
Citation preview
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Facebookが採用した世界最大級の分析基盤とは?相澤恵奏
日本ヒューレット・パッカード株式会社
HPソフトウェア事業統括 ビッグデータプラットフォーム部プリセールスマネージャー
2014年11月12日
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Verticaとは?
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.3
ビックデータプラットフォーム HAVEn
HAVEn
ソーシャルメディア IT/OT画像音声動画 トランザクションデータ
モバイル検索エンジン電子メール テキスト
膨大な分散データのカタログを作成
Hadoop/HDFS
すべての情報を処理し、インデックスを作成
AutonomyIDOL
大規模な分析をリアルタイムで実行
Vertica
マシンデータを収集、統合
Enterprise Security
HPソフトウェアとお客様のアプリケーションをサポート
nApps
ドキュメント
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.4
Vertica 概要• 分析用DBソフトウェアベンダー• 設立:2005年• 本社:米国 マサチューセッツ州• Michael Stonebrakerが産みの親
Postgres, C-Storeの開発者• 注目ベンチャーとして数々の賞を受賞• 2011/3/22 HPが買収完了を発表• 2012/12/1 HPに統合完了
INGRES POSTGRES C-store
RDBMS Object DBColumn-
oriented DB
Vertica
HP
1970 1980 2000 2010
技術継承Sybase
SQL ServerAster DataGreenplumNetezza
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.5
ビックデータ向け:第3世代 RDBMS
DWH
アプライアンス
DWHアプライアンス
IBM Netezza
Teradata
Oracle Exadata etc
OLTP向け
RDBMS
OLTP向けRDBMS
Oracle DB
MySQL
Postgres etc
カラム指向型データベースソフトウェア
超高速、低価格、簡単に使える、すぐ使える
■低価格
・コモディティーハードウェア
・ソフトウェア提供
■列指向
■超並列アーキテクチャ
遅い
高い
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.6
Verticaの特徴1. 高速性(Speed)
リアルタイムでの分析(クエリー、ロードともに高速)
2. 俊敏性(Agility)増え続けるデータに柔軟に対応必要なタイミングでサーバーを追加することで対応できるスケールアウトアーキテクチャ
3. コストパフォーマンスコモディティーハードウェアを使うことによる優れたコストパフォーマンス / DR環境、開発、テスト環境に追加ライセンスの掛からないライセンス体系
4. SQL & R言語、C++、JAVAによるUser定義関数SQLにて分析が可能、またUDF作成可能により多くのエンジニアがすぐに分析可能
5. Hadoop連携Verticaが提供するコネクターにより容易なHadoopとのデータ連携が可能
6. 操作性、チューニング簡易性
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.7
Vertica リアルタイム分析プラットプラットフォーム分析・検索処理に特化 したDBエンジンです。
Database
Database(OLTP)
Apps.
Files
レポート
OLAP
アプリ
ダッシュボード
データの抽出、変換、
ロード(ETL)
データソース
データ抽出
解析用DB
データ分析
既存の業務データ
・分析SQL
・UDxHDFSHcatalog
ODBCJDBC
jsonデータ(Flex zone)
半構造化データ
ODBCJDBC
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.8
HP Vertica Analytics Platformの特徴
自動パフォーマンス
チューニング
Database Designer
Columnar storage and execution
Continuous performance
ClusteringCompression
列指向RDBMS データ圧縮機能超並列
アーキテクチャーノードダウン時の継
続実行機能
HDFS Connector
Verticaから HDFSに配置されているファイルの読み込み、Hcatalogとの連携が可能
標準のBI, ETLツールと連携
Analytics
C++,R言語,Javaによる
User定義関数をサポート
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.9
Columnar storage and execution
AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE N
YSE NYSE NYSE 143.74 NYSE NYSE NYSE 8/10/11
AAPL NYASE NYAASE NYSE NYASE NGG YSE NYGGGSE
NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 8/10/11
BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE
NYSE NYSE 37.03 NYSE NYSE NYSE 8/10/11
BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE
NYSE NYSE 37.13 NYSE NYSE NYSE 8/10/11
AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 8/10/11AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 8/10/11BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.03 NYSE NYSE NYSE 8/10/11BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.13 NYSE NYSE NYSE 8/10/11
Reads all columns行指向 - 従来型SELECT AVG(price) FROM tickstore WHERE symbol = ‘AAPL” AND date = ‘8/10/11’
検索に最適なカラム(列)指向のRDBMS
検索な不要な列もすべて読み込む必要あり
8/10/11
8/10/11
8/10/11
8/10/11
143.74
143.75
37.03
37.13
AAPL
AAPL
BBY
BBY
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS
AAPLAAPL
BBYBBY
143.74
143.7537.0337.13
8/10/11 8/10/118/10/118/10/11
Reads 3 columnsSELECT AVG(price) FROM tickstore WHERE symbol = ‘AAPL” AND date = ‘8/10/11’
ディスクI/Oとメモリ量の劇的な削減
列指向 - Vertica
必要な列のみを読み込めばよい。
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.10
データの属性に応じた最適な圧縮アルゴリズムで大幅なデータ圧縮
データ検索時のI/O量が減り、より高速な処理を実現
物理ストレージの容量削減処理日 お客様番号 取引データ
6/10/2011
6/10/2011
6/10/2011
6/10/2011
6/10/2011
6/10/2011
6/10/2011
6/10/2011
6/10/2011
6/10/2011
6/10/2011
0000001
0000001
0000003
0000003
0000005
0000011
0000011
0000020
0000026
0000050
0000051
0000052
6/10/2011, 16
RLE
アルゴリズム
0000001
0
2
2
4
10
10
19
25
49
DeltaEncoding Raw Data Compressed Data
100.25
302.43
991.23
73.45
134.09
843.11
208.13
114.29
83.07
43.98
229.76
LZOアルゴリズム
ÞìÃp:±æ+©>
Hì&ì¥YÛ¡×¥
©éa½?50ÓJ
Compressionデータ圧縮機能 圧縮方法は、Verticaが自動で最適なものを決める。
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.11
node03専用データ領域
シェアードナッシング方式によりリニアに性能向上すべてのノードが同じ役割を実行可能マスターノードが無い、真のMPPアーキテクチャ
node01専用データ領域
node02専用データ領域
node01
Massively Parallel Processing (MPP)
SymmetricMulti-Processing (SMP)
MPP
SMP密結合
•HP Neoiew
性能
ノード数
性能
ノード数
従来型DBMS(データ共有型)
Verticanode02 node03
検索クエリ
3 4
10
3
Clustering超並列処理(MPP)アーキテクチャ
ノードを追加していくことにより、リニアな性能向上
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.12
#3 #4 #5 #6#1
node01
#2
最大2つのレプリカを保持可能
自動リプリケーションによる障害発生時サービス継続
node02 node03 node04 node05 node06
#3 #4 #5 #6#1 #2
#1 #2 #3 #4#5 #6
ノードダウン時の継続実行機能Continuous performance
システム全体でRAIDのような構成を実現
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.13
R Language Pack
標準インターフェース+R言語による解析
SQL, ODBC,JDBC
データの取り込み
ETL, レプリケーション 分析、レポーティング
既存ツールの活用によるTCO向上
SQL/ODBC/JDBCに準拠、ETL・BIツールと連携可能 R言語による解析
・高度な解析アルゴリズム
をプログラム化することが可能
・コードを柔軟に再利用す
ることが可能
高度な解析が可能
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.14
最高のパフォーマンスが出せる物理デザインをVerticaが自動で作成 自動で最適なデータ圧縮、列の並び替えを行い、検索を高速化 定型検索に最適なデータ配置を追加で作成することが可能 INDEXの作成は不要
自動チューニング Database Designer (DBD)
Dbatase Designer自動チューニングDB管理者
SQL1
SQL2
圧縮分散 ソート列の並び替え抽出チューニングを意識して設計する必要はなく、従来通りのテーブル設計、SQL作成にて管理が可能となります。
Webベース
対話形式のチューニングツール
全てのクエリー向け
comprehensiveモード
特定のクエリー向け
incremental モード
Database desinger により、データの分散、必要な列の抽出、列の並び替え、データのソーティング、最適な圧縮方法選択、を行います。
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.15
Projectionとは?
Projectionは物理スキーマとして定義(DBDにより自動でチューニング)
日付 顧客ID 店舗 エリア 売上高
date int varchar(10) varchar(10) Int
日付 顧客ID 店舗 エリア 売上高
0701 10001 新宿 東京 100
0701 10002 新宿 東京 1,000
0702 10003 名古屋 名古屋 1,0000
0703 10004 梅田 大阪 2,400
0703 10005 池袋 東京 1,600
0703 10006 新宿 東京 6,400
0705 10007 品川 東京 1,000
0706 10008 梅田 大阪 1,100
0706 10009 名古屋 名古屋 1,300
エリア 日付 売上高
大阪 0703 2,400
大阪 0706 1,100
東京 0701 100
東京 0701 1,000
東京 0703 1,600
東京 0703 6,400
東京 0705 1,000
名古屋 0702 1,0000
名古屋 0706 1,300
日付 売上高
0701 100
0701 1,000
0702 1,0000
0703 2,400
0703 1,600
0703 6,400
0705 1,000
0706 1,100
0706 1,300
Projection-1 Projection-2 Projection-3
エリア 店舗 日付 売上高 顧客ID
大阪 梅田 0703 2,400 10004
大阪 梅田 0706 1,100 10008
東京 池袋 0703 1,600 10005
東京 品川 0705 1,000 10007
東京 新宿 0701 100 10001
東京 新宿 0701 1,000 10002
東京 新宿 0703 6,400 10006
名古屋 名古屋 0702 1,0000 10003
名古屋 名古屋 0706 1,300 10009
Verticaでは、Tableは論理スキーマとして定義
create table table1(日付 date ,顧客ID(int),店舗 varchar(10),エリアvarchar(10) , 売上高(int));
大阪梅田の平均売上高 東京の7/3の売り上げ 7/6の売り上げ
クエリー毎に最適化を事前に行うことも可能
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.16
1256678125403812788581230807
Student_ID
121046612492901244262125249012671701248100124348312303821240224122278112318061246648
Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, Avis
Name
Stober, SaundraBorba, Milagros
Sosnowski, HillaryNibert, Emilia
Popovic, TanishaSchreckengost, Max
Porcelli, DarrenSinko, Erik
Tarvin, JulioLessig, Elnora
Thon, MaxTrembley, Allyson
FFFM
Gender
FFFFFMMMMFMF
SophomoreSeniorJuniorSenior
Class
JuniorFreshman
JuniorSophomoreFreshman
SeniorJunior
FreshmanSophomore
JuniorSophomore
Junior
62927664
Score
9096685995766791856382100
DACD
Grade
AADFACDABDBA
自動で最適なデータ配置を作成
Example query: select avg( Score ) from example whereClass = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.17
1256678125403812788581230807
Student_ID
121046612492901244262125249012671701248100124348312303821240224122278112318061246648
Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, Avis
Name
Stober, SaundraBorba, Milagros
Sosnowski, HillaryNibert, Emilia
Popovic, TanishaSchreckengost, Max
Porcelli, DarrenSinko, Erik
Tarvin, JulioLessig, Elnora
Thon, MaxTrembley, Allyson
FFFM
Gender
FFFFFMMMMFMF
SophomoreSeniorJuniorSenior
Class
JuniorFreshman
JuniorSophomoreFreshman
SeniorJunior
FreshmanSophomore
JuniorSophomore
Junior
62927664
Score
9096685995766791856382100
DACD
Grade
AADFACDABDBA
Queryに最適化されたカラム配置に並び替え
データ保持イメージ①
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.18
1256678Cappiello, EmiliaF Sophomore 62D1254038Dalal, AlanaF Senior 92A1278858Orner, KatyF Junior 76C1230807Frigo, AvisM Senior 64D1210466Stober, SaundraF Junior 90A1249290Borba, MilagrosF Freshman 96A1244262Sosnowski, HillaryF Junior 68D1252490Nibert, EmiliaF Sophomore 59F1267170Popovic, TanishaF Freshman 95A1248100Schreckengost, MaxM Senior 76C1243483Porcelli, DarrenM Junior 67D1230382Sinko, ErikM Freshman 91A1240224Tarvin, JulioM Sophomore 85B1222781Lessig, ElnoraF Junior 63D1231806Thon, MaxM Sophomore 82B1246648Trembley, AllysonF Junior 100A
Student_IDNameScoreClassGender Grade
並び替え
SORT
データ保持イメージ②
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.19
A
D
B
AJunior
Senior
Freshman
Junior
Sophomore
Sophomore
Junior
Junior
FF
F
M
FF
F
F
M
M
M
F
M
F
1256678Cappiello, EmiliaSophomore 62D1254038Dalal, AlanaSenior 92A
1278858Orner, Katy76C
1230807Frigo, Avis64D
1210466Stober, SaundraJunior 901249290Borba, Milagros96
1244262Sosnowski, Hillary68
1252490Nibert, Emilia59F
1267170Popovic, TanishaF Freshman 95A
1248100Schreckengost, MaxSenior 76C
1243483Porcelli, DarrenJunior 67D1230382Sinko, ErikM Freshman 91A
1240224Tarvin, Julio85
1222781Lessig, Elnora63D
1231806Thon, MaxSophomore 82B
1246648Trembley, Allyson100
Student_IDNameScoreClassGender Grade
A
圧縮
データ保持イメージ③
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.20
A
D
B
AJunior
Senior
Freshman
Junior
Sophomore
Sophomore
Junior
Junior
FF
F
M
FF
F
F
M
M
M
F
M
F
1256678Cappiello, Emilia621254038Dalal, Alana
SophomoreSenior 92
1278858Orner, Katy76
1230807Frigo, Avis64
1210466Stober, SaundraJunior 901249290Borba, Milagros96
1244262Sosnowski, Hillary68
1252490Nibert, Emilia59
1267170Popovic, TanishaF Freshman 95A
1248100Schreckengost, MaxSenior 76DC
1243483Porcelli, Darren671230382Sinko, ErikM 91
1240224Tarvin, Julio85
1222781Lessig, Elnora63CD
1231806Thon, MaxJunior
Freshman
Sophomore 82
DA
F
DA
B
1246648Trembley, Allyson100
Student_IDNameScoreClassGender
F
Grade
AJuniorJuniorJuniorJuniorJunior
AA
90100
1st I/OReads entire
column
2nd
I/O3rd I/O 4th I/O
offset offset
少ないIOで効率的に検索
Example query: select avg( Score ) from example whereClass = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.21
Create Projection文(例)
SELECT
EXAMPLE. gendar ,
EXAMPLE.class ,
EXAMPLE.grade ,
EXAMPLE.score
FROM EXAMPLE
CREATE PROJECIOTN student_table_P1(
gendar ENCODING RLE ,
class ENCODING RLE ,
grade ENCODING RLE ,
score ENCODING DELTVAL
) AS
列の選択&
圧縮率の指定
実データの指定
ORDER BY EXAMPLE.gendar ,
EXAMPLE.class ,
EXAMPLE.grade
列の並び替え
SEGMENTED BY HASH(EXAMPLE.class , EXAMPLE.score) ALL NODES; ノードに分散する
HASH KEYの指定
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.22
Live Aggregate Projection利用頻度の高い検索結果を専用プロジェクションに保持 = 読み取りを最小にして高速に結果を得る
Live Aggregate Projection
COUNT()、MAX()、MIN()、SUM()の集計SQL関数実行結果を事前に保持
Top-K Projection
指定件数の最新を保持
Top-K Projection 例同じお客様の直近の利用時間
Live Aggregate Projection例同じお客様の利用時間計
コールログ表
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.23
Projectionとは
Table
ユーザはProjectionを意識する必要なく、Tableに対してクエリーを実行すれば良い
SuperProjectionすべての列を含み、汎用的な圧縮、
並び替えを事前にしているデータセット
Query SpecificProjection
必要な列のみクエリーに特化した
圧縮並び替え
Pre-join Projectionロードのタイミングで事前にジョインしそ
のデータを格納
もっとも検索コストが低いプロジェクションをVerticaが自動選択
ユーザは意識をする必要はない
Aggregate Projection最新の集計結果をロー
ドのタイミング格納
Id毎
SumCountMaxMin
Top-K
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.24
半構造化データ(JSON形式)の分析JSON形式のログやソーシャルデータをスキーマレスで分析
JSON形式等の半構造化データも、Vertica上で高速かつスキーマレスで簡単に分析できます。
性能目安: Hadoop : FlexZone : Vertica Enterprise = 1 : 10 : 1000
CREATE FLEX TABLE mountains();
COPY mountains FROM mountain.json PARSER fjsonparser();
SELECT name, type, height FROM mountains;
半構造化データのままロード
通常の列型への変換もワンステップで可能
{ "name": "Everest", "type":"mountain", "height": 29029, "hike_safety": 34.1 }
{ "name": "Mt St Helens", "type": "volcano", "hike_safety": 15.4 }
Jsonデータサンプル
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.25
Vertica/Hadoopの連携リアルタイム、高速な分析が必要なデータはVerticaに! Hadoopとの共存がこれからの形に!
Hadoop
HDFS
External Tables
Flex Tables
Click Stream, Web Session Data
Hive Integration
(HCatalog)
webHDFS
ANSI SQLwebHCAT
Storage Tiering
Hive Pig
MapReduce HB
ase
webHDFS
Copy
■Hcatalogコネクタ
Hiveで作成したスキーマをVerticaから参照可能
■HDFSコネクタ
HDFS上のファイルをVerticaに簡単にロード可能
■HDFSをVerticaのデータ格納先として指定可能
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.26
すぐに試すことが出来ます。■Community Edition(3Node、1Tbyteの制限、お試し版)を、すぐにダウンロード可能です。
■3ノード、1Tbyte 以上のテストは、別途ご相談ください。
弊社のベンチマークセンター、もしくはお客様の環境でテスト可能なライセンスを別途発行いたします。
https://my.vertica.com/community/