d22 目覚めよdbエンジニア 〜世界最速カラムナーデータベースは本物だ!〜...

29
Copyright © 2013 Insight Technology, Inc. All Rights Reserved. Insight Technology, Inc. 新久保 浩二 目覚めよDBエンジニア 世界最速カラムナーデータベースは本物だ!

Upload: insight-technology-inc

Post on 10-Jun-2015

2.414 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Insight Technology, Inc.新久保 浩二

目覚めよDBエンジニア

世界最速カラムナーデータベースは本物だ!

Page 2: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

2Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Who am I ?

1. Insight Qube & Vectorwise & Any DBs

2. おら オラ Oracle どっぷり検証生活

2. Oracle ACE

3. @kouji_s_0808

4. JPOUG(Japan Oracle User Group)

本資料に使用されている社名、ロゴ、製品、サービス名およびブランド名は、該当する各社の登録商標または商標です。本資料の一部あるいは全体について、許可なく複製および転載することを禁じます。

Page 3: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

3Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

DBのイノベーションはとっくの昔におきてます

Page 4: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

4Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

197x

Oracle(ORACLE)

鬼熱いRDBMS勢力地図

System R(IBM)

Ingres(Actian 旧Ingres)

主にOLTP用途

主にDWH用途

買収等

1975

Page 5: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

5Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

198xInformix

(Informix)

DB2(IBM)

Teradata(Teradata)

SQL Server(Microsoft)

PostgreSQL(Open Source)

主にOLTP用途

主にDWH用途

買収等

1985

Sybase(Sybase)

Non Stop SQL(Tandem)

Page 6: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

6Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

199x

MySQL(MySQL AB)

Symfoware(Fujitsu)

Sybase IQ(Sybase)

HiRDB(Hitachi)

主にOLTP用途

主にDWH用途

買収等

1995

Page 7: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

7Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

200xNetezza

(Netezza)

Informix(IBM)

Greenplum(Greenplum)

Vertica(Vertica)

Infobright(Infobright)

ParAccel(ParAccel)

Asterdata(Asterdata)

Vectorwise(Vectorwise)

Oracle Exadata(ORACLE)

MySQL(Sun Microsystems)

MonetDB(Open Source)

主にOLTP用途

主にDWH用途

買収等

2005

Page 8: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

8Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

201x

Vertica(HP)

Asterdata(Teradata)

Redshift(Amazon) ParAccel

(Actian 旧Ingres)

主にOLTP用途

主にDWH用途

買収等

Vectorwise(Actian 旧Ingres)

Sybase (IQ)(SAP)

Netezza(IBM)

Greenplum(EMC)

InfiniDB(Calpont)

SAP HANA(SAP)

MySQL(ORACLE)

2013

Page 9: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

9Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Non-Clusterで世界最速(TPC-H)

Page 10: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

10

Vectorwiseのイノベーション

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Tim

e /

Cycle

s

to P

rocess

Data

Processed

DISK

RAM

CHIP

10GB2-3GB40-400MB

2-2

01

50

-25

0M

illio

ns

CPUの最適化(オンチップコンピューティング)

カラム指向データベース

圧縮

CPUが持つSIMD機能をフル活用。※メモリより高速なCPUキャッシュ上でデータを処理することで、高速な処理を実現。

カラムごとの格納構造のため、分析において、不要なカラムを読み込まない。

データを、自動的にカラムごとに圧縮するため、高い圧縮率と効率的なデータ処理(領域の削減、I/O性能の向上)を実現。

Queryの並列処理

Queryを並列処理し、メニーコアに対する高いスケーラビリティ

効率的なブロックI/O

各データブロックに対して自動的に最大値、最小値を格納し、検索時に利用するストレージインデックス

Page 11: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

11

カラム指向データベースのメリット

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

• 列指向とは?

• メリットは?

(シーケンシャルな)アクセス効率 + データ圧縮 = 分析基盤に向いている

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Date

Date

Date

Date

Date

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Date

Date

Date

Date

Date

1ブロックには様々な

タイプのデータが格納

されているので圧縮効

率を上げにくい

1ブロックには同様の

タイプのデータが格納

されているので圧縮効

率を上げやすい

Page 12: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

12

カラム指向データベースのデメリット

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

• デメリットは?

一般的に

(ランダムな)アクセスが非効率 + データ圧縮 = OLTP基盤に向いていない

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Date

Date

Date

Date

Date

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Prod ID Prod Name

Date

Date

Date

Date

Date

更新時に圧縮・展開

のオーバーヘッドが

大きい(*1)

Page 13: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

13

ベクトル処理とキャッシュ最適化

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

SIMD (Single Instruction Multiple Data)

Pentium ⅢよりSSE(Streaming SIMD Extensions)として搭載され、Sandy BridgeよりIntel AVX(Advanced Vector eXtensions)へ

・・

・・

・・

・・

・・

Instruction

Data

Output

Page 14: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

14

+ 雑談

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

RDBMSは、1つの仕事しかしない。というわけがないので、あくまでも雑談レベルとしてみてください。上記は、各データベースの全インストラクション中に、XMMレジスタ(128ビット)を使った処理の割合です。VectorwiseがSIMDに最適化されたコード(であろうことが窺えます…)

4.3

1.3

0.4

1.7

0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0

Vectorwise(x100_server)

PostgreSQL

MySQL

某商用DB X

全インストラクション中に含まれるXMMレジスタを使用した割合(%)

Page 15: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

15

反響の多かったロードを含めた性能比較

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Redhat Enterprise

Linux 6.3 64bit

Intel Xeon L5640

2.27GHz(6core) * 2

48GB

