PERFORMANCE BENCHMARK:
Comparisons of speed and cost efficiency

Amazon Redshift ベンチマーク
Hadoop + Hive と比較
10 倍の速度・コストパフォー
マンス
Amazon Redshift では、 1.2TB のデータへのクエ
リの処理に対し、処理時間が 155 秒
Hadoop + Hive では、 1.2TB のデータへのクエリの
処理に対し、処理時間が 1491 秒
Amazon Redshift : 10 倍の処理速度
Amazon Redshift の運用コストは 30 分に一回の頻
度でクエリを処理する場合、一日あたり $20
Hadoop + Hive の運用コストは 30 分に一回の頻度
でクエリを処理する場合、一日あたり $210
  Amazon Redshift : 10 倍のコストパフォーマ
ンス
Amazon Redshift は、クラウドビッグデータの新
しいデータウェアハウス。 Redshift の登場までは
、テラバイトを超える処理には、 Hadoop を用い
る必要があった。
今回、 Redshift と Hadoop(Amazon Elastic
MapReduce) を比較のため、インターネット広告
代理店のシステムのデータを想定し、ベンチマー
クを実施。
• 想定データサイズ: 100GB to ~50TB
• クエリの頻度: 1 時間あたり 1 回以上
• 素早いレスポンスが求められる
前提条件 – データセット
検証対象のクエリとして、 Join してレポートを作成するクエリを想定し、
以下の 5 つのテーブルを利用
Imp_log
1) 300GB / 300M record
2) 1.2TB / 1.2B record
date
publisher_id
ad_campaign_id
country
attr1-4

datetime
integer
integer
varchar(30)
varchar(255)

click_log
1) 1.4GB / 1.5M record
2) 5.6GB / 6M record
date
publisher_id
ad_campaign_id
bid_price
country
attr1-4

datetime
integer
integer
real
varchar(30)
varchar(255)

ad_campaign
100MB / 100k record
publisher
10MB / 10k record
advertiser
10MB / 10k record

1) 1 ヶ月間のログ
2) 4 ヶ月間のログ
ファイルフォーマットは TSV とし , gzip 圧縮
1. クエリの処理速度
Redshift と Hadoop に対し、同じサーバコストで検証した比較結
果 (Hadoop: c1.xlarge vs Redshift: dw.hs1.xlarge)

1491sec

672sec
155sec
38sec

* クエリの詳細は Appendix に記載

•• Redshift は 1.2TB
Redshift は 1.2TB
に対するクエリの
に対するクエリの
処理時間は 155 秒
処理時間は 155 秒
•• Hadoop は 1.2TB
Hadoop は 1.2TB
に対するクエリの
に対するクエリの
処理時間は 1491
処理時間は 1491
秒
秒
•• Redshift は、この
Redshift は、この
クエリの処理に対
クエリの処理に対
し、 Hadoop に比
し、 Hadoop に比
べ 10 倍の処理速度
べ 10 倍の処理速度
2. 運用コスト

Redshift と Hadoop に対し、同じクエリ、同じ実行時間でかか
る運用コストの比較結果
•• 30 分に一回の頻度
30 分に一回の頻度
でクエリを実行する
でクエリを実行する
場合、 Redshift の
場合、 Redshift の
コストは 1 月あたり
コストは 1 月あたり
$20
$20
•• 30 分に一回の頻度
30 分に一回の頻度
でクエリを実行する
でクエリを実行する
場合、 Hadoop のコ
場合、 Hadoop のコ
ストは 1 月あたり
ストは 1 月あたり
$210
$210
•• Redshift は Hadoop
Redshift は Hadoop
に比べて 10 倍のコ
に比べて 10 倍のコ
ストパフォーマンス
ストパフォーマンス

* クエリの詳細は Appendix に記載
検証結果 – Redshift
データサイズ

インスタンス
タイプ

インスタンス数

試行回

処理時間

1

164 秒
149 秒

3

158 秒
156 秒

5

1

30 秒

4

dw.hs1.xlarge

30 秒

2
1.2TB

31 秒

1

1

3

5

dw.hs1.xlarge

43 秒

4

300GB

150 秒

一日あたりの費用

58 秒

2

平均処理時間

* クエリの詳細は Appendix に記載

38 秒

$20.40

155 秒

$20.40
検証結果 - Hadoop
データサイズ

インスタンスタイプ

インスタンス数

c1.xlarge
c1.medium

1h 23m

一日あたりの費用
2s

$0.80

10

37m 48s

$0.89

c1.xlarge

10

11m 12s

$1.06

m1.xlarge

1

6h 43m 24s

$3.22

c1.medium

4

5h 14m

0s

$3.04

c1.xlarge

10

37m

7s

$3.58

c1.xlarge

300GB

1

処理時間

20

24m 51s

$4.64

1.2TB

* The query used can be referenced in our Appendix
考察
• Redshift の選択基準
– 1TB 以上のデータで 1 時間に 1 回以上の頻
度でクエリを処理する必要がある場合
– 実行結果が迅速 (10 分以内 ) に必要な場合

