[c31]世界最速カラムナーdbは本物だ! by daisuke hirama
TRANSCRIPT
世界最速 カラムナーDBは本物だ!
ParAccel SMP (Vectorwise)
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
平間 大輔
Insight Technology, Inc.
世界最速?
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
世界最速!
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
Price/Performance
US$/QphH@1TB
0
Performance
(QphH@1TB)
TPC-H ベンチマークのトップ 8(Non-Clustered 1TB ) 2013/7/11時点
TPC, TPC Benchmark, TPC-H, QppH, QthH and QphH are trademarks of the Transaction Processing Performance Council (TPC)
Source: www.tpc.org / Jul 11, 2013
Sybase IQ 15 Dec 2010
164,747
$1.37 US $6.85 US
Vectorwise 3 May 2011
$0.88 US
436,788 173,961
Microsoft 5 Apr 2011
80 cores 2TB RAM
32 cores 1 TB RAM
$9.53 US $1.86 US
Microsoft 30 Aug 2011
Oracle 3 Jun 2011
64 cores 0.5TB RAM
209,533
Oracle 26 Sep 2011
201,487
$4.60 US
80 cores 2TB RAM
219,887
$12.15 US
Oracle 26 Apr 2010
64 cores 0.5TB RAM
140,181
32 cores 0.5TB RAM
32 cores 0.5TB RAM
Vectorwise 6 Jan 2012
$0.75 US
445,529
32 cores 0.75 TB
RAM 100,000
300,000
400,000
200,000
ParAccel SMP (Vectorwise)のイノベーション
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
Tim
e /
Cyc
les
to
Pro
cess
Data Processed
DISK
RAM
CHIP
10GB 2-3GB 40-400MB
2-20
15
0-25
0 M
illio
ns
• カラム指向データベース
• 圧縮
• 効率的なブロックI/O
• Queryの並列処理
• CPUの最適化 (オンチップコンピューティング)
カラム指向データベースのメリット
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ブロックには同様のタ
イプのデータが格納され
ているので圧縮効率を
上げやすい
カラム指向データベースのデメリット
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)
自動的な圧縮と解凍
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
• 複数のアルゴリズムを使ってカラム毎に圧縮
– 最適なものをParAccel SMPが自動的に使用
• 解凍はベクトル処理
– CPUキャッシュ中でデータ処理
RAM
カラム
バッファ
管理
Disk
カラ
ム
CPU
キャッシュ
解凍
RAMへの書き込み・
読み込みを削減
I/Oスループット
を最大化
CPUキャッシュ中に
解凍し格納
CPUキャッシュ内で処理
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
• CPUキャッシュのアクセスは、RAMより非常に高速
• すべてのベクトルがCPUキャッシュ内に収まるように問合せの実行プランを作成
Tim
e / C
ycle
s
to P
rocess
Data Processed
DISK
(HDD/SSD)
RAM
CHIP
10GB 2-3GB 40-500MB
2-2
0
15
0-2
50
M
illio
ns
アクセスタイム
転送スピード(毎秒)
DISK 10-15ms 40-100MB
CPU キャッシュ
サイズ
Xeon 512KB/1-2MB
Xeon 50X0 4MB
Xeon 33X0 8 – 12MB
Xeon E7-88XX 24 – 30MB
アクセスタイム
転送スピード(毎秒)
DISK 10-15ms 40-100MB
RAM 150-200ns 2-3GB
アクセス
タイム 転送スピード
(毎秒)
HDD 10-15ms 40-100MB
SSD 0.1-1ms 200-500MB
RAM 150-200ns 2-3GB
Cache 2-20ns 10GB
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
SSE(ストリーミング SIMD 拡張命令)
16個の128bitのレジスタ
(Intel Sandy Bridgeは256bit)
*32bit float * 4
*16bit integer * 8
*8bit byte/char * 16
etc.
*加減算、積除算、比較、最大最小など
*文字列の処理でSSE4.2が効果大
(GROUP BYやLIKEなど)
SSE2はPentium 4, AMD64以降
SSE3は後期Pentium 4,
後期Athlon64以降
SSE4は後期Core2以降
=
.
.
.
1 1 x = 1 2 2 x = 4
3 3 x = 9 4 x 4 = 16 5 x 5 = 25 6 x 6 = 36 7 x 7 = 49 8 x 8 = 64
n x n = n2
1 2 3 4 5 6 7 8 n
1 2 3 4 5 6 7 8 n
xxxxxxxx . . . x
1 4 9 16 25 36 49 64 . . . n2
ベクトル処理とキャッシュ最適化
SIMD (Single Instruction Multiple Data)
ロードを含めた性能比較
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)
いろいろ
環境
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
TPC-H(dbgen) 10GBをロード時のパフォーマンス(秒) – インデックスなし -
MySQL 5.1
PostgreSQL 8.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
Vectorwise 3.0
某カラムナーDB(1)
某カラムナーDB(2)
ロードを含めた性能比較
Copyright © 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)
ロードを含めた性能比較
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
TPC-H(qgen) 10GBに対するQuery時のパフォーマンス(秒) - キャッシュなし -
MySQL 5.1
PostgreSQL 8.4
Query1
Query3
Query4
Query6
Query7
Query8
Query9
Query10
Query11
Query12
Query13
Query14
Query16
Query18
Query19
Query20
Query21
Query22
Total
商用RDBMS X
Vectorwise 3.0
某カラムナーDB(1)
某カラムナーDB(2)
MySQLはインデックスなしでは返ってこないので、Primary Keyのみ付与
ロードを含めた性能比較
DEMO
Copyright © 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万件の解析後の語句
データから日本でホット
だったキーワードを探って
みると?
Copyright © 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
ParAccel SMP DBMS X
DEMO
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
DEMO
ParAccel SMP (Vectorwise)の歴史
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
x100
‘08
‘10
’11
~‘08
’13 ParAccel SMP
Ingresとの内部構造比較
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
SQL Parser
Ingres Rewriter
Ingres Optimizer
Ingres Storage & Executor
SQL Parser
Ingres Rewriter
Ingres Optimizer
Classic Ingres Storage
& Executor
X Compiler
Vectorwise Rewriter
Vectorwise Executor
Compressed PAX/DSM
Modify
Heavy Modify
Add
&
とある導入事例
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
某RDBMS
某RDBMS
某BIツール
某BIツール
目標:チャートの表示時間を現行の1/4に!
速くなる、はずが…
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
*チャート名は、顧客との守秘義務の為、一部変更しております
チャート名 現行 導入後
(修正前)
トップ 186 秒 74 秒
メーカー 77 秒 66 秒
メーカー_規格詳細 11 秒 128 秒
メーカー_品目詳細 16 秒 156 秒
品目 129 秒 66 秒
品目_詳細 28 秒 204 秒
製品カテゴリ 51 秒 7 秒
製品カテゴリ(抜粋) 11 秒 4 秒
製品カテゴリ(抜粋)_詳細 47 秒 8 秒
製品カテゴリ(抜粋)_全店舗一覧 165 秒 22 秒
製品カテゴリ(抜粋)_全店舗一覧(スクロールなし) 88 秒 12 秒
製品カテゴリ_詳細 62 秒 9 秒
製品カテゴリ_全店舗一覧 248 秒 23 秒
製品カテゴリ_全店舗一覧(スクロールなし) 127 秒 16 秒
顧客 60 秒 15分以上
すんなり導入、とはいきませんが…
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
• 動作のクセを見抜け!
– ビューの有無や結合の仕方による速度の違い
• 「サポートしている=快適に動く」とは限らない
– BIツールが吐く「非効率なSQL」を制御せよ
• 運用に関する情報は?
– バックアップは?リカバリは?
– Ingresとの共通点多し
乗り越えれば、世界最速が待っている
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
*チャート名は、顧客との守秘義務の為、一部変更しております
チャート名 現行 導入後
(修正前)
導入後
(修正後) 短縮率
トップ 186 秒 74 秒 14 秒 92.46 %
メーカー 77 秒 66 秒 19 秒 75.32 %
メーカー_規格詳細 11 秒 128 秒 2 秒 82.35 %
メーカー_品目詳細 16 秒 156 秒 3 秒 81.25 %
品目 129 秒 66 秒 35 秒 72.87 %
品目_詳細 28 秒 204 秒 5 秒 82.14 %
製品カテゴリ 51 秒 7 秒 7 秒 86.27 %
製品カテゴリ(抜粋) 11 秒 4 秒 4 秒 62.50 %
製品カテゴリ(抜粋)_詳細 47 秒 8 秒 8 秒 83.10 %
製品カテゴリ(抜粋)_全店舗一覧 165 秒 22 秒 22 秒 86.64 %
製品カテゴリ(抜粋)_全店舗一覧(スクロールなし) 88 秒 12 秒 12 秒 86.31 %
製品カテゴリ_詳細 62 秒 9 秒 9 秒 85.41 %
製品カテゴリ_全店舗一覧 248 秒 23 秒 23 秒 90.71 %
製品カテゴリ_全店舗一覧(スクロールなし) 127 秒 16 秒 16 秒 87.40 %
顧客 60 秒 15分以上 12 秒 80.00 %
•無断転載を禁ず
•この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。
•株式会社インサイトテクノロジーは本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。
•本書で使用している製品やサービス名の名称は、各社の商標または登録商標です。