반응형
아래 그림에서 '홍길동' 데이터를 입력할 때 저장될 노드를 찾는 역할을 파티셔너(Partitioners)라고 설명했습니다. 파티셔너가 데이터가 저장될 위치를 찾을 때는 해시(hash) 함수를 사용하는데 이 해시 함수의 파라미터(parameter)가 파티션 키(Partition Key)입니다.
즉, 아래의 그림처럼 해시 함수의 파라미터로 입력된 값 "1" 이 파티션 키입니다. 카산드라는 테이블을 생성할 때 파티션 키를 지정해야 하는데 아래의 예에서는 "번호"를 파티션 키로 지정하였습니다. 파티션 키가 해시 함수를 통과하면 토큰(token) 값을 받습니다. 토큰 값은 클러스터에 존재하는 여러 노드 중 하나에 속합니다. 토큰 값이 속하는 노드에 데이터를 저장합니다.
아래는 테이블 생성 시 파티션 키를 지정하는 CQL(Cassandra Query Language)문장입니다.
위의 문장에서 PRIMARY KEY의 괄호 안의 첫 번째 컬럼이 파티션키이며 이 키값으로 저장할 노드를 결정합니다. 참고로 파티션 키가 두 개 이상인 경우는 위의 예처럼 괄호(month, day)로 묶어서 지정합니다.
반응형
'NoSQL > Cassandra DB' 카테고리의 다른 글
카산드라(cassandra), Virtual Node(vnode) (0) | 2020.10.21 |
---|---|
카산드라(cassandra), 토큰(token) (0) | 2020.10.12 |
카산드라(cassandra), 데이터가 저장되는 노드 찾기 - 파티셔너(Partitioners) (0) | 2020.09.15 |
카산드라(cassandra), 데이터를 읽고 쓰는 과정 (0) | 2020.09.08 |
카산드라(cassandra), 클라이언트에서 노드(Node) 접근 - 코디네이터(Coordinator) (0) | 2020.08.31 |