nodetool compact

1つ以上のテーブル、または指定されたSSTableに対してメジャー・コンパクションを強制します。

1つ以上のテーブルでメジャーcompactionを強制するか、または指定されたSSTableでユーザー定義コンパクションを強制します。

OpsCenterでは、コンパクションを実行するためにNodes UIでコンパクト・オプションを提供します。

メジャー・コンパクションは、影響を受けるテーブルに対してどのコンパクション・ストラテジを使用するかによって、動作が異なる場合があります。
  • 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が発生します。

構文

nodetool [connection_options] compact 
[-et end_token] [-s] [-st start_token] [--user-defined] 
[--] [keyspace tables [tables ...] | sstable_name ...]
1. 凡例
構文規則 説明
大文字 リテラル・キーワード。
小文字 リテラル以外。
Italics 変数値。有効なオプションまたはユーザー定義値と置き換えます。
[ ] 任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。
( ) グループ。丸かっこ(( ))は、選択肢を含むグループを示します。丸かっこは入力しないでください。
| または。縦棒(|)で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。
... 繰り返し可能。省略記号(...)は、構文要素を必要な回数だけ繰り返すことができることを示します。
'Literal string' 単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。
{ key:value } マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。
<datatype1,datatype2> セット、リスト、マップ、またはタプル。山かっこ(< >)で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型をカンマで区切ります。
cql_statement; CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。
[ -- ] コマンドライン・オプションとコマンド引数は、2つのハイフン(--)で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。
' <schema> ...</schema> ' 検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。
@xml_entity='xml_entity_type' 検索CQLのみ:スキーマ・ファイルおよびsolrconfigファイル内のXML要素を上書きする実体とリテラル値を示します。

定義

短い形式と長い形式のパラメーターはカンマで区切られています。

接続オプション

-h, --host hostname
リモート・ノードのホスト名またはIPアドレス。省略した場合、デフォルトはローカル・マシンです。
-p, --port jmx_port
JMXポート番号。
-pw, --password jmxpassword
セキュアなJMXで認証するためのJMXパスワード。パスワードを入力しないと、入力するように求められます。
-pwf, --password-file jmx_password_filepath
JMX認証用の資格情報を格納するファイルへのファイルパス。
-u, --username jmx_username
セキュアなJMXで認証するためのユーザー名。

コマンド引数

--
オプションと間違えられる可能性のある引数とオプションを区切ります。
-et, --end-token end_token
範囲内の最後のトークン。開始トークン(-st)が必要です。
keyspace_name
キースペースの名前。デフォルトでは、すべてのキースペース。
-s, --split-output
単一の大きいファイルは作成しません。SizeTieredCompactionStrategy(STCS)を使用する際に、合計サイズの50%-25%-12.5%などのファイルに出力を分割します。DTCSの場合は無視します。
sstable_name
SSTableファイルの名前。sstable_nameまたはsstable_directoryを指定します。
-st, --start-token start_token
範囲内の最初のトークン。終了トークン(-et)が必要です。
table_name
テーブルの名前。
--user-defined
ユーザー定義のコンパクションについて、リスト済みのファイルを送信します。