ClickHouse 中的物化列与物化视图
文章目录
- ClickHouse 中的物化列与物化视图
-
- 物化列(Materialized Column)
- 什么是视图(VIEW)
-
- 普通视图
- Parameterized View
- 物化视图(Materialized View,简称 MV)
- 为什么不需要“持续查询”?
- ClickHouse 物化视图改造的安全流程
ClickHouse 中的物化列与物化视图
在 ClickHouse 里,“物化”指的是把计算结果提前算好并持久化存储,以换取查询时更快的读性能。两种常见机制是:物化列(Materialized Column)与物化视图(Materialized View)。它们的作用、使用方式和适用场景不同。
物化列(Materialized Column)
是什么:表中的一个列,其值不是直接插入的,而是由一段表达式在写入时自动计算并存储。
语法特征:在 CREATE TABLE/ALTER TABLE 中,用 MATERIALIZED 定义列值来源。
写入行为:插入时不能显式写这个列;值由表达式计算得出。读时像普通列一样使用。
存储与更新:结果会存盘,占用空间;当基列更新(常见是重写表或变更)时该列随之重算。
CREATE TABLE events
(ts DateTime,url String,-- 物化列:从 url 提取域名,写入时自动计算domain String MATERIALIZED domain(url),-- 也可做类型/桶化/派生键yyyymm UI