• RedShiftとElastic MapReduceの性能を比較すると、大規模データの集計処理速度などはRedShiftの方が10倍速くなっています。
  • しかし、頻繁にデータを更新する処理については、RedShiftのパフォーマンスは良くありません。
  • よりRedshiftを高速化するためには、ソートキー・DISTKEY・圧縮などが有効です。

 

RedShiftと他のデータベースとの性能の比較

RedShiftの処理速度とパフォーマンスについては、オープンソース型フレームワークHadoopで管理されるAmazon Elastic MapReduceと比較することで明確になります。
Amazon Elastic MapReduceもビッグデータを高速で処理するAmazonのWEBサービスです。

100GB~50TBのデータ処理で比較すると、RedShiftはElastic MapReduceの10分の1の時間で処理できることが分かります。
処理速度が速いことはコストの低減することにつながりますので、運用コストもRedShiftの方が大幅に少なくて済むために、パフォーマンスについてもRedShiftが優れています。

 

 

 

RedShiftはどのような用途で速いのか?

RedShiftはカラム型データベースであるために、合計や平均などを計算する集計処理の速度が速いのが特徴です。
大規模なデータの集計処理になると、他のデータベースよりも圧倒的なパフォーマンスを発揮します。

しかし、大量のデータのインポートや更新などの処理については苦手なので、頻繁にデータの内容を更新すると、RedShiftのパフォーマンスは低下してしまいます。

 

 

 

どのようにチューニングすると速度向上効果が大きいのか

Redshiftを高速化するためのチューニング方法として、ソートキー・DISTKEY・圧縮があります。

・ソートキーによる高速化
Redshiftではテーブルを作成する時に、複数の列に対してソートキーを設定することが可能です。
ソートキーが定義されていると、テーブルにデータがロードされる際にソートキー順にデータが並べられます
Redshiftでは列データを1MB単位で扱いますので、ソートキーを使って効果的にデータを格納すると、検索にかかる時間を大幅に削減することが可能です。

・DISTKEYによる高速化
Redshiftはテーブルのデータを複数のノードに分散して格納しますが、偏ってデータを格納してしまうと処理速度が落ちてしまいます。
そのため、DISTKEYを使って、ノードへの分散方法を指定することが有効です。

・圧縮による高速化
テーブルにデータを格納する時に、データのサイズを小さくするのが圧縮です。
圧縮することで処理するデータ量を少なくすることができますので、処理速度を上げることができます。
Redshiftには複数の圧縮方法が用意されていますが、COPYコマンドを使うとRedshiftが最適な方法を選んで圧縮してくれます。

 

 

 

本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。

 

 

参考文献