clickhouse视图

视图

clickhouse拥有普通和物化两种视图

  • 物化视图拥有独立的存储
  • 普通视图只是一层简单的查询代理
create table tb_insert(
id UInt8,
name String
)engine=Memory;

insert into tb_insert values(1,'cxy'),(2,'zyt'),(3,'hx'),(4,'wyy');
select * from tb_insert;
┌─id─┬─name─┐
│  1 │ cxy  │
│  2 │ zyt  │
│  3 │ hx   │
│  4 │ wyy  │
└────┴──────┘

create view insert_view as 
select id,upper(name) from tb_insert;  //创建普通视图

select * from insert_view;
┌─id─┬─upper(name)─┐
│  1 │ CXY         │
│  2 │ ZYT         │
│  3 │ HX          │
│  4 │ WYY         │
└────┴─────────────┘
show tables;
┌─name─────────┐
│ insert_view  │
│ tb_array     │
│ tb_date      │
│ tb_insert    │
└──────────────┘

drop view insert_view;     //删除视图
普通视图不会存储任何数据,它只是一层单纯的select查询映射,起着简化查询,明晰语义的作用,对查询性能不会有任何增强。

create materialized view view_mater engine=Log populate as select * from tb_insert;     //创建物化视图

 - 物化视图创建好后,如果原表被写入新数据,那么物化视图也会同步更新
 - populate关键字在创建视图的过程中,会连带将原表中已存在的数据一并导入
 - 物化视图目前并不支持同步删除,如果原表中删除了数据,物化视图的数据仍会保留

select * from view_mater;
┌─id─┬─name─┐
│  1 │ cxy  │
│  2 │ zyt  │
│  3 │ hx   │
│  4 │ wyy  │
└────┴──────┘

insert into tb_insert values(5,'zss'),(6,'zj');
select * from view_mater;
┌─id─┬─name─┐
│  5 │ zss  │
│  6 │ zj   │
└────┴──────┘
┌─id─┬─name─┐
│  1 │ cxy  │
│  2 │ zyt  │
│  3 │ hx   │
│  4 │ wyy  │
└────┴──────┘
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值