04 实时聚合 · 讲师
讲清增量 MV 的行为和中间价的语义。
macOS terminal: Run workshop commands in Terminal using zsh or bash.
时间安排
20 分钟。
讲解脚本
- MV 处理的是插入的数据块;它不会在每次刷新仪表板时重新扫描历史数据。
State函数存储部分聚合状态;对应的Merge函数将其最终化。- OHLC 只基于报价中间价。把订单级变动价格和最新成交价混在一起,会让图表变得毫无意义。
- 采集器在数据行进入 MV 之前就完成了去重;事后使用
ReplacingMergeTree并不能撤销聚合 层面的重复计数。
常见故障
- 聚合结果为空:确认原始中间价数据行存在,并且 MV 是在数据写入之前创建的。
- MV 创建得太晚:创建之后重启 fixture 模式,或者只接受新写入的数据行。
- 最新分钟太旧:先检查采集器健康状态,再去调试 SQL。
重置
若要在不删除原始数据的前提下获得一份全新的聚合,重建目标表和 MV,然后让新事件把它填满。
不要执行 OPTIMIZE TABLE FINAL。