Cassandra中的數(shù)據(jù)模型與RDBMS中正常情況完全不同。 我們來看看Cassandra如何存儲數(shù)據(jù)。
Cassandra數(shù)據(jù)庫分布在運行的幾(多)臺機器上。 最外層的容器被稱為包含不同節(jié)點的群集。 每個節(jié)點都包含一個副本,如果發(fā)生故障,副本將負責(zé)頂上。 Cassandra將節(jié)點以環(huán)形格式排列在群集中,并為其分配數(shù)據(jù)。
鍵空間(Keyspace)是Cassandra中數(shù)據(jù)的最外層容器。 以下是Cassandra中Keyspace的基本屬性:
復(fù)制放置策略:這是一個策略,如何數(shù)據(jù)將復(fù)制品放在環(huán)中。有三種類型的策略,如:
列家族:列家族置于鍵空間之下。 鍵空間是一個或多個列族的列表的容器,而列族是一組行的容器。 每行包含已排序的列。列家族表示數(shù)據(jù)的結(jié)構(gòu)。每個鍵空間至少有一個并且經(jīng)常有很多列家族。
在Cassandra中,良好的數(shù)據(jù)模型非常重要,因為不良數(shù)據(jù)模型可能會降低性能,特別是當(dāng)您嘗試在Cassandra上實現(xiàn)RDBMS概念時。
在Cassandra中建模數(shù)據(jù)時,您應(yīng)該有以下目標:
在許多分區(qū)的情況下,需要訪問所有這些分區(qū)來收集查詢數(shù)據(jù)。 這并不意味著不應(yīng)該創(chuàng)建分區(qū)。 如果您的數(shù)據(jù)非常大,則無法在單個分區(qū)上保留大量數(shù)據(jù)。 單個分區(qū)將會減慢。 所以必須有一個平衡數(shù)量的分區(qū)。