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

13
PERFORMANCE BENCHMARK: Amazon Redshift ベベベベベベ Hadoop + Hive ベベベ 10 ベベベベ ベベベベベベベベベベ Comparisons of speed and cost efficiency

description

Hapyrus では、 Hadoop + Hive と Amazon Redshift のソリューション、また Amazon Redshift の導入コンサルティングを提供します。ぜひお問い合わせ下さい。[email protected] http://hapyrus.com/

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

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

PERFORMANCE BENCHMARK:

Amazon Redshift ベンチマークHadoop + Hive と比較10 倍の速度・コストパフォーマンス

Comparisons of speed and cost efficiency

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

Amazon Redshift では、 1.2TB のデータへのクエリの処理に対し、処理時間が 155 秒Hadoop + Hive では、 1.2TB のデータへのクエリの処理に対し、処理時間が 1491 秒

Amazon Redshift : 10 倍の処理速度

Amazon Redshift の運用コストは 30 分に一回の頻度でクエリを処理する場合、一日あたり $20Hadoop + Hive の運用コストは 30 分に一回の頻度でクエリを処理する場合、一日あたり $210 Amazon Redshift : 10 倍のコストパフォーマンス

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

• 想定データサイズ: 100GB to ~50TB• クエリの頻度: 1 時間あたり 1 回以上• 素早いレスポンスが求められる

Amazon Redshift は、クラウドビッグデータの新しいデータウェアハウス。 Redshift の登場までは、テラバイトを超える処理には、 Hadoop を用いる必要があった。

今回、 Redshift と Hadoop(Amazon Elastic MapReduce) を比較のため、インターネット広告代理店のシステムのデータを想定し、ベンチマークを実施。

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

前提条件 – データセット

ファイルフォーマットは TSV とし , gzip 圧縮

Imp_log

1) 300GB / 300M record2) 1.2TB / 1.2B record

date datetimepublisher_id integerad_campaign_id integerbid_price realcountry varchar(30)attr1-4 varchar(255)

click_log

1) 1.4GB / 1.5M record2) 5.6GB / 6M record

date datetimepublisher_id integerad_campaign_id integercountry varchar(30)attr1-4 varchar(255)

1) 1 ヶ月間のログ2) 4 ヶ月間のログ

ad_campaign

100MB / 100k record

publisher

10MB / 10k record

advertiser

10MB / 10k record

検証対象のクエリとして、 Join してレポートを作成するクエリを想定し、以下の 5 つのテーブルを利用

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

1. クエリの処理速度

• Redshift は 1.2TBに対するクエリの処理時間は 155 秒

• Hadoop は 1.2TBに対するクエリの処理時間は 1491秒

• Redshift は、このクエリの処理に対し、 Hadoop に比べ 10 倍の処理速度

• Redshift は 1.2TBに対するクエリの処理時間は 155 秒

• Hadoop は 1.2TBに対するクエリの処理時間は 1491秒

• Redshift は、このクエリの処理に対し、 Hadoop に比べ 10 倍の処理速度

672sec

38sec155sec

1491sec

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

Redshift と Hadoop に対し、同じサーバコストで検証した比較結果 (Hadoop: c1.xlarge vs Redshift: dw.hs1.xlarge)

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

2. 運用コスト

• 30 分に一回の頻度でクエリを実行する場合、 Redshift のコストは 1 月あたり$20

• 30 分に一回の頻度でクエリを実行する場合、 Hadoop のコストは 1 月あたり$210

• Redshift は Hadoopに比べて 10 倍のコストパフォーマンス

• 30 分に一回の頻度でクエリを実行する場合、 Redshift のコストは 1 月あたり$20

• 30 分に一回の頻度でクエリを実行する場合、 Hadoop のコストは 1 月あたり$210

• Redshift は Hadoopに比べて 10 倍のコストパフォーマンス

Redshift と Hadoop に対し、同じクエリ、同じ実行時間でかかる運用コストの比較結果

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

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

検証結果 – Redshift

データサイズ インスタンスタイプ インスタンス数 試行回 処理時間 平均処理時間 一日あたりの費用

300GB dw.hs1.xlarge 1

1 58 秒

38 秒 $20.40

2 43 秒

3 31 秒

4 30 秒

5 30 秒

1.2TB dw.hs1.xlarge 1

1 164 秒

155 秒 $20.40

2 149 秒

3 158 秒

4 156 秒

5 150 秒

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

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

データサイズ インスタンスタイプ インスタンス数 処理時間 一日あたりの費用

300GB

c1.xlarge 1 1h 23m 2s $0.80

c1.medium 10 37m 48s $0.89

c1.xlarge 10 11m 12s $1.06

1.2TB

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 20 24m 51s $4.64

* The query used can be referenced in our Appendix

検証結果 - Hadoop

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

考察• Redshift の選択基準

– 1TB 以上のデータで 1 時間に 1 回以上の頻度でクエリを処理する必要がある場合

– 実行結果が迅速 (10 分以内 ) に必要な場合• Hadoop (EMR) の選択基準

– ペタバイト級のデータを保持– クエリの実行頻度が 1 日に 1 回、 1 週間に 1

回程度– Hadoop 技術に既に投資している場合

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

appendix – サンプルクエリ

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 CPMfrom ad_campaigns acjoin 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);

広告キャンペーンのパフォーマンスレポート(インプレッション、クリック数、広告費用、 CTR 、 CPC 、および CPM )を作成するクエリを想定

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

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 日現在 )

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

APPENDIX – Additional Information• 今回のベンチマークに利用したリソース

は全て github に公開– https://github.com/hapyrus/redshift-benchmar

k– データセットは S3 上に公開

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

お問い合わせ先 - FlyData

• Hadoop + Hive and Redshift サービスを提供

• FlyData for Redshift– 自社のデータで、 Redshift を Day 1 から利用

開始可能– リアルタイムに近い間隔で Redshift にデータ

転送– オートスケーリング、データの統合管理で高可

用性を実現• Redshift の導入コンサルも提供

お問い合わせは [email protected] へ!