[Cassandra] Primary Key

  • Cassandra Table 설계시에 중요한 Primary Key 에 대해서 공부해보자.

Primary Key 란?

  • 한개(row)의 데이터가 유니크하게 보장해주는 Key 를 말하고 1개 이상 필요하다.
  • Partition Key + Clustering Key 로 구성되어 있다.

  • Basic
create table test_1 (
  key text PRIMARY KEY,
  data text      
);
  • Composite Primary Key
 create table test_2 (
         t_partition_key text,
         t_clustering_key int,
         data text,
         PRIMARY KEY(t_partition_key, t_clustering_key)      
 );

Partition Key 란?

  • primary key 의 첫번째 key 를 의미함.
  • 해시 알고리즘에 따라 클러스터에 분배되어 저장된다.

    단일 partition key

 create table test_2 (
         t_partition_key text,
         t_clustering_key int,
         data text,
         PRIMARY KEY(t_partition_key, t_clustering_key)      
 );

복합 partition key

 create table test_2 (
         t_partition_key_1 text,
         t_partition_key_2 text,
         t_clustering_key int,
         data text,
         PRIMARY KEY((t_partition_key_1, t_partition_key_2), t_clustering_key)      
 );

Clustering Key 란?

  • Primary Key 에서 Partition Key 를 뺀 나머지 Key 를 말함.
  • 지정한 순서대로 데이터가 저장 됨.

with clustering order by (test_col_1 desc)

  • 지정하지 않을 수도 있다. 기본값은 ASC

Related Posts