nodetool compact

1つまたは複数のテーブルを対象にメジャー・コンパクションを強制します。

1つまたは複数のテーブルを対象にメジャー・コンパクションを強制します。

構文

nodetool [options] compact [(-et <end_token> | --end-token <end_token>)] [(-s | --split-output)] [(-st <start_token> | --start-token <start_token>)] [--] [<keyspace> [<tables>...]][--user-defined] <relative_path_to_SSTable file>...
tarボールおよびInstaller-No Servicesのパス:
installation_location/resources/cassandra/bin

共通オプション

これらのオプションは、すべてのnodetoolコマンドに適用されます。

表 1. オプション
短い形式 長い形式 説明
-h --host ホスト名またはIPアドレス。
-p --port リモートJMXエージェントのポート番号。
-pw --password パスワード。
-pwf --password-file パスワード・ファイルのパス。
-u --username リモートJMXエージェントのユーザー名。
-- オプションと間違えられる可能性のある引数とオプションを区切ります。
注:
  • tarボール・インストールの場合は、installation_location/binディレクトリーからコマンドを実行します。
  • RMI認証用のユーザー名とパスワードがホストのcassandra-env.shファイルに明示的に設定されている場合は、認証情報を指定する必要があります。

コンパクション・オプション

コンパクション・コマンドに固有のオプションは次のとおりです。

表 2. コンパクション・オプション
短い形式 長い形式 説明
-et token --end-token token コンパクション範囲の終了トークンを指定します。開始トークン(-st)が必要です。
-st token --start-token token コンパクション範囲の開始トークンを指定します。終了トークン(-et)が必要です。
-s --split-output STCSを使用する際に、合計サイズの50%-25%-12.5%などのファイルに出力を分割します。
注:
  • STCSの場合は、-sオプションを除外すると、1つの大きなSSTableが作成されます。
  • DTCSの場合は、-sを使用しても効果はなく、1つのファイルが作成されます。
keyspace [tables] 全体のキースペースまたは指定したテーブルに対してコンパクションを実行します。テーブル名はスペースで区切ります。
--user-defined sstableファイル名 1つまたは複数のSSTableのコンパクションを実行します。相対パスとファイル名を指定します。

説明

このコマンドは、SizeTieredCompactionStrategy(STCS)、TimeWindowCompactionStrategy(TWCS)、またはレベル化コンパクション(LCS)を使用してテーブルのコンパクション・プロセスを開始します。
  • キースペースもテーブルも指定しない場合は、すべてのキースペースおよびテーブルに対してメジャー・コンパクションが実行されます。
  • キースペースのみを指定した場合は、そのキースペースにあるすべてのテーブルに対してメジャー・コンパクションが実行されます。
  • 1つ以上のテーブルを指定すると、それらのテーブルに対してメジャー・コンパクションが実行されます。
メジャー・コンパクションは、影響を受けるテーブルに対してどのコンパクション・ストラテジを使用するかによって、動作が異なる場合があります。
  • SizeTieredCompactionStrategy(STCS):デフォルトのコンパクション・ストラテジ。このストラテジは、ディスク上に、min_thresholdテーブル・サブプロパティで構成されているサイズに似たサイズのSSTableがいくつかあるときに、マイナー・コンパクションを発動します。マイナー・コンパクションでは、キースペースのすべてのテーブルが関与するわけではありません。「STCSコンパクション・サブプロパティ」も参照してください。
  • DateTieredCompactionStrategy(DTCS)(廃止予定)。(廃止予定)
  • TimeWindowCompactionStrategy(TWCS):このストラテジは時系列データの代替ストラテジです。一連の時間枠を使用してSSTableをコンパクションします。時間枠では、TWCSによって、メモリーからフラッシュされたすべてのSSTableが、STCSを使用してより大きなSSTableにコンパクションされます。時間枠が終了すると、これらすべてのSSTableが1つのSSTableにコンパクションされます。次の時間枠が開始され、プロセスが繰り返されます。時間枠の時間のみ、設定する必要があります。「TWCSコンパクション・サブプロパティ」を参照してください。TWCSの詳細については、「データはどのように維持されるか」を参照してください。
  • LeveledCompactionStrategy(LCS):レベル化コンパクション・ストラテジでは、いくつかのレベルにグループ分けされる、固定の、比較的小さなサイズ(デフォルトでは160 MB)のSSTableが作成されます。各レベル内で、SSTableはオーバーラップしないことが保証されます。各レベル(L0、L1、L2など)は、1つ下のレベルの10倍のサイズです。SSTableは、継続的に、次第により大きなレベルへとコンパクションされていくため、レベルが低い場合よりもレベルが高い方が、ディスクI/Oが均等化され予測しやすくなります。レベルごとに、行キーはオーバーラップしない次のレベルのSSTableにマージされます。データベースが、各レベルのどのSSTableで行キー・データの有無を調べるかを特定できるため、読み取りのパフォーマンスが向上します。このコンパクション・ストラテジは、GoogleのLevelDB実装をモデルにしています。「LCSコンパクション・サブプロパティ」も参照してください。

詳細については、「データはどのように維持されるか」および「コンパクションの構成」を参照してください。

注: メジャー・コンパクションでは、マイナー・コンパクションよりもかなり多くのディスクI/Oが発生します。