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

12,806 views

Published on

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

Published in: Technology

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

  1. 1. PERFORMANCE BENCHMARK: Comparisons of speed and cost efficiency Amazon Redshift ベンチマーク Hadoop + Hive と比較 10 倍の速度・コストパフォー マンス
  2. 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. 3. Amazon Redshift は、クラウドビッグデータの新 しいデータウェアハウス。 Redshift の登場までは 、テラバイトを超える処理には、 Hadoop を用い る必要があった。 今回、 Redshift と Hadoop(Amazon Elastic MapReduce) を比較のため、インターネット広告 代理店のシステムのデータを想定し、ベンチマー クを実施。 • 想定データサイズ: 100GB to ~50TB • クエリの頻度: 1 時間あたり 1 回以上 • 素早いレスポンスが求められる
  4. 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. 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. 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. 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. 8. 検証結果 - 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
  9. 9. 考察 • Redshift の選択基準 – 1TB 以上のデータで 1 時間に 1 回以上の頻 度でクエリを処理する必要がある場合 – 実行結果が迅速 (10 分以内 ) に必要な場合 • Hadoop (EMR) の選択基準 – ペタバイト級のデータを保持 – クエリの実行頻度が 1 日に 1 回、 1 週間に 1 回程度 – Hadoop 技術に既に投資している場合
  10. 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. 11. 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 日現 在)
  12. 12. APPENDIX – Additional Information • 今回のベンチマークに利用したリソース は全て github に公開 – https://github.com/hapyrus/redshift-benchmark – データセットは S3 上に公開
  13. 13. お問い合わせ先 - FlyData • Hadoop + Hive and Redshift サービスを 提供 • FlyData for Redshift – 自社のデータで、 Redshift を Day 1 から利用 開始可能 – リアルタイムに近い間隔で Redshift にデータ 転送 – オートスケーリング、データの統合管理で高 可用性を実現 • Redshift の導入コンサルも提供 お問い合わせは info@flydata.com へ!

×