Cassandra

2018-07-23  本文已影响0人  ZzGo12

Apache Cassandra 是一种分布式非关系型数据库,具有高性能、可扩展、无中心化等特征。
一种column-based数据库。
Cassandra所支持的基本数据模型。这些基本数据模型有:Column,Super Column,Column Family以及Keyspace。


Column
Super Column

(官方文档对使用这个持谨慎意见)


Column Family
Keyspace
在抽象设计模型时,我们常常需要面对另外一个问题,那就是如何指定各Column Family所使用的各种键。在Cassandra相关的各类文档中,我们常常会遇到以下一系列关键的名词:Partition Key,Clustering Key,Primary Key以及Composite Key。那么它们指的都是什么呢?
Primary Key
Composite Key
Partition Key & Clustering Key

而在一个CQL语句中,WHERE等子句所标示的条件只能使用在Primary Key中所使用的列。您需要根据您的数据分布决定到底哪些应该是Partition Key,哪些应该作为Clustering Key,以对其中的数据进行排序。

一个好的Partition Key设计常常会大幅提高程序的运行性能。首先,由于Partition Key用来控制哪个结点记录数据,因此Partition Key可以决定是否数据能够较为均匀地分布在Cassandra的各个结点上,以充分利用这些结点。同时在Partition Key的帮助下,您的读请求应尽量使用较少数量的结点。这是因为在执行读请求时,Cassandra需要协调处理从各个结点中所得到的数据集。因此在响应一个读操作时,较少的结点能够提供较高的性能。因此在模型设计中,如何根据所需要运行的各个请求指定模型的Partition Key是整个设计过程中的一个关键。一个取值均匀分布的,却常常在请求中作为输入条件的域,常常是一个可以考虑的Partition Key。

除此之外,我们也应该好好地考虑如何设置模型的Clustering Key。由于Clustering Key可以用来在Partition内部排序,因此其对于包含范围筛选的各种请求的支持较好。


上一篇下一篇

猜你喜欢

热点阅读