Upload
flydata-inc
View
10.492
Download
4
Embed Size (px)
DESCRIPTION
Hapyrus では、 Hadoop + Hive と Amazon Redshift のソリューション、また Amazon Redshift の導入コンサルティングを提供します。ぜひお問い合わせ下さい。[email protected] http://hapyrus.com/
Citation preview
PERFORMANCE BENCHMARK:
Amazon Redshift ベンチマークHadoop + Hive と比較10 倍の速度・コストパフォーマンス
Comparisons of speed and cost efficiency
Amazon Redshift では、 1.2TB のデータへのクエリの処理に対し、処理時間が 155 秒Hadoop + Hive では、 1.2TB のデータへのクエリの処理に対し、処理時間が 1491 秒
Amazon Redshift : 10 倍の処理速度
Amazon Redshift の運用コストは 30 分に一回の頻度でクエリを処理する場合、一日あたり $20Hadoop + Hive の運用コストは 30 分に一回の頻度でクエリを処理する場合、一日あたり $210 Amazon Redshift : 10 倍のコストパフォーマンス
• 想定データサイズ: 100GB to ~50TB• クエリの頻度: 1 時間あたり 1 回以上• 素早いレスポンスが求められる
Amazon Redshift は、クラウドビッグデータの新しいデータウェアハウス。 Redshift の登場までは、テラバイトを超える処理には、 Hadoop を用いる必要があった。
今回、 Redshift と Hadoop(Amazon Elastic MapReduce) を比較のため、インターネット広告代理店のシステムのデータを想定し、ベンチマークを実施。
前提条件 – データセット
ファイルフォーマットは 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 つのテーブルを利用
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)
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 に記載
検証結果 – 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 に記載
データサイズ インスタンスタイプ インスタンス数 処理時間 一日あたりの費用
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
考察• Redshift の選択基準
– 1TB 以上のデータで 1 時間に 1 回以上の頻度でクエリを処理する必要がある場合
– 実行結果が迅速 (10 分以内 ) に必要な場合• Hadoop (EMR) の選択基準
– ペタバイト級のデータを保持– クエリの実行頻度が 1 日に 1 回、 1 週間に 1
回程度– Hadoop 技術に既に投資している場合
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 )を作成するクエリを想定
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-benchmar
k– データセットは S3 上に公開
お問い合わせ先 - FlyData
• Hadoop + Hive and Redshift サービスを提供
• FlyData for Redshift– 自社のデータで、 Redshift を Day 1 から利用
開始可能– リアルタイムに近い間隔で Redshift にデータ
転送– オートスケーリング、データの統合管理で高可
用性を実現• Redshift の導入コンサルも提供
お問い合わせは [email protected] へ!