0

현재 Cassandra 3.3.0을 사용하여 프로덕션 환경에서 실행중인 Cassandra 클러스터가 있습니다. 다운 타임없이 DSE 클러스터로 전환하려고합니다.바닐라 카산드라 클러스터를 Datastax 엔터프라이즈 클러스터로 라이브 마이그레이션하는 방법

우리는 이미 스키마를 마이그레이션하는 도구를 가지고 있지만 다운 타임없이 일종의 Cassandra 클러스터에서 새로운 Datastax 클러스터로 데이터를 마이그레이션하는 가장 좋은 방법은 무엇입니까?

일반 Cassandra로 클러스터를 전환하는 경우 새 클러스터의 노드를 현재 실행중인 클러스터에 조인 한 다음 모든 새 노드를 추가 한 후 이전 노드를 종료 할 수 있습니다. 데이터를 마이그레이션하는 데 추가 코드가 필요하지 않기 때문에 이점이 있습니다. DSE에서 이와 유사한 해결책이 있습니까?

답변

2

일반적으로 DSE를 설치하면 클러스터에서 Cassandra 버전과 일치하게됩니다. 그러나 당신이 카산드라 3.3.0을 목록 화하는 것을 보았습니다, 맞습니까? 카산드라 릴리스 노트를 확인했지만 그 버전을 찾을 수 없었습니다.

Cassandra와 동일한 주요 릴리스이므로 스키마 마이그레이션을 수행하지 않고도 노드에 DSE 5.0을 설치할 수 있습니다.

문서 설치가 모두 여기에 포함되어야한다 :

https://docs.datastax.com/en/latest-dse/datastax_enterprise/install/installTOC.html

만약 당신이 또한 새로운 DSE 클러스터를 스탠드 업하고 sstableloader 도구를 사용을 통해 데이터를 스트리밍 할 수있는 길을 가고 싶지 않아요 그러나 :

당신이 항상 생산에 아무것도하기 전에 먼저 테스트해야 말할 것도 물론 https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsBulkloader.html

!

+0

버전 정보 : 카산드라 : [cqlsh 5.0.1 | 카산드라 3.3 | CQL 스펙 3.4.0 | 네이티브 프로토콜 v4]. 죄송합니다. 3.3.0이 아니라 3.3 일뿐입니다. 그래서 제가 가지고있는 카산드라의 버전이 DSE에 의해 지원된다면 DSE를 기존의 카산드라 클러스터 위에 설치할 수 있다고 말하고 있습니까? 또한 sstableloader 도구를 살펴 보았는데 꽤 복잡해 보입니다. 만약 내가 본질적으로 Java에서 스키마를 다시 작성해야한다고 생각하지 않는다면? 워드 프로세서는 특히 유익한 것처럼 보이지 않았습니다. 좋은 튜토리얼이 있습니까? –

+0

좋아, Cassandra 3.0은 현재 DSE에서 지원되는 가장 최신 버전입니다 (DSE5.0.x). sstableloader는 한 클러스터에서 다른 클러스터로 sstables를 스트리밍합니다. 여기서 문제는 cassandra 버전이 더 새로운 경우 sstableformat이 이전 버전과 호환되지 않을 수 있다는 것입니다. java로 작성해야 할 것은 없습니다. 대상 클러스터에 스키마를 작성해야하지만 cqlsh를 사용하는 것입니다. – markc

+0

SSTableLoader가 우리에게 다운 타임이 발생하는 것을 막지는 못합니다. SSTableLoader가 데이터 스트리밍을 마자 마자 DSE 클러스터가 종료되므로 새로운 DSE 클러스터가 최신 데이터로 최신 상태가되도록 SSTableLoader를 실행하는 동안 데이터베이스가 기록되지 않도록해야합니다. 날짜. DSE 클러스터로 마이그레이션 할 수있는 가능한 솔루션은 코드를 업데이트하여 두 데이터베이스에 쓰고 바닐라 카산드라 클러스터에서 읽은 다음 키 공간에 대한 SSTableLoader를 실행할 수 있습니다. 이것이 유일한 선택입니까? –

관련 문제