• Hadoop (EMR) の選択基準
– ペタバイト級のデータを保持
– クエリの実行頻度が 1 日に 1 回、 1 週間に 1
回程度
– Hadoop 技術に既に投資している場合
appendix – サンプルクエリ
広告キャンペーンのパフォーマンスレポート(インプレッション、クリック数
、広告費用、 CTR 、 CPC 、および CPM )を作成するクエリを想定
select
ac.ad_campaign_id as ad_campaign_id,
adv.advertiser_id as advertiser_id,
cs.spending as spending,
ims.imp_total as imp_total,
cs.click_total as click_total,
click_total/imp_total as CTR,
spending/click_total as CPC,
spending/(imp_total/1000) as CPM
from
ad_campaigns ac
join
advertisers adv
on (ac.advertiser_id = adv.advertiser_id)

join
(select
il.ad_campaign_id,
count(*) as imp_total
from
imp_logs il
group by
il.ad_campaign_id
) ims on (ims.ad_campaign_id =
ac.ad_campaign_id)
join
(select
cl.ad_campaign_id,
sum(cl.bid_price) as spending,
count(*) as click_total
from
click_logs cl
group by
cl.ad_campaign_id
) cs on (cs.ad_campaign_id = ac.ad_campaign_id);
APPENDIX – Redshift TIPS
• Redshift は合計 (sum) 、平均 (average) 、最大
(max) 、最小 (min) など計算結果を集計する処理
が得意  ( カラム型データベースのため )
• 大容量データのインポートに長い時間を要する
– 今回のベンチマークでは 1.2TB の一括ロードに 17 時
間
– 継続したインポートが必要

• Redshift は CSV, TSV のようなセパレータタイプ
のみ対応
– JSON は現時点ではサポート対象外

• Redshift はプリミティブなデータ型のみ対応
– 11 types, INT, DOUBLE, BOOLEAN, VARCHAR, DATE..
(2013 年 2 月 17 日現
在)
APPENDIX – Additional Information
• 今回のベンチマークに利用したリソース
は全て github に公開
– https://github.com/hapyrus/redshift-benchmark
– データセットは S3 上に公開
お問い合わせ先 - FlyData
• Hadoop + Hive and Redshift サービスを
提供
• FlyData for Redshift
– 自社のデータで、 Redshift を Day 1 から利用
開始可能
– リアルタイムに近い間隔で Redshift にデータ
転送
– オートスケーリング、データの統合管理で高
可用性を実現

• Redshift の導入コンサルも提供
お問い合わせは info@flydata.com
へ!

