[D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか?...

29
Michael Stonebraker が生み Michael Stonebraker が生み 出した列指向データベース は何が凄いのか? Verticaを例に列指向デ タベ スのア キテクチャを詳解 Verticaを例に列指向デタベスのアキテクチャを詳解日本ヒューレット・パッカード株式会社 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 小森 博之 ( [email protected] )

Transcript of [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか?...

Page 1: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

Michael Stonebrakerが生みMichael Stonebrakerが生み出した列指向データベースは何が凄いのか?

Verticaを例に列指向デ タベ スのア キテクチャを詳解~Verticaを例に列指向データベースのアーキテクチャを詳解~

日本ヒューレット・パッカード株式会社

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

小森博之 ( [email protected] )

Page 2: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

列指向データベースとは?

列指向デ タベ ネジ は デ タベ ネジ列指向データベースマネジメントシステムは、データベースマネジメントシステム(DBMS)の内部構造において、列のデータをひとまとまりにして取り出すときに効率的であるように設計されたものである。(ウィキペディアより引用)

カラムナデータベース(Columnar Database)、カラム型データベースとも呼ばれます。

C1 C2 C3 C4C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1

C2 C3 C4 C1 C2

C3 C4列指向 行指向

C1C1

C1

C1

C2

C2

C2

C3

C3

C3

C4

C4

C4

Hbase, Cassandraなど、”カラム指向データモデル”を採用したデータベースのことを列指向データベースと呼ぶ場合もありますが これとは別物です

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

ことを列指向データベースと呼ぶ場合もありますが、これとは別物です。

Page 3: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

目的特化型データベース製品

一般用途向け• Oracle• SQL Server• DB2

OLAP向け• Teradata• Netezza

G Pl

イン・メモリ• HANA• TimesTen• VoltDB• DB2

• Sybase ASE• NonStop/SQL• HiRDB• Symfoware

• GreenPlum• Vertica• Sybase IQ• SQL Server PDW

HADB

• VoltDB• 高速機関

SQL

• Symfoware• Tibero• AltiBase• PostgreSQL• MySQL

• HADB• EssBase• InfiniDB• RedShift

SQL• MySQL

カラム指向• HBase

ドキュメント指向• MongoDB

キーバリュー型• Riak

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

No SQL• Cassandra • CouchDB • Redis

Page 4: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

目的特化型列指向なのは?

一般用途向け• Oracle• SQL Server• DB2

OLAP向け• Teradata• Netezza

G Pl

イン・メモリ• HANA• TimesTen• VoltDB• DB2

• Sybase ASE• NonStop/SQL• HiRDB• Symfoware

• GreenPlum• Vertica• Sybase IQ• SQL Server PDW

HADB

• VoltDB• 高速機関

SQL

• Symfoware• Tibero• AltiBase• PostgreSQL• MySQL

• HADB• EssBase• InfiniDB• RedShift

SQL• MySQL

カラム指向• HBase

ドキュメント指向• MongoDB

キーバリュー型• Riak

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

No SQL• Cassandra • CouchDB • Redis

Page 5: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

Vertica 概要• 2005年分析用DBソフトウェアベンダーとして設立• 本社:米国マサチューセッツ州• Michael Stonebrakerが産みの親

P t C St の開発者Postgres, C-Storeの開発者• 注目ベンチャーとして数々の賞を受賞• 2011/3/22 HPが買収完了を発表• 2012/12/1 HPに統合完了/ / 統合完了

1970 1980 2000 2010Michael Stonebrakerが開発に関わったデータベース

INGRES POSTGRES C-store

RDBMS Object DBColumn-

oriented DB

S b A D

H-store

In-Memory DB

VoltDB

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

Vertica

HP技術継承

Sybase

SQL ServerAster DataGreenplumNetezza

VoltDB

Page 6: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

列指向データベースの実装列指向デ タ の実装

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

Page 7: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

検索に最適な列指向のデータ格納

AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE N

全ての列を読み込み行指向 - 従来型SELECT AVG(price) FROM tickstore WHERE symbol = ‘AAPL” AND date = ‘5/06/09’ YSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/05/09

AAPL NYASE NYAASE NYSE NYASE NGG YSE NYGGGSE

NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/06/09BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE

NYSE NYSE 37.03 NYSE NYSE NYSE 5/05/09

AAPLAAPL NYASE NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE NYSE 143.74143.74 NYSE NYSE NYSE NYSE NYSE NYSE 5/05/095/05/09AAPLAAPL NYASE NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE NYSE 143.74143.74 NYSE NYSE NYSE NYSE NYSE NYSE 5/06/095/06/09BBYBBY NYASE NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE NYSE 37.0337.03 NYSE NYSE NYSE NYSE NYSE NYSE 5/05/095/05/09BBYBBY NYASE NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE NYSE 37.1337.13 NYSE NYSE NYSE NYSE NYSE NYSE 5/06/095/06/09

WHERE symbol = ‘AAPL” AND date = ‘5/06/09’

BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE

NYSE NYSE 37.13 NYSE NYSE NYSE 5/06/09

3列のみ読み込みSELECT AVG( i ) FROM ti k t

列指向 - Vertica5/05/095/06/095/05/095/06/09

143.74143.7537.0337.13

AAPLAAPLBBYBBY

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE

AAPLAAPLAAPLAAPLAAPLAAPLBBYBBYBBYBBY

143.74143.74

37 1337 13

143.74143.74143.75143.7537.0337.0337 1337 13

5/05/095/05/09

5/06/095/06/09

5/05/095/05/095/06/095/06/095/05/095/05/095/06/095/06/09

SELECT AVG(price) FROM tickstore WHERE symbol = ‘AAPL” AND date = ‘5/06/09’

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

NYSE NQDS

NYSE NQDS

NYSE NQDS

NYSE NQDS

NYSE NQDS

NYSE NQDS

NYSE NQDS

NYSE NQDS

NYSE NQDS BBYBBYBBYBBY 37.1337.1337.1337.13 5/06/095/06/095/06/095/06/09

Page 8: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

列指向ストアの実装方法

C1 C2 C3 C4真の列指向ストア

列ごとに異なるストレージ領域( イ )にデ タを格納

列指向データベースとは?

C1 C2 C3 C4

(ファイル)にデータを格納。

列ごとに読み出しを実行。

「・・・列のデータをひとまとまりにして取り出す・・・」

圧縮は効くようになるが、列ごとの読み出しはできず全ての列を読み出す。

C1

C2 C3

C4

ブロックの中に列ごとに格納。ストレージ領域としては分かれていない。

偽の列指向ストア

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

C4偽の列指向ストア

Page 9: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

計算してみましょう!

行のサイズ : 1KB

読み込む行数:10,000,000行 (1,000万行)

必要なカラム数:3

必要なカラムの合計サイズ:30B

読み込みが必要なデータ量は?

行指向の場合

1KB x 10,000,000行 = 10GB

1 / 33

100MB / sec読めるストレージを使ったとすると…

100秒

列指向の場合

30B x 10,000,000行 = 300MB1 / 33

3秒

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

Page 10: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

INSERT, DELETE, UPDATEはどうなるのか?

INSERTDELETE (削除マークをつけるだけ)UPDATE (内部的にDELETE + INSERTを実行)

Write Optimized Store

( )

Read Optimized Store

(ROS)

TUPLE MOVER

• 列指向ストア• ディスク上• ソート済/圧縮済• 大量データを直接ロード

(WOS) (ROS)

非同期データ転送

A B C 行指向ストア

メモリ上

未ソート/非圧縮

MOVE OUT

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

未ソ ト/非圧縮

Page 11: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

MERGE OUTWrite Optimized Store Read Optimized Store(ROS)

TUPLE MOVER

• 列指向ストア• ディスク上• ソート済/圧縮済

Write Optimized Store

(WOS)

Read Optimized Store(ROS)

非同期データ転送

TUPLE MOVERA B C

行指向ストア

メモリ上 A B C

未ソート/非圧縮 A B C

Read Optimized Store(ROS)

A B C

Read Optimized Store(ROS)

MERGE OUTバックグランド処理

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

Page 12: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

データ・ローディング

COPYWOSを経由せず直接、

列指向ストアを生成

Write Optimized Store

( )

Read Optimized Store

(ROS)

列指向ストアを生成

TUPLE MOVER

• 列指向ストア• ディスク上• ソート済/圧縮済• 大量データを直接ロード

(WOS) (ROS)

非同期データ転送

A B C 行指向ストア

メモリ上

未ソート/非圧縮

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

未ソ ト/非圧縮

Page 13: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

圧縮列ごとにデ タを格納しているので 効率的な圧縮が可能列ごとにデータを格納しているので、効率的な圧縮が可能データの属性に応じた最適な圧縮アルゴリズムを使⽤データ検索時のI/O量が減り、より⾼速な処理を実現

処理日 お客様番号 取引データ

5/05/2009 000000100000010000001

5/05/2009, 165/05/2009, 16 000000100000010 100.25Þ >ÞìÃp:±æ+©>

計算してみましょう!

5/05/20095/05/20095/05/20095/05/20095/05/20095/05/2009

000000100000030000003000000500000110000011

0224

1010

302.43991.2373.45134.09843.11208 13

Þ¥

ÞìÃp: æ ©Hì&ì¥YÛ¡×¥©éa½?50ÓJ 列指向ストアで1/33になった読込

データが、1/10に圧縮されていたとすると…5/05/2009

5/05/20095/05/20095/05/20095/05/2009 0000052

00000200000026000005000000510000052

RLE

49

192549

D l

208.13114.2983.0743.98229.76

1/33 x 1/10 = 1/330 になります。

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

RLEアルゴリズム

DeltaEncoding

LZOアルゴリズム

Page 14: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

V ti SAP HANA SQL S 2012 P ll l D t W h を例に

列指向データベースに(ほぼ)共通して見られる実装Vertica, SAP HANA, SQL Server 2012 Parallel Data Warehouseを例に

• 列指向ストアにより、検索時の読み込み量を削減

デ タに応じて複数の圧縮方法を使い分け 非常に高い圧縮• データに応じて複数の圧縮方法を使い分け、非常に高い圧縮率を実現

• Tuple Moverを使用した処理• Tuple Moverを使用した処理• 更新処理は、いったん行指向ストアでメモリに書き込む

• Tuple Moverが列指向ストアの形式に変更して、ストレージに書き込む

• 検索処理は、両方の領域のデータを読んで処理する

• DELETEは削除マークをつけるだけ、UPDATEはDELETE+INSERTを実行

• ローディングはTuple Moveを通さずに実行する

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

ロ ディングはTuple Moveを通さずに実行する

Page 15: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

HP AppSystem for SAP HANAインメモリ テクノロジ 搭載のアプライアンス製品

MDX SQL BICSSQL

SAP HANA®SAP HANA®

Other Applications SAP BusinessObjects インメモリーテクノロジー搭載のアプライアンス製品-アプライアンスはHPから、ライセンスはSAPからご提供ー

インメモリーテクノロジー(リアルタイムに大量データをメモリ上で処理する技術)を搭載

SAP HANA Studioデータベースモデリング・運用管理

SAP HANA® SAP HANA®

デ タ ス

オープンインターフェイス(ODBC、JDBC、SQL、MDXに準拠)

データ移行ETL(Data services)機能により3rd partyデータソースの取り込みも容易に。

リアルタイム バッチ データロード

SAP HANA データベース

行・列型ストア計算・計画エンジン

ETL(Data services)機能により3rd partyデ タソ スの取り込みも容易に。また、SAP Landscape Transformationを使用することにより、リアルタイムのデータ複製が可能

パフォーマンス

全てのデ タがインメモリ 上にあり(物理ディスクではなく物理メモリ上にリアルタイムデータレプリケーション

ハ ッチ テータロート(ETL)

全てのデータがインメモリー上にあり(物理ディスクではなく物理メモリ上に論理領域を作成してデータやログを書きこむ)ため、Disk I Oボトルネックを解消。インデックスのパーティショニングにより各サーバ(Core)で並列処理が可能。

結果大幅なパフォーマンス向上につながる。Real Time Replication / ETL

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

SAP NetWeaver BWSAP Business Suite 3rd Party DB

Page 16: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

HANAの列指向ストア

列指向と行指向の両方をサポート

圧縮圧縮

Run Length Encoding, 辞書圧縮など、5種類の圧縮アルゴリズムを使用

更新処理Data Table (列指向) Data Table (列指向)(列指向)

456

457

458

France

Italy

Italy

corn

wheat

corn

1000

900

600

456

457

458

France

Italy

Italy

corn

corn

corn

1000

900

600delta

Delta Store (行指向)

459 Spain rice 800

457 Italy corn 900updateINSERTDELETE

459

460

Spain

Denmark

rice

corn

800

600

deltamerge

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

460 Denmark corn 600InsertDELETEUPDATE

Page 17: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

HP AppSystem for SQL Server 2012 Parallel Data Warehouse

1. ビッグデータ時代の大量データを高速に処理。2. Hadoopと連携して、Webログやソーシャル・データの分析が可能。3. Excelを使うことで、現場担当者自らがビッグ・データを分析。

高速 Hadoopとの連携 ExcelでBI

SQL Serverを超並列(MPP)化し、カラム型技術を搭載することで、高速な処理を

Hadoopとの高速な連携を実現。Hadoopで処理された非構造化データと、DBに

Microsoft製品だけにExcelとの相性は抜群。誰でも使えるExcelでビッグデータを

実現しています。 蓄積されたデータの相関

分析を可能にします。誰でも扱えるようにします。

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

Page 18: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

SQL Server 2012 Parallel Data Warehouseの列指向ストアClustered ColumnStoreとして列指向ストアを実装 (SQL Server 2012のColumnStoreClustered ColumnStoreとして列指向ストアを実装 (SQL Server 2012のColumnStoreIndexとは異なります。)Delta Storeにデータがたまると、REORANIZEを実行。(VerticaのMOVE OUTに相当)そ 後 削除された領域 解放 ( )を実行 ( 相当)その後、削除された領域の解放 (REBUILD)を実行。(VerticaのMERGE OUTに相当)

ColumnStore

DeletedBitmapBULK INSERT

C1 C2 C3 C4 C5 C6

Store Bitmap

Tuple

Delta

TupleMover

INSERTDELETE C1 C2 C3 C5 C6C4

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

StoreUPDATE

Page 19: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

Vertica独自の実装実装

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

Page 20: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

リレーショナル・データベースの基礎

RDBMSでは、データを列と行から構成される表として考えます。

表の行は論理的には順序に関係ないものとして考えます。

RDBMSは、この表から以下のような関係演算と呼ばれる処理を行って、目的とする表(結果セット、一時テーブル)を作り出します。

• projection : 列の取り出し

• selection : 行の取り出し

• join : 表と表の結合

• union : 表と表の合併union : 表と表の合併DBMSは、データ言語である SQLが抽象的で無手続きであるという特質により、平行および並列処理などを色々と工夫して処理速度を上げる事が可能です。

言いかえれば、RDBMSの最大の利点は、目的のデータを探す手順を示さなくても得る事ができる点です。

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

Page 21: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

“C Sto e A Col mn O iented DBMS ” Stoneb ake et al VLDB 2005

C-Store(Vertica)の設計思想“C-Store: A Column-Oriented DBMS.” Stonebraker et al. VLDB 2005.

• Compress columns

• No alignment

Bi di k bl k• Big disk blocks

• Only materialized views (perhaps many) → Projection• Focus on Sorting not indexing → Indexよりsortが重要Focus on Sorting not indexing → Indexよりsortが重要• Data ordered on anything, not just time

• Automatic physical DBMS design →物理デザインの自動化O ti i f id ti• Optimize for grid computing

• Innovative redundancy

• Xacts – but no need for Mohan

• Column optimizer and executor →列指向専用オプティマイザ

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

• Column optimizer and executor →列指向専用オプティマイザ

Page 22: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

最適な圧縮と最適な列配置と最適なソ トが事前に実施されたデ タセ ト

Projection最適な圧縮と最適な列配置と最適なソートが事前に実施されたデータセット

表A 表B

Super Projection圧縮 圧

縮圧縮 圧

圧縮 圧

圧縮 圧 圧

縮Super ProjectionComprehensive Projection表の実態

縮 縮 圧縮 縮 圧

縮縮 縮 縮

Query Specific Projection特定クエリーに最適化⼊⼒されたSQLを Database Designerで解析し、対象クエリーに最適なProjectionを追加で作成可能

圧縮 圧

縮圧縮

クエリ に最適なProjectionを追加で作成可能SELECT A.2c,A.3c from TableA where A.1c = 100 and A.3c = 200;

Pre-JOIN-ProjectionあらかじめJOIN

圧縮

圧縮

自動作成

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

あらかじめJOINSELECT A.5c,B.2c from TableA,TableB where A.3c = B.3c; Database Designer

Page 23: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

Projectionを使ったデータの絞り込み

AAFreshmanFreshmanFFFF

12104661210466StoberStober, Saundra, SaundraJuniorJunior 909012492901249290BorbaBorba, Milagros, Milagros969612671701267170PopovicPopovic, , TanishaTanishaFF FreshmanFreshman 9595AA

Student_IDStudent_IDNameNameScoreScoreClassClassGenderGender

FF

GradeGrade

AAJuniorJunior AA 9090

offset offset

DD

AAJuniorJunior

JuniorJuniorJuniorJunior

JuniorJunior

FFFF

FF

FFFF

FF

12566781256678CappielloCappiello, Emilia, Emilia626212540381254038DalalDalal, Alana, Alana

SophomoreSophomoreSeniorSenior 9292

12788581278858OrnerOrner, Katy, Katy7676

12442621244262SosnowskiSosnowski, Hillary, Hillary686812227811222781LessigLessig, Elnora, Elnora6363

CCDD

DDAA

12466481246648TrembleyTrembley, Allyson, Allyson100100JuniorJuniorJuniorJuniorJuniorJuniorJuniorJunior

AA 100100

d /O d /O th /O

BB

SophomoreSophomore

SophomoreSophomore

FFFF

MM

MM

MMMM

12566781256678CappielloCappiello, Emilia, Emilia6262SophomoreSophomore12524901252490NibertNibert, Emilia, Emilia5959

12481001248100S h k tS h k t M MS iS i 7676CC

12434831243483PorcelliPorcelli, Darren, Darren676712303821230382SinkoSinko, Erik, ErikMM 9191

12402241240224TarvinTarvin, Julio, Julio858512318061231806Thon, MaxThon, Max

JuniorJuniorFreshmanFreshman

SophomoreSophomore 8282

DDFF

DDAA

BB

1st I/O

2nd I/O 3rd I/O 4th I/O

SeniorSeniorMMMM

12308071230807FrigoFrigo, Avis, Avis646412481001248100SchreckengostSchreckengost, Max, MaxSeniorSenior 7676

DDCC

Reads entire column

Example query: select avg( Score ) from example where

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

select avg( Score ) from example whereClass = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’

Page 24: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

超並列処理(MPP)アークテクチャー

シェアードナッシング⽅式によりリニアに性能向上すべてのノードが同じ役割を実⾏可能 (マスターノードがない!)

検索クエリ 計算してみましょう!

node01 node02 node0310列指向と圧縮で1/330になった読込データを、10ノードに分散して並列処理すると…

1/33 ÷ 10 1/3300 になります

node01node01専用データ領域

node02node02専用データ領域

node03専用データ領域

3 43

1/33 ÷ 10 = 1/3300 になります。

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

専用デ タ領域 専用デ タ領域 専用デ タ領域

Page 25: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

リアルタイム・マーケティング事例Z I オンライン ゲ ム会社

• ゲーム体験をパーソナライズすることで、ユーザを繋ぎ止め、

を向

“4,000万人以上のプレーヤーからは発生する1日当り

Zynga, Inc. – オンライン・ゲーム会社

収入を向上させる。

• 個人個人の行動から、インフル ンサを見出す

3TBのデータを、230ノードクラスタで構成したVerticaに毎日ロードしています。

ルエンサを見出す。

• 世界最大のVerticaユーザのつ 1日に3TB以上のデ タ

Verticaを使用したZyngaの列指向データベースは、真の分析ツールです。”

一つ。1日に3TB以上のデータをロードしている。

- Ken Rudin, VP Analytics

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

Page 26: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

Verticaを使用したデータ分析リファレンス・アーキテクチャGather Create Infuse Act

非構造化データソース

l d 非構造化 構造化データ 分析者

Unstructured Data

SQL +

分析アルゴリズムVertica Platform

e.g. social mediaVideo

images

非構造化データストア

HADOOP

構造化デ タ

分析インターフ ス

分析者Q

Analytic Extensions

Hadoopコネクタ

データソース&EDW

VerticaDatabase

UDX

R Analytics フェースTableau.

Spotfire etc.

外部ソ ス SAS 分析者

UDXC++

SAS/ACEESS Interface to Vertica

センチメント分析関数twitter API

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

外部ソースe.g.D&BAcxiom

SAS 分析者

SAS

Page 27: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

まとめ

列指向データベースは、高速な検索を実現できます。

必要な列だけを読み取ることでIOを削減します。必要な列だけを読み取ることでIOを削減します。

列ごとにデータが格納されているため、圧縮率が高く、さらにIOを削減します。

MPPを併用することで、並列処理によりさらに高速化できます。

列指向データベースの代表格であるVerticaは、さらに特徴的な機能を持っています。

Projectionによるさらなる検索の高速化を実現しています。

Detabase Designerによる自動チューニングが可能です。

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

Page 28: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

Vertica Community Editionテストを目的として、1Tbyte、3ノードまで、無料及び無期限で利用可能

まずは、Community EditionでVerticaの魅力を体感ください。

https://my.vertica.com/community/

魅力を体感ください。My Verticaというサイトにて登録後、ダウンロードが可能です。

• 容量:1TByteまで• 容量:1TByteまで

• ノード数:3台まで

• 対象OS: RHEL5 and 6, CentOS5 and 6, SUSE10 and 11, Debian 5 and 6

台 上 構成 試 た 場合は を発行 た ます1Tbyte、3台以上の構成で試したい場合は、Evaluation Licenseを発行いたします。

Evaluation Licenseを用いて、日本HPのソリューションセンターにてPOCの実施も可能です。

実際のサービス運用へ移行の際は、Enterprise Edition (1Tbyte、3台の制限無し、製品保守付き) オンラインでライセンス適用することが可能です

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

製品保守付き)へ、オンラインでライセンス適用することが可能です。

※データ容量が1Tbyteを場合、select/deleteなどが出来なくなり、それ以降のデータの追加ができません。EnterpriseEditionへの移行をご検討ください

Page 29: [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by

ご静聴ありがとうございました静聴ありがとう ざ ました

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