© 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/1HPに統合完了 
INGRES 
POSTGRES 
C-store 
RDBMS 
Object DB 
Column- oriented DB 
Vertica 
HP 
1970 
1980 
2000 
2010 
技術継承 
Sybase 
SQL Server 
Aster 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 Exadataetc 
OLTP向け RDBMS 
OLTP向けRDBMS 
OracleDB 
MySQL 
Postgresetc 
カラム指向型 データベース 
ソフトウェア 
超高速、低価格、簡単に使える、すぐ使える 
■低価格 
・コモディティーハードウェア 
・ソフトウェア提供 
■列指向 
■超並列アーキテクチャ 
遅い 
高い
© 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.操作性、チューニング簡易性
7 © Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 
Vertica リアルタイム分析プラットプラットフォーム 
分析・検索処理に特化したDBエンジンです。 
Database 
Database 
(OLTP) 
Apps. 
Files 
レポート 
OLAP 
アプリ 
ダッシュ 
ボード 
データの 
抽出、変換、 
ロード 
(ETL) 
データ 
ソース 
データ 
抽出 
解析用 
DB 
データ 
分析 
既存の業務データ 
・分析SQL 
HDFS ・UDx 
Hcatalog 
ODBC 
JDBC 
jsonデータ 
(Flex zone) 
半構造化データ 
ODBC 
JDBC
© 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 
Clustering 
Compression 
列指向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 
AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE N 
YSE NYSE NYSE 143.74NYSE NYSE NYSE8/10/11 
AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE 
NYSE NYSE NYSE 143.74NYSE NYSENYSE8/10/11 
BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE 
NYSE NYSE 37.03NYSE NYSENYSE8/10/11 
BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE 
NYSE NYSE 37.13NYSE NYSE NYSE8/10/11AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74NYSE NYSE NYSE8/10/11 
AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74NYSE NYSE NYSE8/10/11 
BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.03NYSE NYSE NYSE8/10/11 
BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.13NYSE NYSE NYSE8/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 
AAPL 
AAPL 
BBY 
BBY 
143.74 
143.75 
37.03 
37.13 
8/10/11 
8/10/11 
8/10/11 
8/10/11 
Reads 3 columns 
SELECT 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 
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(データ共有型) 
Vertica 
node02 
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 
ノードダウン時の継続実行機能 
Continuousperformance 
システム全体でRAIDのような構成を実現
13 © Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 
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の作成は不要 
自動チューニングDatabaseDesigner(DBD) 
DbataseDesigner 
自動チューニング 
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. 
161256678125403812788581230807Student_ID121046612492901244262125249012671701248100124348312303821240224122278112318061246648Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, AvisNameStober, SaundraBorba, MilagrosSosnowski, HillaryNibert, EmiliaPopovic, TanishaSchreckengost, MaxPorcelli, DarrenSinko, ErikTarvin, JulioLessig, ElnoraThon, MaxTrembley, AllysonFFFMGenderFFFFFMMMMFMFSophomoreSeniorJuniorSeniorClassJuniorFreshmanJuniorSophomoreFreshmanSeniorJuniorFreshmanSophomore JuniorSophomoreJunior62927664Score9096685995766791856382100DACDGradeAADFACDABDBA 
自動で最適なデータ配置を作成 
Example query: 
select avg( Score ) from example where 
Class = ‘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. 
171256678125403812788581230807Student_ID121046612492901244262125249012671701248100124348312303821240224122278112318061246648Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, AvisNameStober, SaundraBorba, MilagrosSosnowski, HillaryNibert, EmiliaPopovic, TanishaSchreckengost, MaxPorcelli, DarrenSinko, ErikTarvin, JulioLessig, ElnoraThon, MaxTrembley, AllysonFFFMGenderFFFFFMMMMFMFSophomoreSeniorJuniorSeniorClassJuniorFreshmanJuniorSophomoreFreshmanSeniorJuniorFreshmanSophomore JuniorSophomoreJunior62927664Score9096685995766791856382100DACDGradeAADFACDABDBA 
Queryに最適化されたカラム配置に並び替え 
データ保持イメージ①
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 
181256678Cappiello, EmiliaFSophomore62D1254038Dalal, AlanaFSenior92A1278858Orner, KatyFJunior76C1230807Frigo, AvisMSenior64D1210466Stober, SaundraFJunior90A1249290Borba, MilagrosFFreshman96A1244262Sosnowski, HillaryFJunior68D1252490Nibert, EmiliaFSophomore59F1267170Popovic, TanishaFFreshman95A1248100Schreckengost, MaxMSenior76C1243483Porcelli, DarrenMJunior67D1230382Sinko, ErikMFreshman91A1240224Tarvin, JulioMSophomore85B1222781Lessig, ElnoraFJunior63D1231806Thon, MaxMSophomore82B1246648Trembley, AllysonFJunior100AStudent_IDNameScoreClassGenderGrade 
並 び 替 え 
SORT 
データ保持イメージ②
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 
19ADBAJuniorSeniorFreshmanJuniorSophomoreSophomoreJuniorJuniorFFFMFFFFMMMFMF1256678Cappiello, EmiliaSophomore62D1254038Dalal, AlanaSenior92A1278858Orner, Katy76C1230807Frigo, Avis64D1210466Stober, SaundraJunior901249290Borba, Milagros961244262Sosnowski, Hillary681252490Nibert, Emilia59F1267170Popovic, TanishaFFreshman95A1248100Schreckengost, MaxSenior76C1243483Porcelli, DarrenJunior67D1230382Sinko, ErikMFreshman91A1240224Tarvin, Julio851222781Lessig, Elnora63D1231806Thon, MaxSophomore82B1246648Trembley, Allyson100Student_IDNameScoreClassGenderGradeA 
圧 縮 
データ保持イメージ③
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 
20ADBAJuniorSeniorFreshmanJuniorSophomoreSophomoreJuniorJuniorFFFMFFFFMMMFMF1256678Cappiello, Emilia621254038Dalal, AlanaSophomoreSenior921278858Orner, Katy761230807Frigo, Avis641210466Stober, SaundraJunior901249290Borba, Milagros961244262Sosnowski, Hillary681252490Nibert, Emilia591267170Popovic, TanishaFFreshman95A1248100Schreckengost, MaxSenior76DC1243483Porcelli, Darren671230382Sinko, ErikM911240224Tarvin, Julio851222781Lessig, Elnora63CD1231806Thon, MaxJuniorFreshmanSophomore82DAFDAB1246648Trembley, Allyson100Student_IDNameScoreClassGenderFGradeAJuniorJuniorJuniorJuniorJuniorAA90100 
1stI/O 
Reads entire column 
2ndI/O 
3rdI/O 
4thI/O 
offset 
offset 
少ないIOで効率的に検索 
Example query: 
select avg( Score ) from example where 
Class = ‘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( 
gendarENCODINGRLE , 
classENCODING RLE , 
gradeENCODING RLE , 
scoreENCODING 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-joinProjection 
ロードのタイミングで 事前にジョインしそ のデータを格納 
もっとも検索コストが低いプロジェクションをVerticaが自動選択 
ユーザは意識をする必要はない 
AggregateProjection 
最新の集計結果をロー ドのタイミング格納 
Id 毎 
Sum 
Count 
Max 
Min 
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 
CREATEFLEX TABLE mountains(); 
COPY mountains FROM mountain.jsonPARSER 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 SQL 
webHCAT 
Storage Tiering 
Hive 
Pig 
MapReduce 
HBase 
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/
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 
27 
Thank you

[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッカード株式会社 相澤恵奏

  • 1.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Facebookが採用した 世界最大級の分析基盤とは? 相澤恵奏 日本ヒューレット・パッカード株式会社 HPソフトウェア事業統括ビッグデータプラットフォーム部 プリセールスマネージャー 2014年11月12日
  • 2.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Verticaとは?
  • 3.
    © Copyright 2014Hewlett-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 ドキュメント
  • 4.
    © Copyright 2014Hewlett-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/1HPに統合完了 INGRES POSTGRES C-store RDBMS Object DB Column- oriented DB Vertica HP 1970 1980 2000 2010 技術継承 Sybase SQL Server Aster DataGreenplumNetezza
  • 5.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 5 ビックデータ向け:第3世代RDBMS DWH アプライアンス DWHアプライアンス IBM Netezza Teradata Oracle Exadataetc OLTP向け RDBMS OLTP向けRDBMS OracleDB MySQL Postgresetc カラム指向型 データベース ソフトウェア 超高速、低価格、簡単に使える、すぐ使える ■低価格 ・コモディティーハードウェア ・ソフトウェア提供 ■列指向 ■超並列アーキテクチャ 遅い 高い
  • 6.
    © Copyright 2014Hewlett-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.操作性、チューニング簡易性
  • 7.
    7 © Copyright2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Vertica リアルタイム分析プラットプラットフォーム 分析・検索処理に特化したDBエンジンです。 Database Database (OLTP) Apps. Files レポート OLAP アプリ ダッシュ ボード データの 抽出、変換、 ロード (ETL) データ ソース データ 抽出 解析用 DB データ 分析 既存の業務データ ・分析SQL HDFS ・UDx Hcatalog ODBC JDBC jsonデータ (Flex zone) 半構造化データ ODBC JDBC
  • 8.
    © Copyright 2014Hewlett-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 Clustering Compression 列指向RDBMS データ圧縮機能 超並列 アーキテクチャー ノードダウン時の継 続実行機能 HDFS Connector VerticaからHDFSに配置されている ファイルの読み込み、Hcatalogとの連 携が可能 標準のBI, ETLツールと連携 Analytics C++,R言語,Javaによる User定義関数をサポート
  • 9.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 9 Columnar storage and execution AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE N YSE NYSE NYSE 143.74NYSE NYSE NYSE8/10/11 AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74NYSE NYSENYSE8/10/11 BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.03NYSE NYSENYSE8/10/11 BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.13NYSE NYSE NYSE8/10/11AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74NYSE NYSE NYSE8/10/11 AAPLNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74NYSE NYSE NYSE8/10/11 BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.03NYSE NYSE NYSE8/10/11 BBYNYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.13NYSE NYSE NYSE8/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 AAPL AAPL BBY BBY 143.74 143.75 37.03 37.13 8/10/11 8/10/11 8/10/11 8/10/11 Reads 3 columns SELECT AVG(price) FROM tickstore WHERE symbol = ‘AAPL” AND date = ‘8/10/11’ ディスクI/Oとメモリ量の 劇的な削減 列指向-Vertica 必要な列のみを読み込めばよい。
  • 10.
    © Copyright 2014Hewlett-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 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が自動で最適なものを決める。
  • 11.
    © Copyright 2014Hewlett-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(データ共有型) Vertica node02 node03 検索クエリ 3 4 10 3 Clustering 超並列処理(MPP)アーキテクチャ ノードを追加していくことにより、リニアな性能向上
  • 12.
    © Copyright 2014Hewlett-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 ノードダウン時の継続実行機能 Continuousperformance システム全体でRAIDのような構成を実現
  • 13.
    13 © Copyright2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. R Language Pack 標準インターフェース+R言語による解析 SQL, ODBC, JDBC データの取 り込み ETL, レプリケーション分析、レポーティング 既存ツールの活用によるTCO向上 SQL/ODBC/JDBCに準拠、ETL・BIツールと連携可能R言語による解析 ・高度な解析アルゴリズム をプログラム化することが 可能 ・コードを柔軟に再利用す ることが可能 高度な解析が可能
  • 14.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 14 最高のパフォーマンスが出せる物理デザインをVerticaが自動で作成 自動で最適なデータ圧縮、列の並び替えを行い、検索を高速化 定型検索に最適なデータ配置を追加で作成することが可能 INDEXの作成は不要 自動チューニングDatabaseDesigner(DBD) DbataseDesigner 自動チューニング DB管理者 SQL1 SQL2 圧縮 分散 ソート 列の並び替え 抽出 チューニングを意識して設計す る必要はなく、従来通りのテー ブル設計、SQL作成にて管理が 可能となります。 Webベース 対話形式のチューニングツール 全てのクエリー向け comprehensiveモード 特定のクエリー向け incremental モード Database desinger により、データの分散、必要な列 の抽出、列の並び替え、データのソーティング、最適 な圧縮方法選択、を行います。
  • 15.
    © Copyright 2014Hewlett-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の売り上げ クエリー毎に最適化を事前に行うことも可能
  • 16.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 161256678125403812788581230807Student_ID121046612492901244262125249012671701248100124348312303821240224122278112318061246648Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, AvisNameStober, SaundraBorba, MilagrosSosnowski, HillaryNibert, EmiliaPopovic, TanishaSchreckengost, MaxPorcelli, DarrenSinko, ErikTarvin, JulioLessig, ElnoraThon, MaxTrembley, AllysonFFFMGenderFFFFFMMMMFMFSophomoreSeniorJuniorSeniorClassJuniorFreshmanJuniorSophomoreFreshmanSeniorJuniorFreshmanSophomore JuniorSophomoreJunior62927664Score9096685995766791856382100DACDGradeAADFACDABDBA 自動で最適なデータ配置を作成 Example query: select avg( Score ) from example where Class = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
  • 17.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 171256678125403812788581230807Student_ID121046612492901244262125249012671701248100124348312303821240224122278112318061246648Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, AvisNameStober, SaundraBorba, MilagrosSosnowski, HillaryNibert, EmiliaPopovic, TanishaSchreckengost, MaxPorcelli, DarrenSinko, ErikTarvin, JulioLessig, ElnoraThon, MaxTrembley, AllysonFFFMGenderFFFFFMMMMFMFSophomoreSeniorJuniorSeniorClassJuniorFreshmanJuniorSophomoreFreshmanSeniorJuniorFreshmanSophomore JuniorSophomoreJunior62927664Score9096685995766791856382100DACDGradeAADFACDABDBA Queryに最適化されたカラム配置に並び替え データ保持イメージ①
  • 18.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 181256678Cappiello, EmiliaFSophomore62D1254038Dalal, AlanaFSenior92A1278858Orner, KatyFJunior76C1230807Frigo, AvisMSenior64D1210466Stober, SaundraFJunior90A1249290Borba, MilagrosFFreshman96A1244262Sosnowski, HillaryFJunior68D1252490Nibert, EmiliaFSophomore59F1267170Popovic, TanishaFFreshman95A1248100Schreckengost, MaxMSenior76C1243483Porcelli, DarrenMJunior67D1230382Sinko, ErikMFreshman91A1240224Tarvin, JulioMSophomore85B1222781Lessig, ElnoraFJunior63D1231806Thon, MaxMSophomore82B1246648Trembley, AllysonFJunior100AStudent_IDNameScoreClassGenderGrade 並 び 替 え SORT データ保持イメージ②
  • 19.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 19ADBAJuniorSeniorFreshmanJuniorSophomoreSophomoreJuniorJuniorFFFMFFFFMMMFMF1256678Cappiello, EmiliaSophomore62D1254038Dalal, AlanaSenior92A1278858Orner, Katy76C1230807Frigo, Avis64D1210466Stober, SaundraJunior901249290Borba, Milagros961244262Sosnowski, Hillary681252490Nibert, Emilia59F1267170Popovic, TanishaFFreshman95A1248100Schreckengost, MaxSenior76C1243483Porcelli, DarrenJunior67D1230382Sinko, ErikMFreshman91A1240224Tarvin, Julio851222781Lessig, Elnora63D1231806Thon, MaxSophomore82B1246648Trembley, Allyson100Student_IDNameScoreClassGenderGradeA 圧 縮 データ保持イメージ③
  • 20.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 20ADBAJuniorSeniorFreshmanJuniorSophomoreSophomoreJuniorJuniorFFFMFFFFMMMFMF1256678Cappiello, Emilia621254038Dalal, AlanaSophomoreSenior921278858Orner, Katy761230807Frigo, Avis641210466Stober, SaundraJunior901249290Borba, Milagros961244262Sosnowski, Hillary681252490Nibert, Emilia591267170Popovic, TanishaFFreshman95A1248100Schreckengost, MaxSenior76DC1243483Porcelli, Darren671230382Sinko, ErikM911240224Tarvin, Julio851222781Lessig, Elnora63CD1231806Thon, MaxJuniorFreshmanSophomore82DAFDAB1246648Trembley, Allyson100Student_IDNameScoreClassGenderFGradeAJuniorJuniorJuniorJuniorJuniorAA90100 1stI/O Reads entire column 2ndI/O 3rdI/O 4thI/O offset offset 少ないIOで効率的に検索 Example query: select avg( Score ) from example where Class = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
  • 21.
    © Copyright 2014Hewlett-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( gendarENCODINGRLE , classENCODING RLE , gradeENCODING RLE , scoreENCODING DELTVAL ) AS 列の選択& 圧縮率の指定 実データの指定 ORDER BY EXAMPLE.gendar , EXAMPLE.class , EXAMPLE.grade 列の並び替え SEGMENTED BY HASH(EXAMPLE.class , EXAMPLE.score) ALL NODES; ノードに分散する HASH KEYの指定
  • 22.
    © Copyright 2014Hewlett-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例 同じお客様の利用時間計 コールログ表
  • 23.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 23 Projectionとは Table ユーザはProjectionを意識する必要なく、Tableに対してクエリーを実行すれば良い SuperProjection すべての列を含み、汎用的な圧縮、 並び替えを事前にしているデータセット Query SpecificProjection 必要な列のみ クエリーに特化した 圧縮並び替え Pre-joinProjection ロードのタイミングで 事前にジョインしそ のデータを格納 もっとも検索コストが低いプロジェクションをVerticaが自動選択 ユーザは意識をする必要はない AggregateProjection 最新の集計結果をロー ドのタイミング格納 Id 毎 Sum Count Max Min Top-K
  • 24.
    © Copyright 2014Hewlett-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 CREATEFLEX TABLE mountains(); COPY mountains FROM mountain.jsonPARSER 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データサンプル
  • 25.
    © Copyright 2014Hewlett-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 SQL webHCAT Storage Tiering Hive Pig MapReduce HBase webHDFS Copy ■Hcatalogコネクタ Hiveで作成したスキーマをVerticaから参照可能 ■HDFSコネクタ HDFS上のファイルをVerticaに簡単にロード可能 ■HDFSをVerticaの データ格納先として 指定可能
  • 26.
    © Copyright 2014Hewlett-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/
  • 27.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 27 Thank you