Amazon Redshiftの ANALYZE COMPRESSIONの圧縮可能率に関して

2017.05.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2017年の2月にZSTDエンコードが追加され、ANALYZE COMPRESSIONで分析するとZSTDエンコードが推奨されることが多くなりました。

Amazon Redshift: 【新機能】列圧縮の圧縮エンコードとして、ZSTDが追加されました

ZSTDエンコードに変更するとどの程度容量が削減されるのでしょうか。以下のANALYZE COMPRESSIONのページに

ANALYZE COMPRESSION - Amazon Redshift

圧縮分析を行い、分析されたテーブルの推奨列エンコードスキームのレポートを生成します。レポートには、列ごとに現在のエンコードと比較したディスク容量の圧縮可能率の推定値が含まれます。

とありますのでANALYZE COMPRESSIONは現在のエンコードと比較した結果のようです。それでは圧縮可能率の推定値とは何なのか具体例を挙げて見ていきましょう。

上記のページを見ると以下のような表があります

Table   | Column         | Encoding | Est_reduction_pct
--------+----------------+----------+------------------
・・・           
listing | dateid         | lzo      | 96.94  
・・・

Est_reduction_pct列の値が圧縮可能率の推定値になります。

この例でいうとlistingテーブル、dateidカラムの現在のサイズが100MBの場合、lzoエンコードに変更すると96.94%削減され3.06MBになるという見積になります。圧縮可能率の推定値が大きいほど効果があるということですね。ただしこの値は推定値なので絶対このサイズになるというわけではないです。その点を注意しましょう。