Amazon Redshift編~パフォーマンス比較(MySQL vs Redshift) 前編~

Pocket

こんにちは! 中の人です。

前回までのレシピでは、RedshiftのXLノード1~数台に対して様々なSQLを実行してパフォーマンス比較およびまとめを行いました。
※ 下記、過去記事参照

Amazon Redshift編~複数クエリ同時実行時パフォーマンス比較(シングル)~
Amazon Redshift編~複数クエリ同時実行時パフォーマンス比較(マルチ)~
Amazon Redshift編~複数クエリ同時実行時パフォーマンス比較(XL vs 8XL)~
Amazon Redshift編~複数クエリ同時実行時パフォーマンス比較(まとめ)~

今回は『Amazon Redshift編~パフォーマンス比較(MySQL vs Redshift)前編~』と題して、同じデータをMySQLに流しこんで、実際にパフォーマンス比較を行なってみます。

比較を行ったのは以下の2つです。

RDS xlarge Redshift XLノード
CPU 8 ECU(2 ECU × 4 仮想コア) 4.4 ECU(2.2 ECU × 2 仮想コア)
メモリ 15 GB メモリ 15 GB メモリ
HDD 100 GB 2 TB
その他 高速 I/O 標準 I/O
時間単価 $0.860 $1.250

※ RDSでRedshiftの各性能値が同等以上の機種を選んでおります。
※ 料金は2013年7月現在

条件は前回のレシピと同じく、以下のテーブルを用意して検索してみました。
また、Redshiftにはindexを張れないので、indexあり・なし両方計測してみました。(テスト・計測はmysqlslapで行なっております。)

約8千行
約60万行
約4000万行

データのimportにはRDSはload data、Redshiftはcopyを利用しました。

RDS xlarge Redshift XLノード
約8千行 20-30秒 20-30秒
約60万行 約5分 70-80秒
約4000万行 2-3時間 約15分

※ mysql のload dataは1ファイルを500MB程度に分割する必要があり、大きいファイルを読みこませる事により頻繁にconnectionエラーが発生していたため、エラーが無かった場合の想定で80分程度の見込み

以下の様なSQL文を実行して、実行時間の比較しております。

■ 約8千行(10回平均)

≪RDS xlarge≫

同時数1 同時数2 同時数6
平均実行速度(秒) 0.045 0.064 0.085
最高実行速度(秒) 0.044 0.049 0.075
最低実行速度(秒) 0.047 0.069 0.093

≪XLノード≫

同時数1 同時数2 同時数6
平均実行速度(秒) 0.2 0.09 0.61
最高実行速度(秒) 0.18 0.05 0.43
最低実行速度(秒) 0.22 0.34 0.73

■ 約60万行(10回平均)

≪RDS xlarge : インデックスなし≫

同時数1 同時数2 同時数6
平均実行速度(秒) 1.54 1.77 2.64
最高実行速度(秒) 1.53 1.61 2.57
最低実行速度(秒) 1.55 2.12 2.74

≪RDS xlarge : インデックスあり≫

同時数1 同時数2 同時数6
平均実行速度(秒) 0.41 0.49 0.74
最高実行速度(秒) 0.4 0.43 0.68
最低実行速度(秒) 0.44 0.77 0.95

≪XLノード≫

同時数1 同時数2 同時数6
平均実行速度(秒) 1.52 1.7 3.77
最高実行速度(秒) 1.21 0.95 2.33
最低実行速度(秒) 1.66 2.68 8.14

■ 約4000万行(10回平均)

≪RDS xlarge : インデックスなし≫

同時数1 同時数2 同時数6
平均実行速度(秒) 81.11 87.34 140.24
最高実行速度(秒) 80.9 85.44 135.02
最低実行速度(秒) 81.41 89.13 146.51

≪RDS xlarge : インデックスあり≫

同時数1 同時数2 同時数6
平均実行速度(秒) 6.05 6.72 11.47
最高実行速度(秒) 5.95 6.35 10.75
最低実行速度(秒) 6.34 7.79 12.58

≪XLノード≫

同時数1 同時数2 同時数6
平均実行速度(秒) 26.71 46.29 N/A
最高実行速度(秒) 25.76 29.14 N/A
最低実行速度(秒) 31.75 104.23 N/A

いかがでしたでしょうか?

「あれっ、むしろ正しくindexを張ることでMySQLの方が性能が出ているのでは…!?」と思われるかもしれません。
スペック的にもRDS 4コア vs Redshift 2コアと大きく違うので、RDSが有利な上に、Redshiftの大きな特徴であるカラムナー型の特性を活かした利用方法ではありません。

次回は『Amazon Redshift編~パフォーマンス比較(MySQL vs Redshift) 後編~』と題して、カラムナー型に向いているデータでのパフォーマンスを比較していきます。
お楽しみに!

——————————————————————————————————
ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと
最新のお役立ちレシピが配信されます★

┏━━━━━━━━━━━━━┓
┃ナレコムクラウド Facebook┃
┗━━━━━━━━━━━━━┛
——————————————————————————————————