こんにちは!中の人です。
前回までのレシピでは、『Amazon Redshift編~パフォーマンス比較(MySQL vs Redshift) 前編~』ということで、RDSとRedshiftに対して通常のselect文でのパフォーマンス比較を行いました。
後編ではカラムナー型であるRedshiftが得意とする方法でのパフォーマンスを検証します。
では実際に、検証結果を見ていきましょう!
1行1行を取り出して、条件に一致しているかをチェックしています。
大量のデータから特定の条件に一致するデータを取り出して集計するといったような事には向いていません。
列方向に対してデータを圧縮して保持し、列に対してチェックします。
列方向のデータのみを取り出すために無駄なカラムを取得する必要がありません。
「7月1日~31日の5000円以上のプランの平均価格は?」といった列方向での集計をする事に向いています。
このような構造の違いがあるため、Redshiftの様なカラムナー型のデータベースは集計に向いています。
比較を行ったのは以下の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月現在
条件は前回のレシピと同じく、以下のテーブルを用意して検索してみました。
約4000万行
1 |
SELECT avg(column01) from SAMPLE_TABLE where column01>5000 and date like '13-06%' |
という一定期間にある特定料金以上の平均価格を集計する様な式を実行して比較しております。
■ 約4000万行(10回平均)
≪RDS xlarge : インデックスあり≫
同時数1 | 同時数2 | 同時数6 | |
---|---|---|---|
平均実行速度(秒) | 43.88 | 52.79 | 79.04 |
最高実行速度(秒) | 43.65 | 47.80 | 77.50 |
最低実行速度(秒) | 44.04 | 55.59 | 82.54 |
≪XLノード≫
|
同時数1 | 同時数2 | 同時数6 |
---|---|---|---|
平均実行速度(秒) | 7.71 | 13.31 | 36.56 |
最高実行速度(秒) | 6.37 | 11.84 | 32.34 |
最低実行速度(秒) | 10.57 | 16.01 | 40.82 |
いかがでしたでしょうか?
カラムナーデータベースらしく、約半分のCPUでありながら圧倒的に高いパフォーマンスが確認できました。集計を行うことに非常に向いていることがよくわかります。
以前のselectで特定行を取り出す時には、同時処理数により結果が出ないほど負荷が高くなっておりましたが、必要なカラムのみを取り出すために、複数同時でもパフォーマンスは変わりますが、問題なく処理出来ました。
大量のデータ集計を行いたいが、RDBMSでは十分な性能が出なくて困っている場合には、是非Redshiftを試してみて下さい!
ナレコムではRedshift導入に向けたトライアルとして以下の事を行なっておりますので、お気軽にご相談下さい!!
・ 上記のようなRDBMSからRedshift環境への移行
・ 既存BIツールでの動作確認
・ 目標レスポンスに対するノード数/サイズの最適化
次回は『Amazon RDS編~RDSの設定を変更してみよう!~』と題して、お話していきたいと思いますので、お楽しみに!
——————————————————————————————————
ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと
最新のお役立ちレシピが配信されます★
┏━━━━━━━━━━━━━┓
┃ナレコムクラウド Facebook┃
┗━━━━━━━━━━━━━┛
——————————————————————————————————