在关系型数据库中,例如Mysql,视图是一个非常有用的功能。当项目遇到复杂业务的时候,不可避免的需要创建中间表来完成需求。通过视图,我们可以定制用户的数据,针对公司不同角色创建不同的视图,提供其需要的数据;其次,视图可以简化数据操作,对于频繁发生的操作,我们可以创建相应的视图。对于关系型数据库,视图是一张虚拟表,只提供对真实数据的引用,如果真实表发生变化,视图也相应发生变化。NoSql一般不支持视图功能,对于cassandra而言,需要在一开始就明确自己的表结构,如果需要反范式操作,可以通过建立second index或者建立多张表来实现,second index 适合小规模数据,如果数据量很大,Cassandra将访问集群中的每一个节点,这对读写性能有影响。
从cassandra3.0版本开始支持物化视图功能,在MySQL中,视图是一个虚拟表,而在cassandra中,view是真实的存储着数据的,因此称为Materialized(物化),当源基础表数据发生删除,视图表中的数据也会被删除。下面笔者将简单介绍一下如何建立和使用视图,所采用的版本为cassandra3.0.8。笔者首先创建一张表结构,如下:
CREATE TABLE t (