sstablesplit — 큰 SSTable 분할

sstablesplit — 큰 SSTable 분할

큰 sstable 파일은 많은 디스크 공간을 차지할 수 있어요. sstablesplit 도구는 그런 큰 파일을 더 작은 파일들로 분할하는 데 사용합니다. 일종의 안티 컴팩션(anticompaction)으로 생각할 수 있어요.

관련 문서: CASSANDRA-4766

이 명령은 Cassandra가 중지된 상태에서 실행해야 합니다. 스크립트는 Cassandra가 정지되었는지 검증하지 않습니다.

출처: sstablesplit — 큰 SSTable 분할

본문

기본 사용법은 다음과 같습니다.

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

참고: 출력은 없지만, 파일 시스템에서 결과를 확인할 수 있습니다.

더 알아보기 (Learn more)