SAS HDD * 2 (RAID1)

いろいろ

環境

Page 16: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

16

反響の多かったロードを含めた性能比較

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

TPC-H(dbgen) 10GBをロード時のパフォーマンス(秒) – インデックスなし -

MySQL5.1

PostgreSQL8.4

customer(234MB/1.5M rows)

lineitem(7416MB/60M rows)

nation(0MB/25 rows)

orders(1668MB/15M rows)

part(232MB/2.0M rows)

partsupp(1149MB/8.0M rows)

region(0MB/5 rows)

supplier(14MB/0.1M rows)

Total(10GB/86.6M rows)

Actual DB Size(10GB/86.6M rows)

商用RDBMS X

Vectorwise3.0

某カラムナーDB(1)

某カラムナーDB(2)

Page 17: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

17Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

反響の多かったロードを含めた性能比較

0

2

4

6

8

10

12

14

16

18

0

200

400

600

800

1000

1200

1400

PostgreSQL8.4

MySQL5.1

商用RDBMS

X

Vectorwise3.0

某カラムナー

DB(1)

某カラムナー

DB(2)

データロード性能

データサイズ(GB) ロード時間(秒)

(秒) (GB)

Page 18: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

18

反響の多かったロードを含めた性能比較

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

TPC-H(qgen) 10GBに対するQuery時のパフォーマンス(秒) - キャッシュなし -

MySQL5.1

PostgreSQL8.4

Query1

Query3

Query4

Query6

Query7

Query8

Query9

Query10

Query11

Query12

Query13

Query14

Query16

Query18

Query19

Query20

Query21

Query22

Total

商用RDBMS X

Vectorwise3.0

某カラムナーDB(1)

某カラムナーDB(2)

MySQLはインデックスなしでは返ってこないので、Primary Keyのみ付与

Page 19: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

19

実際にPoCを実施した結果(チラっと)

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Redhat Enterprise

Linux 6.3 64bit

Intel Xeon E5-4650

2.70GHz(8core) * 4

512GB

SAS SSD * 8

(RAID10)

Vectorwise 2.5.1

環境

Page 20: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

20

某お客様にて、POSデータ分析のPoC

– Vectorwiseのデータ量と処理速度の関係• データ量を75億件、150億件、340億件と変えて同一SQLを実行

– VectorwiseのCPU数と処理速度の関係• 使用するCPU数(Vectorwise側で)を変えて同一のSQLを実行

– SQLイメージ(インデックスなし)購買年齢層別売上金額

“SELECT age, sum(amt) FROM pos GROUP BY age”

店舗指定(範囲)売上金額

“SELECT shop,sum(amt) FROM pos

WHERE shop BETWEEN 2 and 5 GROUP BY shop”

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

実際にPoCを実施した結果(チラっと)

Page 21: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

21Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

実際にPoCを実施した結果(チラっと)

2.19

4.2

9.67

0

2

4

6

8

10

12

75億件 150億件 340億件

経過秒数(秒)

店舗指定(範囲)売上金額

1.47

1.821.72

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

75億件 150億件 340億件

経過秒数

購買年齢層別売上金額

データ量と処理速度の関係

Page 22: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

22Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

実際にPoCを実施した結果(チラっと)

9.67 14.69

27.37

53.84

105.33

0

20

40

60

80

100

120

DOP=32 DOP=16 DOP=8 DOP=4 DOP=2

経過秒数(秒)

購買年齢層別売上金額

1.722.77

5.09

9.53

18.53

0

2

4

6

8

10

12

14

16

18

20

DOP=32 DOP=16 DOP=8 DOP=4 DOP=2

経過秒数

店舗指定(範囲)売上金額

CPU数と処理速度の関係(340億件固定)

Page 23: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

23

アプライアンスはイノベーションか?

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

肝は、- H/W性能を徹底的に使い切る

S/Wのイノベーション

- S/W特性に合わせた最新H/Wのコンフィグレーション

Page 24: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

24

H/Wのイノベーションも活用

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

×136

H/W: 汎用サーバー H/W: Insight QubeH/W: 汎用サーバー

×13

Page 25: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

25Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

99%

1%

tweets demo tweets

世界中のツイート(*1)の1%

を抽出

(2012/4/23 - 2012/4/25)

ツイートの語句解析(MeCabに

よる形態素解析)

データベースにロード

デモのためデータを5倍に増幅

- ツイートデータで1000万件

(10GB)

- 解析後語句データで260万件

(100MB)

データロードは各データベースベ

ンダーが用意するローダーを使用

1000万件のツイートデータ

から世界のツイート数の国別

ランキングを出してみると?

1000万件のツイートデータ

から世界のツイートの時間帯

別ツイート数の推移を見てみ

ると?

1000万件のツイートデータ

と260万件の解析後の語句

データから日本でホット

だったキーワードを探って

みると?

+DEMO

Page 26: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

26Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Redhat Enterprise

Linux 5.7 64bit

Intel Xeon X5672

3.20GHz * 2

48GB

Redhat Enterprise

Linux 5.7 64bit

Intel Xeon E5645

2.40GHz * 4

48GB

SATA SSD * 6

(RAID10)

Vectorwise 2.5.1

SATA 1K rpm HDD *

18 (RAID50)

DBMS X

Vectorwise DBMS X

+DEMO

Page 27: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

27

+DEMO

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

Page 28: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

28Copyright © 2013 Insight Technology, Inc. All Rights Reserved.

DBのイノベーションはとっくの昔におきてます

そのDWHシステムは、そのデータベースでいいんですか?

Page 29: D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo

29Copyright © 2013 Insight Technology, Inc. All Rights Reserved.