圧縮サブプロパティ
テーブルの圧縮の構成。
CQLを使用して、コンパクション・プロパティのマップと以下のサブプロパティを作成することにより、テーブルの圧縮を構成できます。
圧縮サブプロパティ | デフォルト | 説明 |
---|---|---|
sstable_compression | SnappyCompressor | 使用する圧縮アルゴリズム。有効な値は、LZ4Compressor、SnappyCompressor、およびDeflateCompressorです。以下の「sstable_compression」を参照してください。 |
chunk_length_kb | 64KB | ディスク上では、SSTableは、ランダム読み取りを可能にするためにブロック単位で圧縮されます。この圧縮サブプロパティは、そのブロックのサイズ(KB)を定義します。値をデフォルト値より大きくすると、圧縮率が上がりますが、実際に読み取るときに読み取るデータの最小サイズが大きくなります。テーブルの圧縮には、デフォルト値が適切です。読み取り/書き込みアクセス・パターン(一度に要求される標準的なデータ量)とテーブル行の標準的なサイズに合わせて圧縮サイズを調整します。 |
crc_check_chance | 1.0 | 圧縮が有効にされている場合、圧縮されている各ブロックには、ディスクのデータ劣化を検知し、破損が他のレプリカに伝播するのを防止するために、そのブロックのチェックサムが含まれます。このオプションは、読み取り時にそれらのチェックサムをチェックする割合を定義します。デフォルトでは、常にチェックされます。チェックサムのチェックを無効にするには、0に設定します。たとえば、2回に1回チェックするには、0.5に設定します。 |
sstable_compression
使用する圧縮アルゴリズム。有効な値は、LZ4Compressor、SnappyCompressor、およびDeflateCompressorです。圧縮を無効にするには、以下のように空の文字列('')を使用します。
ALTER TABLE mytable WITH COMPRESSION = {'sstable_compression':'' };
適切な圧縮の選択は、要件として読み取りパフォーマンスよりも領域の節約が重要であるかどうかにより異なります。解凍速度が最も速いのはLZ4で、次にSnappy、Deflateの順になります。圧縮効果は解凍速度に反比例します。DeflateまたはSnappyによる高い圧縮率は、一般用途のワークロードでのパフォーマンス低下と引き換えにするほどではありませんが、アーカイブ用データでは検討に値する場合があります。また、開発者は、org.apache.cassandra.io.compress.ICompressorインターフェイスを使用してカスタム圧縮クラスを実装することもできます。完全なクラス名を「文字列定数」として指定します。