Database/Cassandra 24

[Cassandra] UDT DATA TYPE insert 주의 사항

이번글에서는 Cassandra에서insert 시 UDT DATA TYPE 사용할때 조금한 팁에 대해서 설명드리려고 해요. UDT Type은 User-Defined-type으로 Cassandra에서 제공하는 데이터 타입 말고 사용자가 직접 타입을 선언해서 사용할 수 있는 타입인데요. 아래 처럼 데이터를 insert 할 때, basics라는 변수에 UDT 형식으로 사용이 가능해요. cqlsh> INSERT INTO cycling.cyclist_stats (id, lastname, basics) VALUES ( e7ae5cf3-d358-4d99-b900-85902fda9bb0, 'FRAME', { birthday : '1993-06-18', nationality : 'New Zealand', weight : ..

Database/Cassandra 2022.10.30

[Cassandra] Compaction, Compression

개요 카산드라 테이블 생성시, 상세 옵션을 보면 compression과 compaction이 있다. create table test ( logtime text, log text, primary key (log, logtime) ) with clustering order by (logtime asc) and caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} and compaction = {'max_threshold': '32', 'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'} and compression = {'class': 'or..

Database/Cassandra 2020.06.24

[Cassandra][datastax]Physical Analysis

물리 데이터 모델링 순서 1. 분석 및 확인 - 문제 찾기 2. 물리적 최적화 - 문제 고정 3. 데이터 타입 추가 - 모델링 마무리 4. CQL CREATE TABLE - 테이블 생성 왜 분석이 필요한가 전형적으로 논리 설계는 모범 사례인 동시에 효율적인 성능을 낸다. 쿼리당 파티션 중첩 데이터 중복 데이터 현실에서는 전반적은 논리 모델의 효율성은 여전히 뜬구름 잡는 이야기같다. 데이터베이스 엔진은 한계가 있다. 클러스터 리소스가 제한적이다. : 노드, 디스크 공간, 메모리 등등.. 카산드라가 직접적으로 지원하지 않는 델링 무엇을 분석하는가 문제 찾기 파티션 사이즈 데이터 중복 데이터 일관성 어플리케션 관점에서 조인 참조 무결성 제약조건 트랜잭션 데이터 전처리 모델 최적화 문제 고정하기 키 최적화 테이..

Database/Cassandra 2020.06.17

[Cassandra] com.datastax.driver.core.exceptions.ServerError

스프링에서 카산드라 연결까지는 문제 없이 연결 되었지만, 아래와 같은 에러가 발생하였다. 어플리케이션 실행 시 카산드라 정상 연결 확인 ....... 2020-06-05 10:59:55.220 [restartedMain] INFO io.undertow.servlet : Initializing Spring embedded WebApplicationContext 2020-06-05 10:59:55.220 [restartedMain] INFO o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1233 ms 2020-06-05 10:59:55.276 [restartedMain] INFO com.datast..

Database/Cassandra 2020.06.05

[Cassandra] Compression Configuration

Compression 카산드라는 기본적으로 테이블당 어떻게 압축할지 옵션을 제공한다. 압축은 chunk_length_in_kb을 사용하면 SSTable을 압축하면서 디스크의 사이즈를 감소 시킨다. 카산드라 SSTable은 불변(immutable)하는 속성을 가지기때문에 SSTable이 쓰여질때 압축을 위한 CPU 비용이 필요하다. 후속으로 업데이트 되는 데이터는 다른 SSTable에 쓰여진다. 그래서 카산드라는 데이터를 업데이트 할 때, 다시 압축을 풀 필요거나, 오버라이트 하거나 다시 압축할 필요가 없다. 오직 읽을때 카산드라는 디스크에서 압축 청크(덩이리)를 찾고 압축 해제한 다음나머지 읽기 경로(디스크, 멤브럴의 데이터의 병합, 읽기 복구)를 진행합니다. 압축 알고리즘은 3개의 영역에서 주고 받는다..

Database/Cassandra 2020.06.03

[cassandra] blob type

Cassandra blob type Blob 데이터 형식은 0 [xX] (hex) +로 정의 된 16 진수 상수 여기서 16 진수는 [0-9a-fA-F]와 같은 16 진수 문자. 예를 들어 0xcafe Blob의 최대 이론적 크기는 2GB 실제 제한은 1MB 미만 Blob 유형은 작은 이미지 또는 짧은 문자열을 저장하는 데 적합 blob 변환 함수 typeAsBlob (값) : CQL에서 지원하는 모든 기본 비 블롭 데이터 유형에 대해 해당 데이터 유형의 인수를 가져와이를 블롭으로 리턴 blobAsType (값) : 64 비트 blob 인수를 사용하여 가능한 경우 지정된 데이터 유형의 값으로 변환 사용예 : textAsBlob 테이블 생성 CREATE TABLE IF NOT EXISTS test_by_s..

Database/Cassandra 2020.06.02

[Cassandra][datastax]Logical_Mapping Patterns

매핑 패턴 일반적인 매핑 사용 사례에 대한 반 정식(Semi-formal) 정의 논리 모델 설계에 대한 그래픽 참고 자료로 제공 쿼리기반 매핑 패턴 방법론 쿼리 요구사항에 맞는것을 사용하기 위한 9가지 패턴 Entity mapping patterns (2가지) 1:1 relationship mapping patterns (2가지) 1:n relationship mapping patterns (2가지) m:n relationship mapping patterns (2가지) Hierarchical mapping patterns (1가지) Entity mapping patterns Query attributes == key attributes Query attributes != key attributes 관계..

Database/Cassandra 2020.05.27

[Cassandra][datastax]Logical Mapping Rules

쿼리 기반 방법론 매핑 룰은 논리 데이터 모델이 정확하게 설계되었다는 것을 보증한다. 각 쿼리는 그에 맞는 테이블을 가진다. 테이블은 쿼리가 적절하게 실행되도록 디자인 된다. 테이블은 정확한 순서로 데이터를 반환한다. Mapping Rule 매핑 룰 1. 엔티티와 관계 매핑 룰 2. 등식 검색 속성 매핑 룰 3. 부등식 검색 속성 매핑 룰 4. 순서 속성 매핑 룰 5. 키 속성 매핑 룰 1. 엔티티와 관계 엔티티와 관계는 테이블에 매칭되는 유형이다. 엔티티와 관계는 파티션 혹은 열에 매칭된다. 파티션은 하나 또는 하나 이상의 엔티티와 관계에 대한 데이터를 가진다. 속성은 행에 의해 나타내진다. 주의 : 룰을 위반한 것은 불완전한 데이터 모델을 가지는 것을 의미한다 관계 유형 예제 각각의 관계는 테이블 안..

Database/Cassandra 2020.05.27

[Cassandra][datastax]Logical_Principles

카산드라 데이터 모델링 원칙 Know your data Know your queries Nest data Duplicate data 1. Know your data 성공적인 디자인을 위한 키는 데이터를 이해하는 것이다. 개념적 데이터 모델에 의해 나타난 데이터 무엇을 데이터에 저장할지 정의하라 속성을 보존하라 그러면 데이터는 정확하게 정돈된다. 키의 제약사항은 스키마 디자인에 영향을 준다. 엔티티와 관계키는 테이블 주요키에 영향을 준다. 주요키는 유니크하게 row/entity/relationship을 구별한다. 키와 가능하다면 부가적인 컬럼으로 구성한다. 2. Know Your Query 쿼리는 직관적으로 스키마 디자인에 영향을 준다. application workflow modle에 의해 정의된 쿼리 ..

Database/Cassandra 2020.05.27

[Cassandra][datastax]Logical_Chebotko Diagrams

Logical Model Chebotko Digram 카산드라 테이블과 액세스 패턴의 비쥬얼 다이어그램 카산드라 데이터 베이스 스키마 디자인을 그래픽으로 표현 논리적, 물리적 데이터 모델의 문서화 Table Diagrams 테이블명, 컬럼명, 파티션키 클러스터링 키를 설정한 내용으로 구성 Application Workflow 어플리케이션에 따른 쿼리 실행 흐름도 Query List 쿼리에 해당하는 액세스 패턴 UDT Diagrams User Defined Type 다이어그램 (사용자가 정의한 타입의 다이어그램) Table representaion 논리레벨은 컬럼 이름과 속성을 보여준다. 물리레벨에서도 컬럼의 데이터 타입으로 보여준다. Access patterns 방향선과 쿼리 라벨은 어떻게 테이블을 구성..

Database/Cassandra 2020.05.27