建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
温馨提示

抱歉,您需设置社区昵称后才能参与社区互动!

前往修改
我再想想

华为云大赛技术圈

话题 : 467 成员 : 405

加入HCSD

【云数据库知识】数据库Cassandra --物化视图 MATERIALIZED VIEW

mua兜兜里... 2020/4/21 757
物化视图:物化视图本质上是由数据库自动维护的标准CQL表。他自动维护符合条件的数据与原表数据的一致性。
限制:
1. 物化视图的primary key必须包含baseTable的所有 primary key;  不允许使用静态列。
2. 视图中的primary key的所有列必须IS NOT NULL.
3. 任何物化视图中必须将一个cql行从base表映射到物化视图的另一行.即view和baseTable之间的行一一对应。
4. 创建物化视图时的select语句where条件中,不能对view的非primary key列进行限制,除过IS NOT NULL

9708c25ef03c5ee2b699_1805x46.png

5. 静态列不支持,counter不支持, superColumn不支持,duration类型不支持

源表:

1
2
3
4
5
6
7
1    CREATE TABLE person (    
2        id int,    
3        name text,    
4        addr text,    
5        age int,    
6        email text,    
7        PRIMARY KEY (id, name));

写入一条记录,并查询结果:

1
1    insert into person(id, name, age, addr, email) values (0, 'ruby', 26, 'beijing''ruby@email.com');

1.PNG

创建视图:

1
2
3
1    CREATE MATERIALIZED VIEW person_addr AS                    
2        SELECT from person WHERE id IS NOT NULL AND addr IS NOT NULL AND name IS NOT NULL    
3        primary key (addr, id, name);

system_schema.views记录了视图和源表的关联关系:

6076926593b48db9e652_1426x578.png

不符合该条件的查询不显示

eg:IS NOT NULL

写入addr为null的记录

1
1    insert into person(id, name, age, addr, email) values (1, 'mike', 30, null'mike@email.com');

原表数据和物化视图数据:

截图2.PNG

删除物化视图:

截图3.PNG


回复 (0)

没有评论
上划加载中
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

mua兜兜里有糖

角色:成员

话题:15

发消息
发表于2020年04月21日 17:07:40 7570
直达本楼层的链接
楼主
正序浏览 只看该作者
[技术干货] 【云数据库知识】数据库Cassandra --物化视图 MATERIALIZED VIEW

物化视图:物化视图本质上是由数据库自动维护的标准CQL表。他自动维护符合条件的数据与原表数据的一致性。
限制:
1. 物化视图的primary key必须包含baseTable的所有 primary key;  不允许使用静态列。
2. 视图中的primary key的所有列必须IS NOT NULL.
3. 任何物化视图中必须将一个cql行从base表映射到物化视图的另一行.即view和baseTable之间的行一一对应。
4. 创建物化视图时的select语句where条件中,不能对view的非primary key列进行限制,除过IS NOT NULL

9708c25ef03c5ee2b699_1805x46.png

5. 静态列不支持,counter不支持, superColumn不支持,duration类型不支持

源表:

1
2
3
4
5
6
7
1    CREATE TABLE person (    
2        id int,    
3        name text,    
4        addr text,    
5        age int,    
6        email text,    
7        PRIMARY KEY (id, name));

写入一条记录,并查询结果:

1
1    insert into person(id, name, age, addr, email) values (0, 'ruby', 26, 'beijing''ruby@email.com');

1.PNG

创建视图:

1
2
3
1    CREATE MATERIALIZED VIEW person_addr AS                    
2        SELECT from person WHERE id IS NOT NULL AND addr IS NOT NULL AND name IS NOT NULL    
3        primary key (addr, id, name);

system_schema.views记录了视图和源表的关联关系:

6076926593b48db9e652_1426x578.png

不符合该条件的查询不显示

eg:IS NOT NULL

写入addr为null的记录

1
1    insert into person(id, name, age, addr, email) values (1, 'mike', 30, null'mike@email.com');

原表数据和物化视图数据:

截图2.PNG

删除物化视图:

截图3.PNG


点赞 举报
分享

分享文章到朋友圈

分享文章到微博

游客

您需要登录后才可以回帖 登录 | 立即注册