blob: f62b86896f48fc1547c2f8afef264556aa8dbc86 [file] [log] [blame]
= sstablesplit
Big sstable files can take up a lot of disk space. The sstablesplit tool
can be used to split those large files into smaller files. It can be
thought of as a type of anticompaction.
ref: https://issues.apache.org/jira/browse/CASSANDRA-4766
Cassandra must be stopped before this tool is executed, or unexpected
results will occur. Note: the script does not verify that Cassandra is
stopped.
== Usage
sstablesplit <options> <filename>
[cols=",",]
|===
|--debug |display stack traces
|-h, --help |display this help message
|--no-snapshot |don't snapshot the sstables before splitting
|-s, --size <size> |maximum size in MB for the output sstables (default:
50)
|===
This command should be run with Cassandra stopped. Note: the script does
not verify that Cassandra is stopped.
== Split a File
Split a large sstable into smaller sstables. By default, unless the
option --no-snapshot is added, a snapshot will be done of the original
sstable and placed in the snapshots folder.
Example:
....
sstablesplit /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-8-big-Data.db
Pre-split sstables snapshotted into snapshot pre-split-1533144514795
....
== Split Multiple Files
Wildcards can be used in the filename portion of the command to split
multiple files.
Example:
....
sstablesplit --size 1 /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-1*
....
== Attempt to Split a Small File
If the file is already smaller than the split size provided, the sstable
will not be split.
Example:
....
sstablesplit /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-8-big-Data.db
Skipping /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-8-big-Data.db: it's size (1.442 MB) is less than the split size (50 MB)
No sstables needed splitting.
....
== Split a File into Specified Size
The default size used for splitting is 50MB. Specify another size with
the --size option. The size is in megabytes (MB). Specify only the
number, not the units. For example --size 50 is correct, but --size 50MB
is not.
Example:
....
sstablesplit --size 1 /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-9-big-Data.db
Pre-split sstables snapshotted into snapshot pre-split-1533144996008
....
== Split Without Snapshot
By default, sstablesplit will create a snapshot before splitting. If a
snapshot is not needed, use the --no-snapshot option to skip it.
Example:
....
sstablesplit --size 1 --no-snapshot /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-11-big-Data.db
....
Note: There is no output, but you can see the results in your file
system.