2012-09-11 6 views
3

Cassandra sstable2json 유틸리티를 사용하여 sstable을 Json 파일로 변환 한 다음 일부 행 값을 수정했습니다. 이제 유틸리티 json2sstable이 호출되었습니다. Utlity json2sstable이 다음 명령을 사용하여 성공적으로 실행되었습니다.Cassandra 클라이언트가 json2sstable을 통해 변경된 내용을 표시하지 않습니다.

명령 :

bin/json2sstable -s -K UserDemo -c Users Users.json /opt/dse-2.1/dse-data/UserDemo/Users-hd-1-Data.db 

나는 변경 사항이 카산드라 클라이언트를 사용하지 반영되거나보고했습니다. 변경 사항이 json2sstable 유틸리티를 사용하여 수행 한 작업에 반영되지 않은 것으로 나타났습니다.

및 nodetool을 사용하여 CF 사용자를 새로 고치려고했지만 변경된 사항이 없습니다.

카산드라에 반영되지 않은 이유에 대한 조언을 구하십시오.

사전 감사합니다.

답변

1

JSON 가져 오기/내보내기는 실제로 디버깅 용입니다. 일종의 대량로드를 시도하는 경우 cqlsh COPY FROM (1.1.2에서 시작) 또는 sstableloader 도구를 살펴보십시오.

즉, 수동으로 새 sstable을 주입하는 경우 ColumnFamilyStore.loadNewSSTables 메소드를 호출해야합니다. 이것은 nodetool에 노출되지 않습니다. (기억해 두십시오 : 디버깅 용). jvisualvm 또는 이와 비슷한 방법으로 호출해야합니다.

+0

응답 해 주셔서 대단히 감사드립니다. 디버깅을 위해 이러한 유틸리티를 이해했으며 대량로드 또는 새로운 sstable로드를 시도하지 않았습니다. 이 유틸리티를 사용하여 기존의 sstable을 업데이트하고 클라이언트를 통해 검증합니다. 이 유틸리티를 사용하여 달성 할 수 있습니까? – Jagan