Difference between partition key, composite key and clustering key in Cassandra?

前端 未结 8 1317
無奈伤痛
無奈伤痛 2020-11-22 12:18

I have been reading articles around the net to understand the differences between the following key types. But it just seems hard for me to grasp. Examples will

8条回答
  •  悲&欢浪女
    2020-11-22 13:12

    In cassandra , the difference between primary key,partition key,composite key, clustering key always makes some confusion.. So I am going to explain below and co relate to each others. We use CQL (Cassandra Query Language) for Cassandra database access. Note:- Answer is as per updated version of Cassandra. Primary Key :-

    In cassandra there are 2 different way to use primary Key .

    CREATE TABLE Cass (
        id int PRIMARY KEY,
        name text 
    );
    

    Create Table Cass (
       id int,
       name text,
       PRIMARY KEY(id) 
    );
    

    In CQL, the order in which columns are defined for the PRIMARY KEY matters. The first column of the key is called the partition key having property that all the rows sharing the same partition key (even across table in fact) are stored on the same physical node. Also, insertion/update/deletion on rows sharing the same partition key for a given table are performed atomically and in isolation. Note that it is possible to have a composite partition key, i.e. a partition key formed of multiple columns, using an extra set of parentheses to define which columns forms the partition key.

    Partitioning and Clustering The PRIMARY KEY definition is made up of two parts: the Partition Key and the Clustering Columns. The first part maps to the storage engine row key, while the second is used to group columns in a row.

    CREATE TABLE device_check (
      device_id   int,
      checked_at  timestamp,
      is_power    boolean,
      is_locked   boolean,
      PRIMARY KEY (device_id, checked_at)
    );
    

    Here device_id is partition key and checked_at is cluster_key.

    We can have multiple cluster key as well as partition key too which depends on declaration.

提交回复
热议问题