나는 제거하고 싶은 오래된 카산드라 클러스터를 가지고 있으며 선택한 클러스터의 일부 테이블 만 데이터를 이전 클러스터에서 새로 만든 클러스터로 전송하려고합니다. Cassandra의 COPY
명령을 약 1,500 만 개의 행 (각 행에 약 20 개의 열)이있는 테이블에서 사용하려고했습니다. 나는 우리의 새 클러스터에서 같은 테이블에 CSV 파일에서 데이터를 가져올 때, 나는 끊임없이이 반응을 얻고있다 :카산드라의 한 클러스터에서 다른 클러스터로 데이터 전송
: WriteTimeout - 오류 서버에서 : 코드 = 1100 코디네이터 노드를 복제본을 기다리는 시간이 초과되었습니다. des 'responses] message = "작업 시간 초과 - 0 응답 만 받았습니다." 정보 = { 'received_responses'0 'required_resp onses'1, '일관성': 'ONE'}, 나중에 다시 시도합니다, 분명히 5
의 시도 1이 방법은 작동하지 않습니다. 한 클러스터에서 다른 클러스터로 일부 테이블 만 스트리밍 할 수있는 방법이 있습니까? 우리가 수백만 개의 행을 가지고 있음에도 불구하고, 데이터는 그다지 크지 않습니다. 내가 가지고있는 가장 큰 테이블은 약 2.5GB입니다.
해당 키 공간은 현재 SimpleStrategy를 사용하도록 구성되어 있습니다. NetworkTopologyStrategy가 도움이됩니까? 필자는 소수의 테이블에서 데이터를 스트리밍하여 다른 테이블을 남기고 싶다는 점을 지적해야합니다.
nodetool 스냅 샷을 가져 와서 다른 서버로 scp를 보낸 다음? – Ankush92
이것이 바로 sstableloader가 들어오는 곳입니다. 문서가 게시물에 링크되었습니다. – mando222
스냅 샷을 성공적으로 가져 와서 전송하고 nodetool refresh를 사용하여 데이터를 새 클러스터에로드했습니다. 두 클러스터의 키 수는 이제 같지만 데이터를 쿼리하려고하면 데이터가 누락 된 것으로 나타났습니다. 노드마다 스냅 샷을 찍어야합니까? RF = 1 인 3 노드 클러스터가 있습니다. 즉, 2 노드에서 스냅 샷을 찍어야합니까? – Ankush92