NoSQL/Cassandra DB

카산드라(cassandra), 데이터 저장 구조 - 키스페이스(Keyspace)

어휘 창고 지기 2020. 10. 23. 12:39
반응형

카산드라는 데이터를 노드에 저장합니다. 이 노드의 연결 구조를 클러스터(Cluster) 또는 링(Ring)이라 합니다. 그러나 데이터가 노드에 직접 저장되는 것은 아닙니다. 노드에 저장하기 위해서는 테이블이라는 논리적인 저장소가 필요합니다. 이를 도식화하면 다음과 같습니다.

그림 1. 카산드라 데이터 저장 구조 예시

위의 그림에서 노드는 키스페이스(Keyspace)를 포함하며 논리적 저장소인 테이블은 키스페이스에 포함됩니다. 카산드라에서는 테이블을 생성하기 전에 반드시 키스페이스를 생성해야 합니다. 키스페이스 생성 시 데이터를 몇 개의 노드에 복제할지를 결정하는데 이를 Replication Factor(이하 RF)라 합니다. 예를 들어 RF를 3으로 선언한 경우는 저장된 데이터를 인접한 두 개의 노드에 데이터를 복제합니다. 만약, RF를 테이블마다 다르게 적용해야 한다면 RF의 종류만큼 키스페이스를 만들어야 합니다. 동일한 키스페이스에는 RF를 하나만 지정할 수 있기 때문입니다.

다음은 키스페이스를 생성하는 CQL(Cassandra Query Language) 문장구조입니다.

그림 2. 키스페이스 생성 CQL 구조

위의 그림의 replication_map 부분은 복제전략(SimpleStrategy/NetworkTopologyStrategy)과 몇 개의 복제본을 만들 것인지를 결정합니다.

반응형