データウェアハウスに関する基本的な内容をまとめてみたものです。データウェアハウスに関する、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が最適な方法を選んで圧縮してくれます。