Posted at

RedShiftのパフォーマンス・速度

More than 1 year has passed since last update.

データウェアハウスに関する基本的な内容をまとめてみたものです。データウェアハウスに関する、Web上にすでにある解説コンテンツをまとめたサイトの抜粋です。

RedShiftのパフォーマンス・速度


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が最適な方法を選んで圧縮してくれます。