存储、搜索与时序从基础到精通
本文是知识图谱
3.2的稳定导航入口。产品机制、数据演绎、排障过程和完整面试答案位于00至08分册;入口只维护统一分析框架、阅读路径、图形与项目索引。
1. 统一九维分析框架
选择存储系统时,先确定业务不变量和访问模式,再沿九个维度比较候选方案:数据与存储模型、写入路径与写放大、查询路径与剪枝、事务与一致性、复制与故障可见性、分片与路由、备份与恢复、在线迁移、容量与成本。
flowchart LR
A["业务不变量与权威源"] --> B["数据和存储模型"]
B --> C["写入路径与写放大"]
B --> D["查询路径与剪枝"]
C --> E["事务 一致性与复制确认"]
D --> F["分片 路由与分治归并"]
E --> G["备份 恢复与故障可见"]
F --> H["容量 成本与热点"]
G --> I["在线迁移与回滚"]
H --> I
I --> J["项目选型与验证闭环"]- 节点: 从业务约束进入物理读写,再进入集群、恢复、迁移与成本。
- 箭头: 表示后一个决策必须消费前一阶段的真实约束,不能从产品名称反推理由。
- 前提: 权威数据、搜索索引、分析副本、物化结果和缓存必须分开命名。
- 正常路径: 先淘汰不能维护业务不变量或恢复目标的方案,再比较性能与成本。
- 失败路径: 忽略写放大、同步、校验和恢复,会把局部查询收益变成全链路数据风险。
- 业务结论: 多模型存储不是组件越多越高级,而是用额外同步与运维成本换取明确的读写收益。
2. 分册阅读顺序
| 编号 | 分册 | 核心问题 | 精通目标 |
|---|---|---|---|
3.2.0 | 知识图谱、迁移路线与选型框架 | 零迁移基线、九维框架、权威源与版本证据 | 用统一问题比较不同产品而非罗列功能 |
3.2.1 | PostgreSQL(关系型数据库)存储、MVCC(多版本并发控制)、索引与查询 | 堆表、WAL(预写日志)、版本可见、清理和成本优化器 | 解释交易写入、查询计划、膨胀和长事务因果链 |
3.2.2 | MongoDB(文档数据库)文档模型、复制、分片与查询 | 聚合边界、写关注、读关注、副本集与分片键 | 说明灵活模式、确认语义、陈旧读和迁移成本 |
3.2.3 | ClickHouse(列式数据库)列存、MergeTree(合并树表引擎)、查询与合并 | 数据部件、排序、稀疏索引、合并和分布式聚合 | 说明列存何时快、小批量与后台合并为何会反噬 |
3.2.4 | Elasticsearch(搜索引擎)分片副本、写入、查询与一致性 | 路由、事务日志、刷新、分段、查询扇出与恢复 | 区分写入确认、持久化、搜索可见与业务提交 |
3.2.5 | 倒排索引、分词、相关性与搜索工程 | 词项、倒排表、分析链、BM25(最佳匹配 25)、召回与重排 | 用数据计算排序并治理搜索质量与发布风险 |
3.2.6 | 时序模型、物化视图、聚合与冷热治理 | 事件时间、迟到修正、汇总、最新值、降采样与保留 | 说明预计算收益、修正窗口、报警风暴和生命周期成本 |
3.2.7 | 集群复制、分片、备份恢复与数据迁移 | 四类系统的确认、扩缩容、RPO(恢复点目标)、RTO(恢复时间目标)与切流 | 证明副本不等于备份、迁移完成必须可校验和回滚 |
3.2.8 | 选型、项目案例、线上排障与综合题库 | 六类项目、多存储边界、事故链与跨章节追问 | 从约束、机制、数据、失败边界和项目证据完成口述 |
第一次学习按 3.2.0 -> 3.2.8 顺序推进;产品专项复习进入对应分册;系统设计和项目串讲从 3.2.8 开始,再沿详情链接回到机制章节。
3. 权威数据与派生数据边界
sequenceDiagram
participant B as 业务命令
participant T as 交易权威源
participant E as 事务事件或 CDC
participant D as 文档投影
participant S as 搜索投影
participant A as 分析与时序投影
participant V as 校验和回放
B->>T: 条件更新并提交不变量
T-->>B: 返回权威结果和版本
T->>E: 输出已提交变更
par 派生投影
E->>D: 幂等写文档视图
E->>S: 幂等写搜索索引
E->>A: 批量写分析明细与汇总
end
D-->>V: 行数 版本 删除水位
S-->>V: 索引版本与业务聚合
A-->>V: 明细 汇总与迟到修正
alt 校验通过
V-->>B: 允许派生读取
else 延迟或不一致
V->>E: 从检查点回放
B->>T: 降级回权威事实
end- 节点: 交易权威源负责业务不变量,其他系统负责可重建的文档、搜索、分析或时序视图。
- 箭头: 已提交事件驱动幂等投影,校验平台持续比较版本、水位、删除和业务聚合。
- 前提: 事件包含稳定业务键、版本、顺序或水位,并有可重复读取的权威入口。
- 正常路径: 派生系统在约定窗口内收敛,读取按用途进入对应视图。
- 失败路径: 同步延迟、字段不兼容或校验失败时停止扩散,从断点回放并降级回权威源。
- 业务结论: 搜索分数、分析汇总和缓存命中都不能单独决定库存、订单或资金最终状态。
4. 高频排障与项目入口
- PostgreSQL(关系型数据库)慢查询、长事务、膨胀、清理落后、检查点尖峰和日志暴涨:进入 3.2.1。
- MongoDB(文档数据库)缓存压力、复制延迟、选举、广播查询、热点分片和迁移异常:进入 3.2.2。
- ClickHouse(列式数据库)数据部件过多、合并积压、内存超限、热点分片和副本恢复:进入 3.2.3。
- Elasticsearch(搜索引擎)写入拒绝、小分段、堆压力、热点分片、相关性回归和恢复风暴:进入 3.2.4 与 3.2.5。
- 时序迟到、最新值倒退、物化滞后、冷热查询和报警风暴:进入 3.2.6。
- 复制落后、备份不可恢复、双写分叉、切流回滚和旧主复活:进入 3.2.7。
- WMS(仓储管理系统)库存、跨境物流、支付、异步导出、Runner(执行器)与 IoT(物联网)完整项目话术:进入 3.2.8。
5. 正式图形索引
- PostgreSQL(关系型数据库)提交、可见性、清理与恢复
- MongoDB(文档数据库)副本确认、路由与数据块迁移
- ClickHouse(列式数据库)写入、合并、查询与磁盘高水位
- Elasticsearch(搜索引擎)写入、可见、查询与分片恢复
- 倒排索引分析、召回、评分、灰度与回滚
- 时序事件、物化、迟到修正、冷热与回填
- 备份恢复与在线迁移切流
- 多模型存储边界、投影、降级与重建
6. 精通级复习路径与完成证据
- 对同一业务分别画出权威写入、搜索投影、分析投影和缓存读取,说明各自可以保证与不能保证的边界。
- 用九维框架比较四类系统,每个选择都给出工作负载、失败代价、不适用反例和退出路径。
- 用具体数据解释写放大、查询剪枝、分片扇出、复制延迟、恢复带宽和迁移追平时间。
- 从项目题库随机抽题,按“结论、约束、机制、数据、失败边界、项目证据、验证闭环”连续回答。
- 将教学数据替换为面试现场可核验的项目区间,并明确项目实际版本仍需从部署和依赖现场核对。
3.2.0 至 3.2.8 共完成 109 个知识小节、327 道六字段章节题、273 道综合长答案、133 张 Mermaid(图表语法) 图和 8 张 PlantUML(开源建模工具) 图。九篇分册定向审计均为零,全部图形已真实渲染,正式图片已目视检查。