Amazon Redshift ベンチマーク Hadoop + Hiveと比較

  • 1.
    PERFORMANCE BENCHMARK: Comparisons ofspeed and cost efficiency Amazon Redshift ベンチマーク Hadoop + Hive と比較 10 倍の速度・コストパフォー マンス
  • 2.
    Amazon Redshift では、1.2TB のデータへのクエ リの処理に対し、処理時間が 155 秒 Hadoop + Hive では、 1.2TB のデータへのクエリの 処理に対し、処理時間が 1491 秒 Amazon Redshift : 10 倍の処理速度 Amazon Redshift の運用コストは 30 分に一回の頻 度でクエリを処理する場合、一日あたり $20 Hadoop + Hive の運用コストは 30 分に一回の頻度 でクエリを処理する場合、一日あたり $210   Amazon Redshift : 10 倍のコストパフォーマ ンス
  • 3.
    Amazon Redshift は、クラウドビッグデータの新 しいデータウェアハウス。Redshift の登場までは 、テラバイトを超える処理には、 Hadoop を用い る必要があった。 今回、 Redshift と Hadoop(Amazon Elastic MapReduce) を比較のため、インターネット広告 代理店のシステムのデータを想定し、ベンチマー クを実施。 • 想定データサイズ: 100GB to ~50TB • クエリの頻度: 1 時間あたり 1 回以上 • 素早いレスポンスが求められる
  • 4.
    前提条件 – データセット 検証対象のクエリとして、Join してレポートを作成するクエリを想定し、 以下の 5 つのテーブルを利用 Imp_log 1) 300GB / 300M record 2) 1.2TB / 1.2B record date publisher_id ad_campaign_id country attr1-4 datetime integer integer varchar(30) varchar(255) click_log 1) 1.4GB / 1.5M record 2) 5.6GB / 6M record date publisher_id ad_campaign_id bid_price country attr1-4 datetime integer integer real varchar(30) varchar(255) ad_campaign 100MB / 100k record publisher 10MB / 10k record advertiser 10MB / 10k record 1) 1 ヶ月間のログ 2) 4 ヶ月間のログ ファイルフォーマットは TSV とし , gzip 圧縮
  • 5.
    1. クエリの処理速度 Redshift とHadoop に対し、同じサーバコストで検証した比較結 果 (Hadoop: c1.xlarge vs Redshift: dw.hs1.xlarge) 1491sec 672sec 155sec 38sec * クエリの詳細は Appendix に記載 •• Redshift は 1.2TB Redshift は 1.2TB に対するクエリの に対するクエリの 処理時間は 155 秒 処理時間は 155 秒 •• Hadoop は 1.2TB Hadoop は 1.2TB に対するクエリの に対するクエリの 処理時間は 1491 処理時間は 1491 秒 秒 •• Redshift は、この Redshift は、この クエリの処理に対 クエリの処理に対 し、 Hadoop に比 し、 Hadoop に比 べ 10 倍の処理速度 べ 10 倍の処理速度
  • 6.
    2. 運用コスト Redshift とHadoop に対し、同じクエリ、同じ実行時間でかか る運用コストの比較結果 •• 30 分に一回の頻度 30 分に一回の頻度 でクエリを実行する でクエリを実行する 場合、 Redshift の 場合、 Redshift の コストは 1 月あたり コストは 1 月あたり $20 $20 •• 30 分に一回の頻度 30 分に一回の頻度 でクエリを実行する でクエリを実行する 場合、 Hadoop のコ 場合、 Hadoop のコ ストは 1 月あたり ストは 1 月あたり $210 $210 •• Redshift は Hadoop Redshift は Hadoop に比べて 10 倍のコ に比べて 10 倍のコ ストパフォーマンス ストパフォーマンス * クエリの詳細は Appendix に記載
  • 7.
    検証結果 – Redshift データサイズ インスタンス タイプ インスタンス数 試行回 処理時間 1 164秒 149 秒 3 158 秒 156 秒 5 1 30 秒 4 dw.hs1.xlarge 30 秒 2 1.2TB 31 秒 1 1 3 5 dw.hs1.xlarge 43 秒 4 300GB 150 秒 一日あたりの費用 58 秒 2 平均処理時間 * クエリの詳細は Appendix に記載 38 秒 $20.40 155 秒 $20.40
  • 8.
    検証結果 - Hadoop データサイズ インスタンスタイプ インスタンス数 c1.xlarge c1.medium 1h23m 一日あたりの費用 2s $0.80 10 37m 48s $0.89 c1.xlarge 10 11m 12s $1.06 m1.xlarge 1 6h 43m 24s $3.22 c1.medium 4 5h 14m 0s $3.04 c1.xlarge 10 37m 7s $3.58 c1.xlarge 300GB 1 処理時間 20 24m 51s $4.64 1.2TB * The query used can be referenced in our Appendix
  • 9.
    考察 • Redshift の選択基準 –1TB 以上のデータで 1 時間に 1 回以上の頻 度でクエリを処理する必要がある場合 – 実行結果が迅速 (10 分以内 ) に必要な場合 • Hadoop (EMR) の選択基準 – ペタバイト級のデータを保持 – クエリの実行頻度が 1 日に 1 回、 1 週間に 1 回程度 – Hadoop 技術に既に投資している場合
  • 10.
    appendix – サンプルクエリ 広告キャンペーンのパフォーマンスレポート(インプレッション、クリック数 、広告費用、CTR 、 CPC 、および CPM )を作成するクエリを想定 select ac.ad_campaign_id as ad_campaign_id, adv.advertiser_id as advertiser_id, cs.spending as spending, ims.imp_total as imp_total, cs.click_total as click_total, click_total/imp_total as CTR, spending/click_total as CPC, spending/(imp_total/1000) as CPM from ad_campaigns ac join advertisers adv on (ac.advertiser_id = adv.advertiser_id) join (select il.ad_campaign_id, count(*) as imp_total from imp_logs il group by il.ad_campaign_id ) ims on (ims.ad_campaign_id = ac.ad_campaign_id) join (select cl.ad_campaign_id, sum(cl.bid_price) as spending, count(*) as click_total from click_logs cl group by cl.ad_campaign_id ) cs on (cs.ad_campaign_id = ac.ad_campaign_id);
  • 11.
    APPENDIX – RedshiftTIPS • Redshift は合計 (sum) 、平均 (average) 、最大 (max) 、最小 (min) など計算結果を集計する処理 が得意  ( カラム型データベースのため ) • 大容量データのインポートに長い時間を要する – 今回のベンチマークでは 1.2TB の一括ロードに 17 時 間 – 継続したインポートが必要 • Redshift は CSV, TSV のようなセパレータタイプ のみ対応 – JSON は現時点ではサポート対象外 • Redshift はプリミティブなデータ型のみ対応 – 11 types, INT, DOUBLE, BOOLEAN, VARCHAR, DATE.. (2013 年 2 月 17 日現 在)
  • 12.
    APPENDIX – AdditionalInformation • 今回のベンチマークに利用したリソース は全て github に公開 – https://github.com/hapyrus/redshift-benchmark – データセットは S3 上に公開
  • 13.
    お問い合わせ先 - FlyData •Hadoop + Hive and Redshift サービスを 提供 • FlyData for Redshift – 自社のデータで、 Redshift を Day 1 から利用 開始可能 – リアルタイムに近い間隔で Redshift にデータ 転送 – オートスケーリング、データの統合管理で高 可用性を実現 • Redshift の導入コンサルも提供 お問い合わせは [email protected] へ!