[db tech showcase tokyo 2014] c25: facebookが採用した世界最大級の分析基盤とは? ...

27
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Facebookが採用した 世界最大級の分析基盤とは? 相澤恵奏 日本ヒューレット・パッカード株式会社 HPソフトウェア事業統括 ビッグデータプラットフォーム部 プリセールスマネージャー 2014年11月12日

Upload: insight-technology-inc

Post on 02-Jul-2015

904 views

Category:

Technology


8 download

DESCRIPTION

「情報戦を制する者が、選挙戦を制する」──。2012年11月の米大統領選で、民主党・現職のオバマ大統領が共和党・ロムニー候補を激戦の末に破り、再選を果たしたのは記憶に新しい。今回の大統領選でオバマ陣営は、「すべての行動をデータで判断する」という大方針を掲げ、世論調査の結果や有権者の声、ソーシャルメディアなどの膨大なデータを素早く分析して、的確な意思決定を行った。ある地域での投票率は57.16%、ボランティアの記録や消費者、党支持者、有権者などの声、世論調査の結果、「Twitter」や「Facebook」といったソーシャルメディア(SNS)でやり取りされている意見など、すべてのデータを1カ所にまとめて分析した予測値はなんと57.68%と0.52%の差でしかなかった。この驚異的なビッグデータ解析をご紹介。

TRANSCRIPT

© 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/

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.27

Thank you