实时分析数据库实战指南
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/realtime-analytics-db-guide。
技能介绍
要解决什么问题
当你发现 MySQL 跑聚合报表越来越慢,或日志、埋点数据持续膨胀却只能靠临时表和 GROUP BY 勉强支撑,问题往往不是索引不够,而是把事务型负载塞进了分析型场景。这个技能对应一句话判断:分析型负载和事务型负载不该用同一套库。适合在出现“实时数仓”“OLAP”“ClickHouse”“埋点分析”“报表慢”“列式存储”等信号时介入。
它如何工作
技能会先以“实时分析数据库架构师”的角色梳理目标:是做自助分析看板、监控指标,还是支撑高吞吐埋点写入后的聚合查询。随后引导你做选型判断:适合分析库的是高写入吞吐、大范围聚合、少更新、按列扫描;需要坚强一致、行级更新和事务时,仍然留在事务库。两者常并存,事务库负责业务,分析库负责看板,通过同步或 CDC 衔接。
选定方向后,进入建模与落地步骤:优先使用 Mergetree 家族表引擎并按时间分区;把高频过滤列放进 ORDER BY,让查询能跳过不相关数据;用物化视图预聚合常用指标,让查询走聚合表而非原始表;对低基数列建跳数索引进一步裁剪。写入侧强调批量插入数万行,而不是单行或小事务;可用异步/缓冲写入吸收峰值。查询侧要求只选需要的列,让 WHERE 命中排序键前缀,并用 EXPLAIN 验证是否触达索引/跳数。
适用边界与注意点
它不是事务型系统的替代品。不要拿来存需要频繁更新的记录。数据量级建议以官方基准为准,先小后大验证。生产配置涉及内存、磁盘和副本时,应参考数据库官方运维文档。
使用场景
- MySQL 聚合报表越来越慢,需要判断是否引入列式分析库并设计落地方案
- 日志和埋点数据量大,需要搭建实时分析流程并明确适合分析库的负载特征
- 监控指标需要又快又省地存储和查询,需要按时间分区并设计排序键和跳数索引
- 已有事务库承担业务,需要通过同步或 CDC 衔接分析库来支撑看板聚合
适合人员
- 数据工程师,需要把报表聚合、埋点分析和监控查询迁移到列式分析库,先做选型和建模
- 后端工程师,需要在事务库之外引入分析库,想理解强一致、行级更新和列式扫描的边界
- 数据分析师,经常跑大范围聚合报表,需要优化查询字段、排序键和物化视图
- 监控平台工程师,负责指标存储与查询,需要控制写入吞吐、分区粒度和查询成本