...

POPS Benchmark Report On Regatta

by user

on
Category: Documents
36

views

Report

Comments

Transcript

POPS Benchmark Report On Regatta
POPS Benchmark Report
On
Regatta
Integration Services
Software Development Laboratory - Yamato (YSL), SWG
測定概要
3
POPS 測定について ............................................................................................................ 3
Hardware 構成 ...................................................................................................................... 3
データベース構成........................................................................................................... 4
スキーマレイアウト....................................................................................................... 4
Segmentation..................................................................................................................... 4
Data ................................................................................................................................... 4
Query の発行の仕方........................................................................................................ 4
2. データロード測定結果および考察 6
TMU のパラメータ設定 (Non Default) ............................................................................. 6
ロード測定結果................................................................................................................... 6
データローディング並列度をあげての測定................................................................... 8
ローディング性能............................................................................................................... 9
3. Query の測定結果および考察 11
パラメータの設定............................................................................................................. 11
データベースサイズごとの測定結果............................................................................. 11
Query の種類ごとの測定結果.......................................................................................... 13
4-way CPU と 8-way の違い ............................................................................................. 16
Query の範囲の性能に対する影響.................................................................................. 18
4. rPerf と POPS 測定結果との比較 20
Appendix............................................................................................................................. 21
Appendix A – ハードウェア構成詳細......................................................................... 21
Appendix B – Query の詳細 .......................................................................................... 23
Appendix C – POPS 測定結果一覧............................................................................... 27
1.
1. 測定概要
POPS 測定について
POPS は Proof Of Performance and Scalability の略でありこの測定により RedBrick の性能の良さを証明
する
Datawarehouse のエリアではInsert/Updateが機能/性能に要求されることは少なく
Oracle/DB2 は比較の対象にならず、OLTP 系のベンチマークは不適切である。そこで Red Brick では
実際のお客様の使用シナリオ/データベースに沿った性能測定(性能証明)の方法として、POPS
(Proof of Performance and Scalability)という独自の方法でいかに大量のデータを RedBrick が
処理できるかを示している。
Hardware 構成
P690-681 (Regatta)
z 1.1GHz 8way
z 32GB memory
z 36.4GBx4
SSA Disks
z
18.2GB x 16
データベース構成
スキーマレイアウト
このベンチマーク・テストは、実際の小売業のビジネス・モデルとそのトランザクションを反映した
環境で実施され、具体的には、食料雑貨店 63 店舗、1 万 9 千点以上の商品、1 日当たりおよそ 360 万
件のトランザクション、35 の販促活動項目といった環境を設定し、テストを実行する。このデー
タ・ウェアハウスには、下記の 2 つのファクト・テーブル(日次売上予測と日次売上実績)とディメ
ンション・テーブル(顧客、期間、商品、販促、店舗)が含まれている。
下図のように5個のディメンジョンテーブルと2個のファクトテーブルからなっている。
Customer
Daily_Sales
Product
Store
Daily_Forecast
Promotion
Period
図 1-1 POPS スキー
Segmentation
Data
10 日分、100 日分、300 日分のデータを用意し、それぞれについて測定を行った。
それぞれのデータは以下の表のように、1996/01/01 を基準に作成されている。
表 1-1 – 使用されたデータのサイズ
Data range
Corresponding period
10 days
100 days
300 days
1996/01/01 - 1996/01/10
1996/01/01 - 1996/04/09
1996/01/01 - 1996/10/26
Data size of
Daily_Forecast
0.308 GB
3.08 GB
9.24 GB
Data size of
Dialy_Sales
14.8 GB
148 GB
444 GB
Query の発行の仕方
10 のクエリーが用意されており、各ユーザーは、これら 10 のクエリーを 10 秒のインターバルを置
いて順に実行する。
ユーザー数は、1、5、10、20、50、100、300 について測定を行った。
なお、複数ユーザーの時は、最初のユーザーがクエリーをスタートしてから 5 秒後に次のユーザーが
スタートする。
1st u ser
q u e ry 1
2n d u ser
3 rd u ser
5 sec
q u e ry 2
q u e ry 3
q u e ry 4
q u e ry 5
q u e ry 6
q u e ry 7
q u e ry 8
q u e ry 9
q u e ry 1 0
図 1-2 – Query の発行の仕方
10sec
2. データロード測定結果および考察
TMU のパラメータ設定 (Non Default)
Daily_Forecastは、以下のセッティングでロードを行った。
表 2-1 – Daily_Forecast ロード時のパラメータ設定
Parameters for DAILY_FORECAST
TMU BUFFERS
INDEX TEMPSPACE DIRECTORIES
INDEX TEMPSPACE THRESHOLD
INDEX TEMPSPACE MAXSPILLSIZE
Values
1024
/rbdata/rbs10
256M
5G
Daily_Salesについては、以下のセッティングでロードを行った。
表 2-2 – Daily_Sales ロード時のパラメータ設定
Parameters for DAILY_SALES
TMU BUFFERS
INDEX TEMPSPACE DIRECTORIES
INDEX TEMPSPACE THRESHOLD
INDEX TEMPSPACE MAXSPILLSIZE
Values
1024
/rbdata/rbs10
/rbdata/rbs11
256M
10G
ロード測定結果
Loading time for Daily_Forecast
2000
Elapsed time in seconds
1800
1600
1400
1200
1000
800
600
400
200
0
0
50
100
150
200
Data range in days
図 2-1 –Daily_Forecast のロード時間
250
300
Loading time for Daily_Sales
12
Elapsed time in hours
10
8
6
4
2
0
0
50
100
150
200
Data range in days
250
300
図 2-2 Daily_Sales のロード時間
ロードしたデータ量を横軸に所要時間を縦軸に表した図 2-1、図 2-2 をみればわかるようにそれぞれ
のファクトテーブルにおいてデータ量に比例して、線形に所要時間が増加しているのが分かる。
Loading time for Daily_Forecast and Daily_Sales
45000
Elapsed time in seconds
40000
35000
30000
25000
20000
15000
10000
5000
0
0
50
100
150
200
250
300
Data size in GB
350
400
450
図 2-3 Daily_Forecast と Daily_Sales のロード時間の比較
また、Daily_Forecast と Dialy_Sales をテーブルに格納された時のサイズを横軸にして、一緒にプロットした図
2-3では・ Dialy_ForecastとDialy_Salesが線形につながらない。これはデータロードではインデックスの作成な
どが行われており、テーブルの複雑さが所要時間の違いを引き起こしていると考えられる。従って所要時間
の見積もりは、テーブルごとに少ないサイズのロードを行って、その値から線形に見積もるのがよいと考えら
れる。
10days data load
3000
100
us
sy
2500
wa
avm
60
2000
avm (MB)
Utlization (%)
80
1500
40
1000
20
500
0
0
00:00:00
00:07:12
00:14:24
00:21:36
00:28:48
00:36:00
Time
図 2-4 10days データロード時の vmstat
また、図 2-4 に 10days のデータロード時の vmstat の値を示す。これから使用メモリー量はロード時
には、ほぼ一定で推移してることがわかる。また、今回のハードウェア構成の場合、I/O バウンドと
はなっていないことがわかる。また、8way すべての CPU を使ってもいないことがわかる。これは
ロードの処理すべてが並列化できないこと(Table Management Utlility Reference Guide 図3−1参
照)ためと考えられる。
データローディング並列度をあげての測定
ロード時のConversion Task並列度をあげて、(上記のパラメータに以下のセッティングを追加して)ロードを行
った。本テストではCPUは8wayなので、「TMU CONVERSION TASKS」のデフォルト値はその半分の4である。
表 2-3 並列度を向上するパラメータ
Parameters for parallel load test
TMU CONVERSION TASKS
Values
8
Loading time for Dialy_Forecust (CPU-ways and parallelism)
8-way 4-parallel
8-way 8-parallel
4-way 4-parallel
Elapsed time in second
70
60
50
40
30
20
10
0
10
Data range in days
図 2-5 Conversion タスクの並列度をあげた測定 Daily_Forecast
Elapsed time in minutes
Loading time for Dialy_Sales (CPU-ways and parallelism)
40
8-way 4-parallel
8-way 8-parallel
35
4-way 4-parallel
30
25
20
15
10
5
0
10
Data range in days
図 2-6 Conversion タスクの並列度をあげた測定 Daily_Sales
100
90
80
70
60
50
40
30
20
10
0
00:00:00
3000
2500
us
sy
wa
avm
2000
1500
1000
avm (MB)
Utlization (%)
10 days data load - Conversion Task=8
500
00:07:12
00:14:24
Time
00:21:36
0
00:28:48
図 2-7 Conversion タスクの並列度をあげた測定の vmstat
CPU 数と「TMU CONVERSION TASKS」がロード時間に及ぼす影響を示したもの。
Daily_Forecast については、CPU 数、Parallelism による影響はほとんど見られなかった。Daily_Sales
からは、CPU 数、Parallelism、ともに多いほうがロード時間が少ないことが分かる。また、CPU
Utlization(vmstat の us: user 使用時間)も増加している。
Daily_Forecast に比べて Daily_Sales はロードするデータが格段に多く、インデックスも複雑であるた
め、CPU 数と Parallelism の増加に対してパフォーマンスの改善が顕著に表れたと考えられる。また、
並列処理が有効なのはロード処理シーケンス内の一部のステージ(変換ステージとインデックス・ス
テージ)に限られるため、CPU 数や Parallelism が 2 倍になったからといって処理速度も 2 倍にはらな
い。
ローディング性能
Daily_Sales、Daily_Forecastの1日当たりの行数と、1行当たりのサイズを表にまとめたものが
表2-4であり、これをもとにロード性能をまとめたものが、表2-5である。
Table
Daily_Forecast
Daily_Sales
一日当たりの行数
1223475
11669320
行サイズ(Byte)
24
128
表 2-4 テーブルサイズ
ロード
日数
条件
10
100
300
Average
8-way 4-para
8-way 4-para
8-way 4-para
8-way 4-para
10
10
4-way 2-para
8-way 8-para
Daily_Forecast
ロード時間
速度
速度
(秒)
(GB/時) (行数/秒)
65
15.1
187000
655
15.0
186000
1931
14.8
183000
--15.0
185000
63
65
15.6
14.9
Daily_Sales
ロード時間
速度
速度
(秒)
(GB/時) (行数/秒)
1423
35.2
82200
12008
41.7
97400
40891
35.5
83000
--37.5
87500
193000
185000
1678
1119
29.8
44.7
69700
105000
表 2-5 ローディング性能 (速度のカラムは有効数字3桁で表記)
表 2-5 の Average の行は、8-way 4-paralell の測定結果を平均したものである。
Daily_Forecast と Daily_Sales の間にロード性能に差が見られるが、これは一行当たりの行サイズの違いが
原因と考えられる。Daily_Forecast は DailySales に比べて行サイズが小さいため、一行当たりのロードのデ
ータ数が少なく、速度(行数/秒)の値は高く出ている。反面、速度(GB/時)の値が小さくなる結果となってい
る。
3. Query の測定結果および考察
パラメータの設定
RedBrickに対して行ったでファールと以外に行った設定は以下のとおり。
Parameters
Values
TOTAL QURY PROCS
2000
QUERY PROCS
4
表 3-1 Query 性能測定時のパラメータ設定
データベースサイズごとの測定結果
Total Query Time (sec)
Total Query Time by Size
40000
35000
30000
25000
20000
15000
10000
5000
0
10days
100days
300days
0
50
100
150
200
250
# of concurrent users
300
350
図 3-1. Query 合計時間とユーザ数の増加
Elapsed Time by size
Elaspesed Time
12:00:00
10days
100days
300days
09:36:00
07:12:00
04:48:00
02:24:00
00:00:00
0
100
200
300
# of concurrent users
図 3-2. 測定時間とユーザ数の増加
400
すべての Query が処理されるのにかかった時間(Query1 から Query10 までの合計時間)と
Concurrent Users との関係を示した図 3-1 にしめした。また、10Query を User 数分だけ流すのに
かかった時間を図 3-2 に示す。
・Concurrent Users に対して線形に Total run time が増加している。
Table size(データ量)に着目すると、10days と 100days では Total run time は変わっているが、100days と
300days では Total run time についてはほとんど変化がない。これは別項で検証するが、Table サイズでは
なく、Query の範囲が処理時間を左右する要因であった。従って、100days と 300days の結果からみられるよ
うに RedBrick においてはデータサイズが増えても応答時間はほとんど変わらないことが示されている。
100
90
80
70
60
50
40
30
20
10
0
8000
7000
6000
us
sy
wa
5000
4000
avm
3000
avm(MB)
Utilization(%)
10daysの測定時のvmstat
2000
1000
0
11:02:2 12:14:2 13:26:2 14:38:2 15:50:2 17:02:2 18:14:2 19:26:2 20:38:2 21:50:2
4
4
4
4
4
4
4
4
4
4
時刻
図 3-3. 測定時間とユーザ数の増加
また、図3-3は10daysの1ユーザーから順に測定したときのvmstatの値であるが8wayなので8ユーザ以上に
なるまではCPU使用率が高くならないが、10ユーザー以上ではCPU使用率が100%近くになりCPUバウン
ドである。
Query の種類ごとの測定結果
Average elapsed time of each queries in 300 days data
Elapsed time in minutes
600
query1
query2
500 query3
query4
query5
400 query6
query7
300 query8
query9
query10
200
100
0
0
50
100
150
200
Concurrent users
250
300
図 3-4. Query ごとの Query 時間とユーザ数の増加
Average elapsed time of each queries in 300 days data
7
Elapsed time in minutes
6
5
4
3
2
1
0
0
50
100
150
200
Concurrent users
250
300
図 3-5. Query ごとの Query 時間とユーザ数の増加(Query4 を除いたもの)
Queryごとに、Queryが終了する平均時間をプロットしたもの。Query4が圧倒的に所要時間が多く、その他の
ものについては、Fig2に拡大してプロットしてある。
・Queryの種類によらず、同時アクセスユーザーが増加すると、平均所要時間は線形に増加している。
・どのQueryも1ユーザー時の方が5ユーザーの時より大きい値になっている。キャッシュにデータが入ってな
いからだろうか?
Average elapsed time of each queries in 20 concurrent users
Elapsed time in second
2500
10 days data
100 days data
300 days data
2000
1500
1000
500
0
1
2
3
4
5
6
7
Query number
8
9
10
図 3-6. Query ごとの Query 時間
Average elapsed time of each queries in 20 concurrent users
Elapsed time in second
20
10 days data
100 days data
300 days data
15
10
5
0
1
2
3
4
5
6
Query number
7
8
9
10
図 3-7. Query ごとの Query 時間(Query4 を除いたもの)
Queryごとに、Queryが終了する平均時間をプロットしたもの。テーブルサイズ(データ量)がどのように影響を
及ぼすかを調べる。
・10daysと100daysを比較すると、処理時間が多くなっているのはQuery1,4,6,8,9,10で、Query2,3,5,7は処理時
間にあまり変化は出ていない。表3-2に各Queryのクエリーされているデータ範囲を示した。この表にあるよう
にQuery3,5はクエリーされているデータの範囲が、10daysの範囲にあるため、100daysでもQueryされるデー
タの領域に変化がないためと思われる。また、Query7については、データの範囲が、10days、100daysのデー
タの外にあるためQuery3,5と同様の理由から処理時間が変わらないと思われる。このことからも、所要時間
は、Tableサイズそのものよりも、Constraintに大きく依存しているのが分かる。
・100daysと300daysでも同様の結果となっている。ここでElapsed Timeが大きく伸びているのはQuery7だけで
ある。
表 3-2. Query 内にある Date の範囲
Query #
1
2
3
4
5
6
7
8
9
10
Constrain about period
1996/01/01 - 1996/01/31
1996/01/01 - 1996/01/27
1996-01-01
1996/01/01 - 1996/01/31
1996/01/01 - 1996/01/09
1996/01/21 - 1996/01/27
1996/07/21 - 1996/07/27
1996/01/01 - 1996/02/14
1996/01/01 - 1996/01/13
1996/01/01 - 1996/01/13
Average memory usage of each queries in 20 users
13000
10 days data
300 days data
12000
Average memory usage
11000
10000
9000
8000
7000
6000
5000
4000
3000
1
2
3
4
5
6
7
Query number
8
図 3-8. Query ごとのメモリー使用量
メモリーの使用量を、Query別に調べたもの。
・10days より 300days の方が若干使用量が多くなっている。
9
10
4-way CPU と 8-way の違い
Total run time to finish all users measurement
1200
300 days data (8-way CPU)
300 days data (4-way CPU)
Run time in minutes
1000
800
600
400
200
0
0
50
100
150
200
Concurrent Users
250
300
図 3-9 4way と 8way の 300days データ時の合計 Qyery 時間の比較
4-wayと8-wayでの処理時間の差を調べたもの。
・8-wayの方が、4-wayに比べておおよそ2倍、処理が早いことが分かる。→ CPU数に比例して処理が早くな
っている。(ただし、この測定においては、Memory、DiskIOのボトルネックは出ていない)
Average elapsed time of each queries in 20 concurrent users
4500
300 days data (8-way CPU)
300 days data (4-way CPU)
Elapsed time in second
4000
3500
3000
2500
2000
1500
1000
500
0
1
2
3
4
5
6
7
Query number
8
9
図 3-9. 4way と 8way の Query ごとの処理時間
10
Average elapsed time of each queries in 20 concurrent users
45
8-way CPU
4-way CPU
Elapsed time in second
40
35
30
25
20
15
10
5
0
1
2
3
4
5
6
Query number
7
8
9
10
図 3-10 4way と 8way の Query ごとの処理時間(除く Query4)
Query別に4-way、8-wayの違いをプロットしたもの。
・どのQueryも概ね4-wayの方が2倍の処理時間を要しているのが分かる。
Average memory usage of each queries in 20 users
13000
300 days data (8-way CPU)
300 days data (4-way CPU)
12000
Average memory usage
11000
10000
9000
8000
7000
6000
5000
4000
3000
1
2
3
4
5
6
7
Query number
8
9
10
図 3-11. 4way と 8way の Query ごとのメモリー使用量
1Queryあたりのメモリ使用量は、CPU数には依存しない。
Query の範囲の性能に対する影響
下記に Query4の内容を記す。これからわかるように Query4 では赤字の範囲のデータを持ってきて
いる。いままで測定結果が示すように処理時間はデータ量よりもこのクエリー範囲に依存していると
考えられた。
/* query4
How much was spent by a given customer over a one month period?
*/
SELECT WEEK_ENDING_DATE,daily_sales.custkey,SUM(EXTENDED_PRICE) As cust_rev
from period join daily_sales on period.perkey = daily_sales.perkey
join customer on customer.custkey = daily_sales.custkey
WHERE CUSTOMER.CUSTKEY in (531150,627294)
AND CALENDAR_DATE BETWEEN DATE('1996-01-01') AND DATE('1996-01-31')
GROUP BY WEEK_ENDING_DATE, daily_sales.custkey
ORDER BY WEEK_ENDING_DATE;
100day のデータにおいて下記の2つの測定を行うことにより検証した。
1.
2.
クエリーの範囲が 1996 年 1 月で固定ものもと、1996 年 1 月 1 日∼1 月 15 日までのもの、
1月、2 月、3 月を満遍なくアクセスするようにしたものの、平均処理時間の違い。
すなわち赤字の部分を下記のように変更した。
表 3-3. Query4 に設定したクエリー範囲
Query range
Original range
1.Half range
2.Various range
Constrained period
1996/01/01 - 1996/01/31
1996/01/01 - 1996/01/15
1996/01/01 - 1996/01/31 or
1996/02/01 - 1996/02/29 or
1996/03/01 - 1996/03/31
測定結果を図 3-12 に示す。この結果より
z
z
クエリー範囲が 2 倍になると、処理時間が約 2 倍になっているのが分かる。クエリー範囲が広
さが性能に影響している。
クエリー範囲を散らしたものは、固定のものと、そんなに差は出なかった。クエリー範囲の場
所は性能に依存しない。
Average elapsed time of query 4 in 100 days data
fixed range
half range
various ranges
Elapsed time in second
2000
1500
1000
500
0
4
Query number
図 3-12. Query4 の処理時間
4. rPerf(*1)と POPS 測定結果との比較
表4−1はrPerf 値と POPS の性能の比較表である。これをグラフにしたのが図 4-1 である。この図
表、および RedBrick の Query については CPU バウンドのアプリケーションであったことこから考え
ると rPerf の値と RedBrick 性能に相関がある可能性が高いと思われる。Load に関しては、CPU、I/O
ともに使い、また、RedBRick の処理フェーズやインデクス構造も考えにいれた慎重な対応が必要と
考えられる。
表 4-1 rPerf とロード性能と Query 性能の相関
H70
rPerf
2.2
Load Performance (GB/Hour) 4.97
Total Query time at 10
3000
users (sec)
Regatta 4 way
6.36 (Estimation)
32
1250
Regatta 8way
12.72
40
502
3500
45
40
35
30
25
20
15
10
5
0
3000
2500
Load
Total Query
Time(sec)
Load (GB/hour)
rPerf vs Red Brick Performance
2000
Toatl qyery time
at 10 users
1500
1000
500
0
0
5
rPerf
10
15
図 4-1. rPerf と RedBrick 性能の相関
(*1)rPerfについて
rPerfとは、tpc-cやSPECと同様にビジネス系でのマシン性能をあらわすIBM独自の性能指標です。
p640 B80の性能を1として、それとの比率であらわします。
Appendix
Appendix A – ハードウェア構成詳細
ネットワーク構成図
[Regatta LAN]
regatta(LPAR1)
7040-681
IBM
pvc201
pvc202
HMC No.1
HMC No.2
6E1(NIM)
270(作業用)
HostName
pvc201
IP Address/Mask
192.168.20.1/24
PC接続用
192.168.50.1/24
192.168.20.10/24
192.168.20.11/24
192.168.20.101/24
192.168.20.98/24
hmc1
hmc2
pvc01_regatta
pvc98
100 Mbps Ethernet
pvc01_regatta
IBM
pvc98
RS/6000
HMC No.1
HMC No.2
6E1
270(作業用)
pvc01
100 Mbps Etherneth
図 ネットワーク構成図
7040-681テスト・システム構成図(1)
7040-681
CEC
Processor : 1.1GHz POWER4 16way
Memory : 64GB
電源サブシステム
Media Drawer
CD-ROM,DVD-RAM,4mm tape drive
I/O Drawer
CEC(Central Electronics Complex)
3 x I/O Drawer
Rack
Battery Backup,Acoustic Door
HMC
2 x HMC
メディアドロワー
内蔵バッテリー
内蔵バッテリー
I/Oドロワー No.1
I/Oドロワー No.2
I/Oドロワー No.3
ハードウェア管理コンソール (HMC) No.1
図 7040-681 テスト・システム構成図(1)
ハードウェア管理コンソール (HMC) No.2
7040-681テスト・システム構成図(2)
CEC
L3 x 2
L3 x 2
M
E
M
O
R
Y
Pass
Thru
OSC
Pass
Thru
M
E
M
O
R
Y
L3 x 2
L3 x 2
M
E
M
O
R
Y
8Way POWER4 Processor x 2
32MB L3 Cache x 8
Processor Pass-Thru Module x 2
16GB Memory Card x 4
M
E
M
O
R
Y
8way
CPU
8way
CPU
Media Drawer
メディア・ドロワー:後面
CPU数
SMPモード
16
メモリー
数
64GB
LPAR1
LPAR2
8
4
32GB
16GB
(Full System partition)
1
2
CD-ROM
ディスケット
(標準)
空き
DVD-RAM 4mm テープ 操作パネル
(標準)
メディア・ドロワー:前面
図 7040-681 テストシステム構成図(2)
箱崎ベンチマークセンターESSディスク構成図
シリアル番号/LUN容量一覧
ディスク割り当て: 28GB x 32
24GB x 32
最大構成 1.6TB
Bay1
Bay2
Bay3
Bay4
B1H1 B1H2 B1H3 B1H4 B2H1 B2H2 B2H3 B3H4 B3H1 B3H2 B3H3 B3H4 B4H1 B4H2 B4H3 B4H4
cluster2
cluster1
XXX
24GB
XXX-14530
......シリアル頭3桁
......LUN容量
DA1
DA2
DA3
DA4
000
hdisk6
24GB
002
hdisk7
28GB
005
hdisk38
24GB
007
hdisk39
28GB
001
hdisk4
24GB
003
hdisk5
28GB
004
hdisk36
24GB
006
hdisk37
28GB
200
hdisk8
24GB
202
hdisk9
28GB
204
hdisk40
24GB
201
hdisk10
24GB
203
hdisk11
28GB
403
hdisk12
24GB
100
hdisk20
24GB
102
hdisk21
28GB
104
hdisk52
24GB
106
hdisk53
28GB
loop B
101
hdisk22
24GB
103
hdisk23
28GB
105
hdisk54
24GB
107
hdisk55
28GB
206
hdisk41
28GB
loop A
300
hdisk24
24GB
302
hdisk25
28GB
304
hdisk56
24GB
306
hdisk57
28GB
205
hdisk42
24GB
207
hdisk43
28GB
loop B
301
hdisk26
24GB
303
hdisk27
28GB
305
hdisk58
24GB
307
hdisk59
28GB
404
hdisk13
28GB
405
hdisk44
24GB
406
hdisk45
28GB
loop A
500
hdisk28
24GB
502
hdisk29
28GB
504
hdisk60
24GB
506
hdisk61
28GB
400
hdisk14
24GB
401
hdisk15
28GB
402
hdisk46
24GB
407
hdisk47
28GB
loop B
501
hdisk30
24GB
503
hdisk31
28GB
505
hdisk62
24GB
507
hdisk63
28GB
600
hdisk18
24GB
602
hdisk19
28GB
605
hdisk50
24GB
607
hdisk51
28GB
loop A
700
hdisk32
24GB
702
hdisk33
28GB
704
hdisk64
24GB
706
hdisk65
28GB
601
hdisk16
24GB
603
hdisk17
28GB
604
hdisk48
24GB
606
hdisk49
28GB
loop B
701
hdisk34
24GB
703
hdisk35
28GB
705
hdisk66
24GB
707
hdisk67
28GB
図 ESS ディスク構成図
loop A
DA1
DA2
DA3
DA4
Appendix B – Query の詳細
Query 1:
/* Query1
For a given category, list all items including quantity sold,
revenue, and cost. */
SELECT ITEM_DESC,
SUM(QUANTITY_SOLD),
SUM(EXTENDED_PRICE),
SUM(EXTENDED_COST)
FROM PERIOD, DAILY_SALES,PRODUCT, STORE, PROMOTION
WHERE
PERIOD.PERKEY=DAILY_SALES.PERKEY AND
PRODUCT.PRODKEY=DAILY_SALES.PRODKEY AND
STORE.STOREKEY=DAILY_SALES.STOREKEY AND
PROMOTION.PROMOKEY=DAILY_SALES.PROMOKEY AND
CALENDAR_DATE BETWEEN 'Jan 01 1996' AND 'Jan 28 1996' AND
STORE_NUMBER='01' AND
PROMODESC IN ('Advertisement', 'Coupon', 'Manager''s Special',
'Overstocked Items') AND
CATEGORY=42
GROUP BY ITEM_DESC;
Query 2:
/* Query2
*/
What were the weekly sales of a category of items over a four week period?
SELECT PRODUCT.UPC_NUMBER,
SUM(SALES_WEEK1) AS SALES_WEEK1,
SUM(SALES_WEEK2) AS SALES_WEEK2,
SUM(SALES_WEEK3) AS SALES_WEEK3,
SUM(SALES_WEEK4) AS SALES_WEEK4
FROM PRODUCT,
(SELECT UPC_NUMBER,SUM(EXTENDED_PRICE)
FROM PERIOD, PRODUCT, STORE, DAILY_SALES
WHERE
DAILY_SALES.PERKEY=PERIOD.PERKEY AND
DAILY_SALES.PRODKEY=PRODUCT.PRODKEY AND
DAILY_SALES.STOREKEY=STORE.STOREKEY AND
PRODUCT.CATEGORY=1 AND
PRODUCT.SUB_CATEGORY = 50 AND
STORE_NUMBER='01' AND
PERIOD.WEEK_ENDING_DATE = '2/3/1996'
GROUP BY UPC_NUMBER) AS
T1(UPC_NUMBER,SALES_WEEK1),
(SELECT UPC_NUMBER,SUM(EXTENDED_PRICE)
FROM PERIOD, PRODUCT, STORE, DAILY_SALES
WHERE
DAILY_SALES.PERKEY=PERIOD.PERKEY AND
DAILY_SALES.PRODKEY=PRODUCT.PRODKEY AND
DAILY_SALES.STOREKEY=STORE.STOREKEY AND
PRODUCT.CATEGORY=1 AND
PRODUCT.SUB_CATEGORY = 50 AND
STORE_NUMBER='01' AND
PERIOD.WEEK_ENDING_DATE = '2/10/1996'
GROUP BY UPC_NUMBER) AS
T2(UPC_NUMBER,SALES_WEEK2),
(SELECT UPC_NUMBER,SUM(EXTENDED_PRICE)
FROM PERIOD, PRODUCT, STORE, DAILY_SALES
WHERE
DAILY_SALES.PERKEY=PERIOD.PERKEY AND
DAILY_SALES.PRODKEY=PRODUCT.PRODKEY AND
DAILY_SALES.STOREKEY=STORE.STOREKEY AND
PRODUCT.CATEGORY=1 AND
PRODUCT.SUB_CATEGORY = 50 AND
STORE_NUMBER='01' AND
PERIOD.WEEK_ENDING_DATE = '2/17/1996'
GROUP BY UPC_NUMBER) AS
T3(UPC_NUMBER,SALES_WEEK3),
(SELECT UPC_NUMBER,SUM(EXTENDED_PRICE)
FROM PERIOD, PRODUCT, STORE, DAILY_SALES
WHERE
DAILY_SALES.PERKEY=PERIOD.PERKEY AND
DAILY_SALES.PRODKEY=PRODUCT.PRODKEY AND
DAILY_SALES.STOREKEY=STORE.STOREKEY AND
PRODUCT.CATEGORY=1 AND
PRODUCT.SUB_CATEGORY = 50 AND
STORE_NUMBER='01' AND
PERIOD.WEEK_ENDING_DATE = '2/24/1996'
GROUP BY UPC_NUMBER) AS
T4(UPC_NUMBER,SALES_WEEK4)
WHERE
PRODUCT.UPC_NUMBER=T1.UPC_NUMBER and
PRODUCT.UPC_NUMBER=T2.UPC_NUMBER and
PRODUCT.UPC_NUMBER=T3.UPC_NUMBER and
PRODUCT.UPC_NUMBER=T4.UPC_NUMBER
GROUP BY PRODUCT.UPC_NUMBER
ORDER BY PRODUCT.UPC_NUMBER;
Query 3:
/* Query3
What was the profit per store for a given category by store on a
given day? And what was the share per store by district? */
SELECT T1.STORE_NUMBER,T1.CITY,T1.DISTRICT,SUM(AMOUNT) AS SUM_PROFIT,
DEC(100*RATIOTOREPORT(SUM_PROFIT),5,2) AS SHARE_OF_DISTRICT
FROM
(SELECT STORE_NUMBER,STORE.CITY,DISTRICT, EXTENDED_PRICE-EXTENDED_COST
FROM
PERIOD, PRODUCT,STORE, DAILY_SALES WHERE
PERIOD.CALENDAR_DATE='3/1/1996' AND
PERIOD.PERKEY=DAILY_SALES.PERKEY AND
PRODUCT.PRODKEY=DAILY_SALES.PRODKEY AND
STORE.STOREKEY=DAILY_SALES.STOREKEY AND
PRODUCT.CATEGORY=42 ) AS T1(STORE_NUMBER,CITY,DISTRICT,AMOUNT)
GROUP BY DISTRICT,CITY, STORE_NUMBER
ORDER BY DISTRICT,CITY, STORE_NUMBER DESC
RESET BY DISTRICT;
Query 4:
/* Query4
How much was spent by a given customer over a one month period? */
SELECT WEEK_ENDING_DATE,daily_sales.custkey,SUM(EXTENDED_PRICE) As cust_rev
from period join daily_sales on period.perkey = daily_sales.perkey
join customer on customer.custkey = daily_sales.custkey
WHERE CUSTOMER.CUSTKEY in (215311,627294)
AND CALENDAR_DATE BETWEEN '1/1/1996' AND '1/31/1996'
GROUP BY WEEK_ENDING_DATE, daily_sales.custkey
ORDER BY WEEK_ENDING_DATE;
Query 5:
/* Query5
What were the week to day profits for a given category within region? */
SELECT Sub_Category_Desc,
Sum(Case Region When 'North' Then Extended_Price-Extended_Cost Else 0
End) As Northern_Region,
Sum(Case Region When 'South' Then Extended_Price-Extended_Cost Else 0
End) As Southern_Region,
Sum(Case Region When 'East' Then Extended_Price-Extended_Cost Else 0
End) As Eastern_Region,
Sum(Case Region When 'West' Then Extended_Price-Extended_Cost Else 0
End) As Western_Region,
NORTHERN_REGION+SOUTHERN_REGION+EASTERN_REGION+WESTERN_REGION As ALL_REGIONS
FROM PERIOD, PRODUCT, STORE, DAILY_SALES WHERE
PERIOD.PERKEY=DAILY_SALES.PERKEY AND
PRODUCT.PRODKEY=DAILY_SALES.PRODKEY AND
STORE.STOREKEY=DAILY_SALES.STOREKEY AND
PERIOD.CALENDAR_DATE BETWEEN '5/1/1996' AND '5/9/1996'
AND CATEGORY=88
GROUP BY SUB_CATEGORY_DESC
ORDER BY SUB_CATEGORY_DESC;
Query 6:
/* Query6
What were the sales for a given brand at a given store and the total
sales for the brand in all stores? */
SELECT ITEM_DESC,
EXP AS SALES,
SUM(EXTENDED_PRICE) AS TOTAL_SALES
FROM PRODUCT, DAILY_SALES, PERIOD,
(SELECT ITEM_DESC,SUM(EXTENDED_PRICE)
FROM PRODUCT, DAILY_SALES, PERIOD,STORE
WHERE WEEK_ENDING_DATE='Jun 29 1996' AND
PRODUCT.PRODKEY=DAILY_SALES.PRODKEY AND
PERIOD.PERKEY=DAILY_SALES.PERKEY AND
STORE.STOREKEY=DAILY_SALES.STOREKEY AND
STORE_NUMBER='01' AND
ITEM_DESC LIKE 'NESTLE%'
GROUP BY ITEM_DESC
) AS T1(ITEM,EXP)
WHERE ITEM_DESC LIKE 'NESTLE%' AND
PRODUCT.PRODKEY=DAILY_SALES.PRODKEY AND
PERIOD.PERKEY=DAILY_SALES.PERKEY AND
T1.ITEM=ITEM_DESC AND
WEEK_ENDING_DATE='Jun 29 1996'
GROUP BY ITEM_DESC,EXP;
Query 7:
/* Query7
What are the units sold and revenue share of each of the products within
a given category or brand> */
SELECT ITEM_DESC, T1.UNITS AS UNITS, T1.UNITS_RATIO AS UNITS_RATIO,
T1.REVENUE AS REVENUE, T1.REVENUE_RATIO AS REVENUE_RATIO FROM
(SELECT ITEM_DESC
,SUM(QUANTITY_SOLD) AS UNITS
,RATIOTOREPORT(UNITS)*100 AS UNITS_RATIO
,SUM(EXTENDED_PRICE) AS REVENUE
,RATIOTOREPORT(REVENUE)*100 AS REVENUE_RATIO
FROM PRODUCT, PERIOD, DAILY_SALES
WHERE PRODUCT.PRODKEY=DAILY_SALES.PRODKEY AND
PERIOD.PERKEY=DAILY_SALES.PERKEY AND
ITEM_DESC LIKE 'NESTLE%' AND
WEEK_ENDING_DATE='Jul 27 1996'
GROUP BY ITEM_DESC)
AS T1(ITEM_DESC, UNITS,UNITS_RATIO,REVENUE,REVENUE_RATIO)
ORDER BY ITEM_DESC
BREAK BY ITEM_DESC SUMMING 2,3,4,5;
Query 8:
/* Query8
Based on revenue for a given brand, what is the revenue per store?
Products should be grouped by store, current week, prior week, and
prior month totals? */
SELECT STORE_NUMBER,
SUM(CASE WHEN ((CALENDAR_DATE >= '8/8/1996')
AND (CALENDAR_DATE < '8/14/1996'))
THEN EXTENDED_PRICE ELSE 0 END) AS CURR_PERIOD,
SUM(CASE WHEN ((CALENDAR_DATE >= '8/1/1996')
AND (CALENDAR_DATE <= '8/7/1996'))
THEN EXTENDED_PRICE ELSE 0 END) AS PRIOR_WEEK,
SUM(CASE WHEN ((CALENDAR_DATE >= '7/1/1996')
AND (CALENDAR_DATE <= '7/28/1996'))
THEN EXTENDED_PRICE ELSE 0 END) AS PRIOR_MONTH
FROM PERIOD,PRODUCT,DAILY_SALES,STORE
WHERE PRODUCT.PRODKEY=DAILY_SALES.PRODKEY
AND PERIOD.PERKEY=DAILY_SALES.PERKEY
AND STORE.STOREKEY=DAILY_SALES.STOREKEY
AND CALENDAR_DATE BETWEEN '7/1/1996' and '8/14/1996'
AND ITEM_DESC LIKE 'NESTLE%'
GROUP BY STORE_NUMBER
ORDER BY STORE_NUMBER;
Query 9:
/* Query9 What was the actual revenue and forecasted revenue for store
number 11, for the weeks ending on Jan 9, 1993 and Jan 16, 1993? */
SELECT SUM(EXTENDED_PRICE) AS ACTUAL_REVENUE, SUM(EXTENDED_PRICE_FORECAST)
AS FORECASTED_REVENUE
FROM DAILY_SALES, STORE, PERIOD, PRODUCT, DAILY_FORECAST
WHERE
DAILY_SALES.STOREKEY=STORE.STOREKEY AND
DAILY_FORECAST.STOREKEY=STORE.STOREKEY AND
DAILY_FORECAST.STOREKEY=DAILY_SALES.STOREKEY AND
DAILY_SALES.PERKEY=PERIOD.PERKEY AND
DAILY_FORECAST.PERKEY=PERIOD.PERKEY AND
DAILY_SALES.PERKEY=DAILY_FORECAST.PERKEY AND
DAILY_SALES.PRODKEY=PRODUCT.PRODKEY AND
DAILY_FORECAST.PRODKEY=PRODUCT.PRODKEY AND
DAILY_SALES.PRODKEY=DAILY_FORECAST.PRODKEY AND
STORE_NUMBER='11' AND
WEEK_ENDING_DATE IN ('9/07/1996','9/14/1996');
Query 10:
/* Query10
What was the actual revenue and cost and projected revenue and cost
for given categories of advertised products at a store over a two
week period? */
SELECT
SUM(EXTENDED_PRICE) AS ACTUAL_REVENUE,
SUM(EXTENDED_COST) AS ACTUAL_COST,
SUM(EXTENDED_PRICE_FORECAST) AS PROJECTED_REVENUE,
SUM(EXTENDED_COST_FORECAST) AS PROJECTED_COST
FROM STORE, PERIOD, PROMOTION, PRODUCT, DAILY_SALES, DAILY_FORECAST
WHERE
DAILY_SALES.PERKEY=PERIOD.PERKEY AND
DAILY_SALES.STOREKEY=STORE.STOREKEY AND
DAILY_SALES.PRODKEY=PRODUCT.PRODKEY AND
DAILY_SALES.PROMOKEY=PROMOTION.PROMOKEY AND
DAILY_FORECAST.PERKEY=PERIOD.PERKEY AND
DAILY_FORECAST.STOREKEY=STORE.STOREKEY AND
DAILY_FORECAST.PRODKEY=PRODUCT.PRODKEY AND
DAILY_SALES.PRODKEY=DAILY_FORECAST.PRODKEY AND
DAILY_SALES.STOREKEY=DAILY_FORECAST.STOREKEY AND
DAILY_SALES.PERKEY=DAILY_FORECAST.PERKEY AND
STORE.STORE_NUMBER='11' AND
PERIOD.WEEK_ENDING_DATE IN ('Oct 5 1996','Oct 12 1996') AND
PROMOTION.PROMODESC='Advertisement' AND
PRODUCT.CATEGORY IN (12, 13, 22, 42);
Appendix C – POPS 測定結果一覧
ソフ
トウ
ェア
ハー
ドウ
ェア
SUN
RedBrick
5.17
Compaq
RedBrick6. RedBrick
1
6.1
RedBrick6.
1
IBM
RedBrick6.
2 Beta
AIX5.1
H70
Regatta
Sun
E4500
Enterprise
10000
Sun
Fire6800
Sun
Fire6800
32 x
750MHzx
400MHz
8
UltraSPARC
-IIマイク
ロ・プロセ
ッサー
メモ 32GB
8GB
リー
ディ Sun
A1000ディ
スク StorEdge
スクシステ
A5200 x 12 ム(ストラ
台
イピング)
(ミラー化
した全ディ
スク容量
2.4TB、実
際に使用し
たディスク
容量
1.2TB)
デー 300GB
300GB
タ量 (300日
(フ 分)
ァク
トテ
ーブ
ルの
み)
デー 14GB/Hour 5.76GB/Hou
タの
r
ロー
ド
750MHzx12
750MHzx2
4
48GB
48GB
T3ディスク
システム
(ストライ
ピング)
T3ディスク
システム
(ストライ
ピング)
SCSI
ESS
24 HSG80
18GBx6
StorageWORKS
21 18GB/15K RPM
21 36GB/10K RPM
72 18GB/15K RPM
72 36GB/10K RPm
300GB
300GB
2TB (733日
分)
4TB(1466
日分)
8TB(2932
日分)
CPU
AlphaServer
GS320 running
Tru64 V5.1A
(Rev 1885)
8 QBBs (Quad
RS64-II
Building
340MHz x 4
Blocks). Each
with 4 1Ghz
CPUs and 16 Gig
RAM
16x8GB=128GB
2GB
32GB
10日分
(10GB)
Daily_Sale
s
Rows/minut
es
Daily_Fore
cast
4.97GB/Hou 40GB/Hour
r
11.1GB/Hou 7.4GB/Hour 196GB/Hour
r
Daily_Sales
13,735,651Rows/
minute
Daily_Forecast
5069571
Rows/minute
100、200、 30、6
10,25,50,1 10,25,50,1 100,200,500,100 10
0、100 00,200,300 00,200,300 0
300
,400,500
,400,500
ユー 67秒、13 57秒、1 25,43,85,1 25,26,38,6 3000,
3000秒
ザ数 1秒、29 48秒、1 72,343,453 7,129,180,
1,5,10,50,
100,300
2065sec at
50users
と
,578,654
196,340
7秒
96秒
応答
時間
(秒
)
コメ 詳細レポー Query4が違 Query4が違 Query4が違 Query1-10の合計 Query1−
ント トなし
う
う
う
10の合計
ROLT
57.1
329.4
P値
(8way)
164.7(4way
)
rPer
2.2*1
12.72
f
(8way)
Fly UP