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かを選ぶ事になりそうです