Weitere ähnliche Inhalte
Ähnlich wie [D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by Hiroyuki Komori (20)
Mehr von Insight Technology, Inc. (20)
[D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャを詳解~ by Hiroyuki Komori
- 2. 列指向データベースとは?
列指向データベースマネジメントシステムは、データベースマネジメントシステム
列指向デ タベ
ネジ
は デ タベ
ネジ
(DBMS)の内部構造において、列のデータをひとまとまりにして取り出すときに効率的
であるように設計されたものである。(ウィキペディアより引用)
カラムナデータベース(Columnar Database)、カラム型データベースとも呼ばれます。
C1
C2
C3
C4
C1
C2
C3
C4
C1
C2
C3
C4
C1
C2
C3
C4
C1
列指向
C2
C3
C4
C1
行指向
C2
C3
C2
C1
C3
C3
C4
C4
C1
C1
C2
C4
Hbase, Cassandraなど、”カラム指向データモデル”を採用したデータベースの
ことを列指向データベースと呼ぶ場合もありますが、これとは別物です。
ことを列指向データベースと呼ぶ場合もありますが これとは別物です
2
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 3. データベース製品
一般用途向け
• Oracle
• SQL Server
• DB2
• Sybase ASE
• NonStop/SQL
• HiRDB
• Symfoware
• Tibero
• AltiBase
• PostgreSQL
• MySQL
目的特化型
カラム指向
• HBase
• Cassandra
3
イン・メモリ
• HANA
• TimesTen
• VoltDB
• 高速機関
OLAP向け
• Teradata
• Netezza
• G
GreenPlum
Pl
• Vertica
• Sybase IQ
• SQL Server PDW
• HADB
• EssBase
• InfiniDB
• RedShift
SQL
ドキュメント指向
• MongoDB
• CouchDB
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
キーバリュー型
• Riak
• Redis
No SQL
- 4. 列指向なのは?
一般用途向け
• Oracle
• SQL Server
• DB2
• Sybase ASE
• NonStop/SQL
• HiRDB
• Symfoware
• Tibero
• AltiBase
• PostgreSQL
• MySQL
目的特化型
カラム指向
• HBase
• Cassandra
4
イン・メモリ
• HANA
• TimesTen
• VoltDB
• 高速機関
OLAP向け
• Teradata
• Netezza
• G
GreenPlum
Pl
• Vertica
• Sybase IQ
• SQL Server PDW
• HADB
• EssBase
• InfiniDB
• RedShift
SQL
ドキュメント指向
• MongoDB
• CouchDB
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
キーバリュー型
• Riak
• Redis
No SQL
- 5. Vertica 概要
•
•
•
•
•
•
2005年 分析用DBソフトウェアベンダーとして設立
本社:米国 マサチューセッツ州
Michael Stonebrakerが産みの親
Postgres, C St の開発者
P t
C-Storeの開発者
注目ベンチャーとして数々の賞を受賞
2011/3/22 HPが買収完了を発表
2012/12/1 HPに統合完了
/ /
統合完了
Michael Stonebrakerが開発に関わったデータベース
1970
1980
2000
2010
INGRES
POSTGRES
C-store
H-store
RDBMS
Object DB
Columnoriented DB
In-Memory
DB
Sybase
S b
SQL Server
Aster Data
A
D
Vertica
技術継承
Greenplum
HP
Netezza
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
5
VoltDB
- 7. 検索に最適な列指向のデータ格納
全ての列を読み込み
行指向 - 従来型
SELECT AVG(price) FROM tickstore
WHERE symbol = ‘AAPL” AND date = ‘5/06/09’
AAPL
AAPL
BBY
BBY
NYASE
NYAASE
NYSE
NYASE
NGGYSE
NYGGGSE
NYSE
NYSE
NYSE
NYASE
NYAASE
NYSE
NYASE
NGGYSE
NYGGGSE
NYSE
NYSE
NYSE
NYASE
NYASE
NYAASE
NYAASE
NYSE
NYSE
NYASE
NYASE
NGGYSE
NGGYSE
NYGGGSE
NYGGGSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
143.74
143.74
37.03
37.13
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
NYSE
列指向 - Vertica
7
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
143.74
143.75
37.03
37.13
37 13
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
NYSE
NYASE
NYSE
143.74
NYAASE
NYSE
143.74
NYAASE
37.13
NYSE
NYSE
NYSE
NYSE
NYASE
NYSE
NYSE
NGGYSE
NYSE
NYSE
NYGGGSE
NGGYSE
NYSE
N
5/05/09
NYSE
NGG YSE
NYASE
NYSE
NYAASE
NGGYSE
NYSE
NYASE
NYSE
37.03
NYASE
NYASE
NYSE
NYGGGSE
5/06/09
NYGGGSE
NYSE
5/05/09
NYGGGSE
NYSE
5/06/09
3列のみ読み込み
SELECT AVG( i ) FROM ti k t
AVG(price)
tickstore
WHERE symbol = ‘AAPL” AND date = ‘5/06/09’
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYASE
NYSE
BBY
AAPL
AAPL
BBY
BBY
NYAASE
NYSE
NYSE
BBY
NYSE
NYASE
NYSE
AAPL
5/05/09
5/06/09
5/05/09
5/06/09
NYSE
NYSE
AAPL
YSE
5/05/09
5/06/09
5/05/09
5/06/09
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
AAPL
AAPL
BBY
BBY
143.74
143.75
37.03
37.13
5/05/09
5/06/09
5/05/09
5/06/09
- 9. 計算してみましょう!
行のサイズ : 1KB
読み込む行数:10,000,000行 (1,000万行)
必要なカラム数:3
必要なカラムの合計サイズ:30B
読み込みが必要なデータ量は?
行指向の場合
1KB x 10,000,000行 = 10GB
列指向の場合
30B x 10,000,000行 = 300MB
9
1 / 33
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
100MB / sec読めるストレー
ジを使ったとすると…
100秒
3秒
- 10. INSERT, DELETE, UPDATEはどうなるのか?
INSERT
DELETE (削除マークをつけるだけ)
UPDATE (内部的にDELETE + INSERTを実行)
Read Optimized Store
(ROS)
Write Optimized Store
(WOS)
(
)
TUPLE MOVER
• 列指向ストア
• ディスク上
• ソート済/圧縮済
• 大量データを直接ロード
非同期データ転送
行指向ストア
メモリ上
MOVE OUT
未ソ ト/非圧縮
未ソート/非圧縮
10
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
A
B
C
- 11. MERGE OUT
Read Optimized Store(ROS)
Write Optimized Store
(WOS)
TUPLE MOVER
• 列指向ストア
• ディスク上
• ソート済/圧縮済
A
B
C
メモリ上
A
B
C
未ソート/非圧縮
A
B
C
非同期データ転送
行指向ストア
Read Optimized Store(ROS)
MERGE OUT
バックグランド処理
11
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
A
B
C
- 13. 圧縮
列ごとにデータを格納しているので、効率的な圧縮が可能
列ごとにデ タを格納しているので 効率的な圧縮が可能
データの属性に応じた最適な圧縮アルゴリズムを使⽤
データ検索時のI/O量が減り、より⾼速な処理を実現
処理日
5/05/2009, 16
5/05/2009
5/05/2009
5/05/2009
5/05/2009
5/05/2009
5/05/2009
5/05/2009
5/05/2009
5/05/2009
5/05/2009
5/05/2009
RLE
アルゴリズム
13
お客様番号
取引データ
0000001
0
0000001
2
0000003
2
0000003
4
0000005
10
0000011
10
0000011
19
0000020
25
0000026
49
0000050
0000051
0000052
ÞìÃp:±æ+©>
Þ 100.25 ©>
æ
302.43
Hì&ì¥YÛ¡×¥
991.23
©éa½?50ÓJ
73.45
134.09
843.11
208.13
208 13
114.29
83.07
43.98
229.76
Delta
D l
Encoding
LZO
アルゴリズム
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
計算してみましょう!
列指向ストアで1/33になった読込
データが、1/10に圧縮されていたと
すると…
1/33 x 1/10 = 1/330 になります。
- 14. 列指向データベースに(ほぼ)共通して見られる実装
Vertica,
V ti SAP HANA, SQL Server 2012 P ll l Data W h
HANA
S
Parallel D t Warehouseを例に
を例に
• 列指向ストアにより、検索時の読み込み量を削減
• デ タに応じて複数の圧縮方法を使い分け 非常に高い圧縮
データに応じて複数の圧縮方法を使い分け、非常に高い圧縮
率を実現
• Tuple Moverを使用した処理
•
•
•
•
•
14
更新処理は、いったん行指向ストアでメモリに書き込む
Tuple Moverが列指向ストアの形式に変更して、ストレージに書き込む
検索処理は、両方の領域のデータを読んで処理する
DELETEは削除マークをつけるだけ、UPDATEはDELETE+INSERTを実行
ロ ディングはTuple
ローディングはTuple Moveを通さずに実行する
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 15. HP AppSystem for SAP HANA
Other Applications
SAP BusinessObjects
インメモリーテクノロジー搭載のアプライアンス製品
インメモリ テクノロジ 搭載のアプライアンス製品
-アプライアンスはHPから、ライセンスはSAPからご提供ー
MDX
SQL
SQL
BICS
SAP HANA®
オープンインターフェイス(ODBC、JDBC、SQL、MDXに準拠)
SAP HANA Studio
データベースモデリング・運用管理
SAP HANA デ タ
データベース
ス
行・列型ストア
リアルタイム
データレプリケーション
計算・計画
エンジン
バッチ データロード
ハ ッチ テ ータロート
(ETL)
Real Time Replication / ETL
SAP Business Suite
15
SAP NetWeaver BW
インメモリーテクノロジー(リアルタイムに大量データをメモリ上で処理する技
術)を搭載
データ移行
ETL(Data services)機能により3rd partyデータソースの取り込みも容易に。
partyデ タソ スの取り込みも容易に。
また、SAP Landscape Transformationを使用することにより、リアルタイムの
データ複製が可能
パフォーマンス
全てのデータがインメモリー上にあり(物理ディスクではなく物理メモリ上に
全てのデ タがインメモリ 上にあり(物理ディスクではなく物理メモリ上に
論理領域を作成してデータやログを書きこむ)ため、Disk I Oボトルネックを解
消。
インデックスのパーティショニングにより各サーバ(Core)で並列処理が可能。
結果大幅なパフォーマンス向上につながる。
3rd Party DB
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 16. HANAの列指向ストア
列指向と行指向の両方をサポート
圧縮
Run Length Encoding, 辞書圧縮など、5種類の圧縮アルゴリズムを使用
更新処理
Data Table (列指向)
Data Table (列指向)
456
1000
456
France
corn
1000
Italy
wheat
900
457
Italy
corn
900
458
Italy
corn
600
458
Italy
corn
600
459
16
corn
457
INSERT
DELETE
UPDATE
France
Spain
rice
800
459
Spain
rice
800
460
Denmark
corn
600
delta
merge
Delta Store (行指向)
update
457
Italy
corn
900
Insert
460
Denmark
corn
600
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 17. HP AppSystem for SQL Server 2012 Parallel Data Warehouse
1. ビッグデータ時代の大量データを高速に処理。
2. Hadoopと連携して、Webログやソーシャル・データの分析が可能。
3. Excelを使うことで、現場担当者自らがビッグ・データを分析。
高速
ExcelでBI
SQL Serverを超並列(MPP)
化し、カラム型技術を搭載
することで、高速な処理を
実現しています。
17
Hadoopとの連携
Hadoopとの高速な連携を
実現。Hadoopで処理され
た非構造化データと、DBに
蓄積されたデータの相関
分析を可能にします。
Microsoft製品だけにExcel
との相性は抜群。誰でも使
えるExcelでビッグデータを
誰でも扱えるようにします。
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 18. SQL Server 2012 Parallel Data Warehouseの列指向ストア
Clustered ColumnStoreとして列指向ストアを実装 (SQL Server 2012のColumnStore
Indexとは異なります。)
Delta Storeにデータがたまると、REORANIZEを実行。(VerticaのMOVE OUTに相当)
その後、削除された領域の解放 (REBUILD)を実行。(VerticaのMERGE OUTに相当)
そ 後 削除された領域 解放 (
)を実行 (
相当)
C1
C2
C3
C4
C5
C6
Column
Store
BULK INSERT
Deleted
Bitmap
Tuple
Mover
INSERT
DELETE
UPDATE
18
Delta
Store
C1
C2
C3
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
C4
C5
C6
- 21. C-Store(Vertica)の設計思想
“C-Store: Column-Oriented DBMS ” Stonebraker al.
“C Sto e A Col mn O iented DBMS.” Stoneb ake et al VLDB 2005
2005.
• Compress columns
• No alignment
• Bi di k blocks
Big disk bl k
• Only materialized views (perhaps many) → Projection
• Focus on Sorting not indexing → Indexよりsortが重要
•
Data ordered on anything, not just time
• Automatic physical DBMS design → 物理デザインの自動化
• O ti i f grid computing
Optimize for id
ti
• Innovative redundancy
• Xacts – but no need for Mohan
• Column optimizer and executor → 列指向専用オプティマイザ
21
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 22. Projection
最適な圧縮と最適な列配置と最適なソートが事前に実施されたデータセット
最適な圧縮と最適な列配置と最適なソ トが事前に実施されたデ タセ ト
表A
Super Projection
Comprehensive Projection
圧
縮
圧
縮
圧
縮
圧
縮
表B
圧
縮
圧
縮
圧
縮
圧
縮
圧
縮
表の実態
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
SELECT A.5c,B.2c from TableA,TableB where A.3c = B.3c;
22
圧
縮
Database Designer
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
圧
縮
圧
縮
圧
縮
- 23. Projectionを使ったデータの絞り込み
Gender
F
F
F
F
F
F
F
F
F
F
M
M
M
stM
M
M
Reads entire
1 I/O
Class
Freshman
Freshman offset
Junior
Junior
Junior
Junior
Junior
Senior
Sophomore
nd
d
Sophomore
Freshman
Junior
Sophomore
Sophomore
Senior
S i
Senior
2 I/O
/O
Grade
A
A
A
A
C
D
D
A
D
rd F
d
A
D
B
B
C
D
Score
offset
3 I/O
/O
95
96
90
100
76
63
68
92
62
th59
91
67
82
85
76
64
4 I/O
/O
column
Example query:
select avg( Score ) from example where
Class = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
23
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Name
Student_ID
Popovic,
Popovic, Tanisha
Borba,
Borba, Milagros
Stober,
Stober, Saundra
Trembley,
Trembley, Allyson
Orner,
Orner, Katy
Lessig,
Lessig, Elnora
Sosnowski,
Sosnowski, Hillary
Dalal,
Dalal, Alana
Cappiello,
Cappiello, Emilia
Nibert,
Nibert, Emilia
Sinko,
Sinko, Erik
Porcelli,
Porcelli, Darren
Thon, Max
Tarvin,
Tarvin, Julio
Schreckengost, M
Schreckengost, Max
S h k
t
Frigo,
Frigo, Avis
1267170
1249290
1210466
1246648
1278858
1222781
1244262
1254038
1256678
1252490
1230382
1243483
1231806
1240224
1248100
1230807
- 25. リアルタイム・マーケティング事例
Zynga, Inc. – オンライン ゲ ム会社
Z
I
オンライン・ゲーム会社
• ゲーム体験をパーソナライズ
“4,000万人以上のプレー
することで、ユーザを繋ぎ止め、 ヤーからは発生する1日当り
収入を向上させる。
を向
3TBのデータを、230ノードク
• 個人個人の行動から、インフ
ルエンサを見出す。
ル ンサを見出す
• 世界最大のVerticaユーザの
一つ。1日に3TB以上のデータ
つ 1日に3TB以上のデ タ
をロードしている。
25
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
ラスタで構成したVerticaに
毎日ロードしています。
Verticaを使用したZyngaの
列指向データベースは、真
の分析ツールです。”
- Ken Rudin, VP Analytics
- 26. Verticaを使用したデータ分析リファレンス・アーキテクチャ
Gather
非構造化
データソース
e.g. social media
l d
Video
images
データソース
&EDW
外部ソース
外部ソ ス
e.g.D&B
Acxiom
26
Create
Infuse
Vertica Platform
Unstructured
Data
非構造化
データストア
HADOOP
Act
分析アルゴリズム
SQL +
Q
Analytic
Extensions
構造化デ タ
構造化データ
Hadoop
コネクタ
Vertica
Database
R Analytics
UDX
C++
SAS/ACEESS
Interface to Vertica
SAS
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
SAS 分析者
分析者
分析インター
フェース
フ
ス
Tableau.
Spotfire etc.
センチメント分析関数
twitter API
- 28. Vertica Community Edition
テストを目的として、1Tbyte、3ノードまで、無料 及び無期限で利用可能
まずは、Community EditionでVerticaの
魅力を体感ください。
https://my.vertica.com/community/
My Verticaというサイトにて登録後、ダウンロードが可能です。
• 容量: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台の制限無し、
製品保守付き)へ、オンラインでライセンス適用することが可能です。
製品保守付き)
オンラインでライセンス適用することが可能です
※データ容量が1Tbyteを場合、select/deleteなどが出来なくなり、それ以降のデータの追加ができません。EnterpriseEditionへの移行をご検討ください
28
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 29. ご静聴ありがとうございました
静聴ありがとう ざ ました
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.