- RedShiftでパフォーマンスをあげるためには、次のことに注意してテーブルを設計する必要があります。
- 無駄のないデータ型を使って、ディスクIOを最小にする
- データを効率的圧縮できる圧縮方法を選ぶ
ディスクIOを最小にする
RedShiftでパフォーマンスをあげるためは、ディスクIOを最小にする必要があります。
使用するデータに対して、不必要な型を使うと無駄にディスクにアクセスしてしまいます。
RedShiftでは、
・マルチバイト文字
・数値型
・文字型
・日時型
・ブール型
など多数の型が用意されていますので適切な型を使用すると共に、データの桁数についても注意しなくてはなりません。
使用するデータのバイト数も調べておいて、できるだけ効率的にデータを格納すれば、ディスクIOを少なくすることができます。
ネットワーク転送を最小にする
ネットワークの転送量を小さくすることも、RedShiftでパフォーマンスをあげるのに効果的です。
RedShiftでは列ごとに圧縮方式を指定できますので、データの内容に合った圧縮方式を選べます。
テーブルを作成する時に手動で圧縮方式を選ぶこともできますが、COPYコマンドを行うとRedShiftが自動的にデータの内容を解析して、適切な圧縮方式を適用します。
データを圧縮することでネットワークの転送量が少なくなって、RedShiftのパフォーマンスが向上します。
本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。
参考文献
- AWS Black Belt Techシリーズ (SlideShare)
- 列圧縮タイプの選択 – Amazon Redshift
- データ型 – Amazon Redshift
- Amazon Redshiftの分析対象とするデータの設計/加工のポイント (2/4):CodeZine(コードジン)