Redshiftのcopyコマンドは、データファイルを圧縮します。 にあるように、3種類の圧縮形式をサポートしています
どれぐらい性能差があるのか検証してみました
# | lzop | gzip | bzip2 |
---|---|---|---|
1 | 26.85 | 26.71 | 27.76 |
2 | 25.82 | 28.14 | 27.7 |
3 | 26.32 | 25.8 | 27.42 |
4 | 26.88 | 26.89 | 27.59 |
5 | 27.55 | 26.59 | 27.47 |
av | 26.68 | 26.82 | 27.59 |
9000行ぐらいのcsvをそれぞれの圧縮形式で圧縮してcopyにかかった秒数を比較しています
lzopとgzipがほぼ同じ、bzip2が1秒ほど遅い結果になっています
bzip2は若干遅くはありますが、すごく安定しています
lzopは、高速な圧縮・展開動作を主目的に開発されており となっていたため、1番速い結果を期待していたのですが、思惑とは外れた結果になっています
lzop
圧縮前後のファイル容量は、
方式 | 容量 |
---|---|
圧縮前 | 41M |
lzop | 12M |
gzip | 5.7M |
bzip2 | 3.8M |
となっていて、bzip2の圧縮率の高さが光っています
lzopはそんなに知名度はない認識です
そこそこ早く誰もが知っているgzipか、圧縮率の高さと安定したcopy時間のbzip2かを選ぶ事になりそうです