0、原理
- 物化视图的原理是服务器觉得空闲的时候,帮你做一次select再insert的动作,可以通过物化视图来实现表间数据复制。
- 配置
parallel_view_processing
来实现物化视图是同步还是异步写。 - 物化视图也是一个普通的表。
- pay attention:物化视图不能修改表名
1、可以用来实现什么?
当有需要在同个实例进行多表多写的时候,就可以使用物化视图来实现ClickHouse帮你做表的数据复制,减少了多写的带宽消耗,降低集群负载。
适用场景:
- 需要有多个时间维度的表
- 同一个表需要建立不同的索引粒度
2、怎么用?
CREATE MATERIALIZED VIEW db.table ENGINE = MergeTree() PARTITION BY day ORDER BY name
AS SELECT * FROM db.old-table;
- 如果需要实现多个时间维度的表,则'AS SELECT'的时候对时间字段多处理即可实现
3、测试
对6w/s写入量级的原始表进行测试
(1)数据完整度
原始表

物化视图

可以看到,数据完整度在99.99%以上。
(2)复制时效性
原始表

物化视图

查看最新的数据,可以看到数据时效性在5s以内。
(3)负载消耗



无明显大幅度负载增高
网友评论