DBMS/Cassandra
Cassandra Secondary Index
Cassandra Secondary IndexCassandra의 테이블 모델링 방식은 Query-Driven Modeling을 기반으로 하여 데이터 액세스 패턴에 맞춰 설계됩니다. 그러나 이러한 방식은 유연성이 부족하다는 단점이 있습니다.대안으로 원본 테이블과 별도로 자체 인덱스의 역할을 하는 테이블을 생성해서 배치로 저장하는 형태로 관리 중입니다.테이블을 N벌로 관리해야하고 특히나 운영 과정 중 인덱스 테이블을 추가하려면 전체 데이터 마이그레이션이 필요한 문제점이 존재한 상황.1. 앞서서...공식문서에서는 세컨더리 인덱스 사용의 경고를 확인할 수 있고, 이외의.. 구글링시 세컨더리 인덱스를 사용하지 말라는 등등의 블로그 자료들이 많이 확인되었습니다.2. 세컨더리 인덱스를 정말로 사용하면 안 될까요?문제..
Spring Data Cassandra save vs insert 동작 차이
Spring Data Cassandra의 save vs insert 동작 차이에 대해서, 간단히 정리해 본 내용입니다. 1. save vs insert 실행 결과 비교테이블 및 코드 설정테스트 할 sample 테이블과 코드는 다음과 같습니다create table sample( id text primary key , value1 text, value2 text);@Table(value = "sample")data class Sample( @PrimaryKey val id: String, var value1: String?, var value2: String?,)interface SampleRepository : CassandraRepository 1-1. Save 테스..
Cassandra DB Collection Type 사용시 주의 사항 (v4.0 미만 한정)
테이블 구조create table `test`( partition_key text, target text, subscriber text, extra map, primary key (partition_key, target, subscriber)); 쿼리select partition_key, target, subscriber, extra from test where partition_key = '1158' and target = '1' and subscriber in ('1', '2');Collection Type이 있는 경우 IN QUERY 시 위와 같은 에러가 발생함.Cassandra DB 4.0 부터 ..
Cassandra DB LWT 동작 방식 (+동시성 이슈 해결기)
푸시 쪽 개선을 위해서, 푸시 플랫폼에서 푸시 발송 시 특정 데이터 정보가 필요했습니다.그 특정 데이터는 다른 플랫폼에 있는 데이터로 데이터 특성상 푸시 발송시 해당 플랫폼으로부터 실시간으로 데이터를 조회하는 경우, 너무 많은 요청이 해당 플랫폼으로 가게 되었습니다.이러한 이유로 해당 데이터를 푸시 플랫폼으로 이벤트 파이프라인을 구성해서 사본 데이터를 저장하는 식으로 방향을 정했고, Cassandra DB의 특정 테이블에 저장해 두는 식으로 정하였습니다.별도의 저장소에 사본 데이터를 저장하는 경우, 추가적인 저장소가 필요 & 푸시 발송시 추가적인 랜덤 액세스 형태의 읽기 비용이 필요해서, 발송 속도에 영향을 줄 수 있음 상황 설명 (각색)실제 상황으로 상황을 설명하기 문제가 있을 수 있어, 전혀 다른 내..
[CassandraDB] 무중단 CassandraDB 클러스터 이전 방법 (멀티 데이터센터 구성)
회사에서 직접 운영하고 있는 Cassandra DB 클러스터 이관 등의 작업을 진행하였는데, 관련 방법들에 대해서 정리한 내용입니다.참고로, 팀 내에서 운영하고 있는 여러 플랫폼의 메인 저장소로 CassandraDB를 운영하고 있으며, CassandraDB의 경우 별도의 DBA가 없어 팀 내에서 직접 운영하고 있습니다.카산드라 클러스터 이관을 위해서 멀티 데이터센터를 구축해서 이전하는 방법으로 클러스터를 이전하였습니다.- 아래 예시들은 기존 데이터 센터를 dc1, 신규 데이터 센터를 dc2로 가정하고 작성되어 있는 점 참고 바랍니다.이관 전 사전 체크 사항Cassandra DB 설정 SnitchSimpleSnitch인 경우 단일 DataCenter를 위한 Snitch로, 멀티 데이터 센터 사용을 위해선 ..