Cassandra 中的column family
Cassandra中的column family,相当于关系数据库中的表,它用于存储行和字段。
column family 中column数量是不固定的
在关系数据库中,每一行包含的字段个数是相同的。但是在Cassandra中,虽然column family可以定义column的元数据(metadata), 但是每一行的实际的字段数是由客户端程序决定的,所以没必要所有的字段数目都一样。
column family的分类
静态column family(static column family)
对于静态的column family,字段名是固定的,比较适合对于这些column都有预定义的元数据,如下图所示:
动态column family(dynamic column family)
对于动态的column family,字段名是应用程序计算出来并且提供的,所以column family只能定义这些字段的类型,但是不可以指定这些字段的名字和值,这些名字和值是由应用程序插入某字段才得出的,如下图所示:
row key
对于Cassandra来说,每一行都用行键(row key)来标识,这个相当于关系数据库表中的主键,并且总是被索引的,见上面图的蓝色部分。
我们可以用cassandra-cli工具来查看某个key space下的所有column family。
比如我们有个key space叫DEMO,于是我们可以用describe DEMO 命令来查看这个keyspace下所有的column family.
如果要查看指定的某个column family的配置,只要用 describe <column family 名>就可以了,比如我要看key store 为DEMO下的名字为blog_entry的column family的配置,如下: