| 本质 | 插入触发 |
|---|---|
| 目标表 | 聚合引擎 |
| 状态 | AggregateFunction |
| 合并 | 查询时 merge 状态 |
物化视图示例
物化视图示例
CREATE TABLE dw.trade_store_agg
(
dt Date,
store_id String,
order_cnt AggregateFunction(count, UInt64),
pay_amt AggregateFunction(sum, Decimal(18,2))
)
ENGINE = AggregatingMergeTree
ORDER BY (dt, store_id);
CREATE MATERIALIZED VIEW dw.mv_trade_store TO dw.trade_store_agg AS
SELECT dt, store_id,
countState() AS order_cnt,
sumState(pay_amt) AS pay_amt
FROM dw.trade_order
GROUP BY dt, store_id;查询时用 countMerge 与 sumMerge 读出聚合值,直接查状态列会得到二进制中间值。