Hector (또는 다른 클라이언트)를 사용하여 Cassandra에 다른 이름으로 Column Family의 사본을 만들고 싶습니다. 가장 빠른 방법이 있습니까?카산드라에서 칼럼 패밀리를 복사하는 가장 빠른 방법은 무엇입니까?
감사
Hector (또는 다른 클라이언트)를 사용하여 Cassandra에 다른 이름으로 Column Family의 사본을 만들고 싶습니다. 가장 빠른 방법이 있습니까?카산드라에서 칼럼 패밀리를 복사하는 가장 빠른 방법은 무엇입니까?
감사
cassandra hadoop 통합은 전체 줄 패밀리를 읽고 맵 축소 작업의 입력으로 사용합니다. 또한 열 패밀리에 대량으로 출력 할 수 있습니다. org.apache.cassandra.hadoop
패키지의 코드를 읽은 다음 수행 할 작업에 대한 아이디어를 얻으십시오.
읽을 때 어떤 노드에 어떤 토큰이 있는지 파악한 다음 해당 토큰 범위를 사용하여 get_range_slice을 수행합니다 (토큰 범위를 관리 가능한 청크로 너무 분할 함). 쓰기의 경우 Bulk * 클래스를 사용하는 경우 SSTable을 생성 한 다음 cassandra에 업로드하여 위의 해결 방법과 비슷한 작업을 수행 할 수 있습니다.
sstable2json을 사용하여 위의 다른 대답이 훨씬 더 효율적이지만 훨씬 효과적 일 수 있다고 생각합니다.
, 다음 json2sstable 새 CF를로 다시 작성
프로그래밍 방식으로이 작업을 수행하고 싶습니다. 어떻게해야할까요? 감사합니다 –
이 유틸리티에 대한 코드는 오픈 소스이므로 그냥 사용하십시오! –
내 대답은 당신이 이미하고 있다고 말하는 줄마다 반복적으로 반복 할 것입니다. 단 하나의 개선점은 KeySlice를 사용하여 요청 당 여러 개의 키와 여러 행을 가져 오는 것입니다.
명확하게하기 : 일정량의 데이터와 새로운 열 패밀리가 포함 된 기존 열 패밀리에 대해 원본과 동일한 스키마 및 데이터 내용을 사용하여 새로운 이름으로 열 패밀리를 작성하십시오. 그 맞습니까? 노드 수, 정책 수 등과 같은 다른 메타 데이터는 어떻습니까? –
사실 나는 하나의 열 패밀리의 모든 데이터를 다른 열에 복사하려고합니다. 다른 이름으로 작성된 한 열 패밀리의 끝에 동일한 두 개의 복사본이 있습니다. 한 행을 행마다 반복하고 열을 읽고 다른 열 패밀리에 쓰는 방법을 사용할 수 있습니다. 이 작업을 수행하는 데 더 빠른 방법을 원합니다. 이 작업을 수행하는 더 빠른 방법이 있습니까? –
이와 비슷한 것 http://stackoverflow.com/questions/11682197/keyspace-schema-import-and-export-cassandra/11683309#11683309 – Tamil