sstablesplit — 큰 SSTable 분할
sstablesplit — 큰 SSTable 분할
큰 sstable 파일은 많은 디스크 공간을 차지할 수 있어요. sstablesplit 도구는 그런 큰 파일을 더 작은 파일들로 분할하는 데 사용합니다. 일종의 안티 컴팩션(anticompaction)으로 생각할 수 있어요.
관련 문서: CASSANDRA-4766
이 명령은 Cassandra가 중지된 상태에서 실행해야 합니다. 스크립트는 Cassandra가 정지되었는지 검증하지 않습니다.
본문
기본 사용법은 다음과 같습니다.
sstablesplit <options> <filename>
지원하는 옵션은 다음과 같습니다.
| 옵션 | 설명 |
|---|---|
| --debug | 스택 트레이스 표시 |
| -h, --help | 도움말 메시지 표시 |
| --no-snapshot | 분할 전에 sstable 스냅샷을 만들지 않음 |
-s, --size <size> |
출력 sstable의 최대 크기(MB, 기본 50) |
이 명령은 Cassandra를 중지한 상태에서 실행해야 합니다. 참고: 스크립트는 Cassandra가 정지되었는지 검증하지 않습니다.
파일 분할
큰 sstable을 더 작은 sstable들로 분할해요. 기본적으로 --no-snapshot 옵션을 넣지 않으면 원본 sstable의 스냅샷을 만들어 snapshots 폴더에 배치합니다.
예시:
sstablesplit /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-8-big-Data.db
Pre-split sstables snapshotted into snapshot pre-split-1533144514795
여러 파일 분할
명령의 파일 이름 부분에 와일드카드를 사용해 여러 파일을 분할할 수 있어요.
예시:
sstablesplit --size 1 /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-1*
작은 파일 분할 시도
파일이 지정한 분할 크기보다 이미 작다면, sstable은 분할되지 않습니다.
예시:
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.
지정한 크기로 파일 분할
분할에 사용되는 기본 크기는 50MB입니다. --size 옵션으로 다른 크기를 지정할 수 있어요. 크기 단위는 메가바이트(MB)이며, 숫자만 지정하세요. 예를 들어 --size 50은 올바르지만 --size 50MB는 올바르지 않습니다.
예시:
sstablesplit --size 1 /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-9-big-Data.db
Pre-split sstables snapshotted into snapshot pre-split-1533144996008
스냅샷 없이 분할
기본적으로 sstablesplit은 분할 전에 스냅샷을 만듭니다. 스냅샷이 필요 없다면 --no-snapshot 옵션을 사용해 건너뛸 수 있어요.
예시:
sstablesplit --size 1 --no-snapshot /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-11-big-Data.db
참고: 출력은 없지만, 파일 시스템에서 결과를 확인할 수 있습니다.