Database 30

[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

[Cassandra][datastax]Application Workflow and Access Patterns

Application Workflow 비즈니스 프로세스와 관련된 작업을 자동화하는 것을 의미한다. 각각의 어플리케이션은 작업흐름(workflow)을 가진다. Task와 의존성은 그래프를 형성된다. 액세스 패턴은 어떻게 데이터를 정의하는 것을 돕는다. 어떤 쿼리가 빠르게 동작할지 알게 해준다. 예시 Tasks : Show videos that were uploaded by a particular user. Add access pattern Q5 Add access pattern Q6 ~ Q11 참고사이트 https://academy.datastax.com/paths https://kissflow.com/workflow/workflow-application/

Database/Cassandra 2020.05.25

[Cassandra][datastax] Hierarchy

데이터 설계시 필수 개념인 상속성(Hierarchy)에 대해서 알아보자. Entity Type Hierarchy ISA(is-a) Hierarchies라는 뜻은 만약 A ISA B라고 한다면, 모든 A entity는 B entity로서 간주됨을 의미한다. 상위클래스(Superclass)-하위클래스(Subclass)의 관계로 말할 수 있다. ex ) Employees ISA Constract_Employees, Video ISA Full Video Superclass(A)의 속성들을 subclass(B)에게 적용시키기(물려주기)위해 사용한다. Relationship에서 entity를 identity하기 위해 사용한다. Transitivity Transitivity의 원어적 의미는 전이종속성이다. 동일한 테..

Database/Cassandra 2020.05.25

[Cassandra][datastax] Relationship Keys

Relationship Keys는 엔티티간의 관계를 나타내주는 의미를 한다. One-to-One key 엔티티의 키를 1:1로 매칭으로 사용할 수 있다. One-to-Many key 엔티티의 키를 1:n으로 매칭으로 사용할 수 있다. Many-to-Many Key 엔티티의 키를 m:n으로 매칭으로 사용할 수 있다. Attribute Key Participation Attribute를 유니하게 구별해줄 키 값이다. 예를 들어 사용자의 Attribute에서는 id가 될 수 있다. 참고 사이트 https://academy.datastax.com/paths

Database/Cassandra 2020.05.25

[Cassandra][datastax] Conceptual Data Modeling, Entity-Relationship (ER) Model

강의에서는 카산드라 모델링 과정을 아래와 같이 가이드 하고 있다. 그중 Conceptual Data Model을 먼저 작성해보자. 데이터 모델링의 개념적 접근을 위해 Entity-Relationship (ER) Model 개념을 선행한다. Entity-Relationship (ER) Model은 데이터베이스를 디자인하기 위해 이용되는 모델링 기법으로 데이터베이스 요구 사항을 그래픽 적으로 표현하는 방법이다. ER 모델에서는 데이터 베이스에 저장되는 데이터를 추상화하여 나타내기 때문에 특정 DBMS 및 하드웨어에 독립적으로 데이터베이스의 구조를 나타낼 수 있다. Entity-Relationship (ER) Model은 Entity Types - Relationship Type - Attribute Type..

Database/Cassandra 2020.05.25

[Cassandra] Import, Export csv file using CQL COPY command

카산드라에서는 Insert로 데이터를 넣는 방법 외에 csv 파일로 데이터를 한꺼번에 넣을수 있는 기능과 카산드라의 데이터를 csv 파일로 저장하는 기능을 지원한다. 이런 기능은 cql창에서 COPY 명령어를 사용하면 가능하다. # Import : Csv File -> Cassandra COPY table_name [( column_list )] FROM 'file_name'[, 'file2_name', ...] | STDIN [WITH option = 'value' [AND ...]] # Export : Cassandra -> Csv File COPY table_name [( column_list )] TO 'file_name'[, 'file2_name', ...] | STDOUT [WITH optio..

Database/Cassandra 2020.05.23

[Cassandra] 원격(remote), 로컬(local) 동시 접속

카산드라 운영시, 원격 서버에 카산드라를 설치하고 로컬에서 CQL쉘을 실행하거나 동시에 접속하고 싶은 경우가 있다. bin/cassandra.yaml 파일의 옵션을 아래와 같이 수정하면 원격에 있는 카산드라도 로컬에서 접속 가능하다. 1. 수정 항목 rpc_address: 0.0.0.0 broadcast_rpc_address: 192.168.0.2 listen_address: 192.168.0.2 seeds : 192.168.0.2 2. 추가 항목 start_rpc: true 수정 항목 및 추가 항목을 yaml에 적용 후, 카산드라를 재 실행하면 카산드라가 어디 있든, 로컬, 원격 접속 모두 가능하다. https://docs.datastax.com/en/archived/cassandra/3.0/cassa..

Database/Cassandra 2020.05.22

[Cassandra] Table, Column, Partition Key Clustering Key

카산드라 테이블 생성, Partition Key와 Clustering Key 설정, 컬럼 특성에 대해서 알아보자. 1. 테이블 생성 규칙 테이블 이름은 영숫자 및 밑줄로 구성될수 있다. 반드시 문자로 시작해야한다. 2. 주요 키 카산드라의 주요 키(Primary key)는 파티션 키(Partition Key)와 클러스터링 키(Cluster Key)로 구성되어 있다. 주요 키를 설정은 테이블을 생성할 때 적용할 수 있다. RDBMS의 쿼리문과 비슷하게 사용할 수 있다. 파티션키는 필수적으로 설정되어야하고, 복합키로도 설정이 가능하다. 주요 키 설정 방법은 2가지가 있다. 방법 1. Column에 직접 설정 CREATE TABLE emp( emp_id int PRIMARY KEY, emp_name text,..

Database/Cassandra 2020.05.21

[Cassandra][java] PreparedStatement vs Statement

PreparedStatement, Staement 개념 PreparedStatement와 Statement의 가장 큰 차이점은 캐시(cache) 사용여부이다. 주요 역할 ① 쿼리 문장 분석 ② 컴파일 ③ 실행 Statement를 사용하면 매번 쿼리할때마다 3가지 주요역할을 수행한다. 하지만 PreparedStatement는 처음 한번만 3가지 주요역할을 수행하고, 캐시에 담아 재사용한다. 특징 비교 Statement PreparedStatement 어떤 SQL문을 사용하는지 파악하기 쉽다. executeQuery() 나 executeUpdate() 를 실행하는 시점에 파라미터로 SQL문을 전달 어떤 SQL문을 사용하는지 파악하기 어렵다. 보통 조건절과 함께 사용되며 재사용이 되는데, ? 부분에만 변화를 ..

Database/Cassandra 2020.05.20