OLTP 加 OLAP
订单进入事务系统,再经 ETL 或复制进入仓库;地区报表会晚于事务提交
订单刚提交,分析报表什么时候能看见
围绕“订单提交后多久进入地区销售报表”,你能够
10:00:00 订单提交成功,10:00:20 地区销售报表仍没有这笔订单
逻辑上,HTAP 用同一套数据库软件和统一 SQL 接口,在同一业务数据上同时支持事务与分析
物理上,系统仍可以维护行存、列存或其他副本,因此分析可见时间仍要检查
订单写入和地区汇总使用不同访问方式,存储组织也会产生不同代价
| 负载 | 典型组织 | 主要取舍 |
|---|---|---|
| 写入一笔订单 | 行存储 | 便于按记录点查和更新;扫描大量订单可能较慢 |
| 汇总地区销售 | 列存储 | 便于扫描、压缩和并行;更新或格式转换有成本 |
| 写入与汇总并存 | 行列混合组织 | 少跨一个系统,但仍要处理转换、同步和资源竞争 |
事务系统写订单,分析系统做汇总;两边怎样同步成为新的问题
订单进入事务系统,再经 ETL 或复制进入仓库;地区报表会晚于事务提交
订单表留在关系数据库,点击日志进入大数据平台;接口和字段含义要另外对齐
两种路线都要处理副本同步、故障恢复和统一查询入口
多引擎保留专业组件,也增加了数据移动和接口维护
同一个销售主题开始同时接收订单表、点击日志和商品图片
订单和访问记录从 TB 增长到 PB,单机扫描时间和存储成本上升
结构化订单、半结构化点击日志和非结构化商品图片需要不同处理方式
除了销售报表,还要做预测、关联和 what-if 分析
下单高峰与全量销售扫描同时发生,二者会争用处理器、内存和带宽
短事务持续写入订单,长查询同时扫描历史销售
多核、大内存和高速网络可以加速处理,但不能替系统决定谁先使用资源
硬件提供并行能力,系统仍要隔离短事务与长查询
跟着一笔订单走过业务源、ETL、仓库和 OLAP,就能找到等待发生在哪里
订单先在事务系统提交
ETL 等待批次,再复制和转换订单
仓库重组主题数据,OLAP 建立汇总结构
地区报表读取分析端当前可见的数据
一个新字段会从订单源一路传到地区销售分析
架构不仅要缩短数据等待,也要缩短业务变化传到分析端的路径
订单表留在关系仓库,点击日志进入大数据平台,连接器负责交换数据
| 目标 | 设计回应 | 新的瓶颈 |
|---|---|---|
| 高扩展 | 分布式和并行平台 | 跨节点协调与故障恢复 |
| 混合负载 | 行存、列存或多副本 | 资源隔离与副本同步 |
| 开放接口 | 连接器和统一 SQL | 传输带宽与字段含义对齐 |
| 低延迟 | 就地分析和缓存 | 可见新鲜度与资源隔离 |
连接器可以搬运数据,但不会自动统一字段含义或保证副本一致
| 场景 | 先写出关键要求 | 选择的架构起点 |
|---|---|---|
| 新订单一分钟内进入地区报表,同时不能拖慢下单 | 新鲜度、事务隔离 | 单引擎/多引擎/继续核对 |
| 夜间生成一次销售报表,现有仓库运行稳定 | 延迟容忍、维护成本 | 单引擎/多引擎/继续核对 |
| 订单表与点击日志联合分析,两个平台都要保留 | 语义映射、移动成本 | 异构共存/其他/继续核对 |
先写出可见时间、隔离要求和数据移动,再选择系统组合
从订单提交到地区报表,架构选择始终围绕可见时间、事务隔离和数据移动
同一软件和统一 SQL 接口同时服务订单事务与销售分析
少跨一个系统,但仍要处理行列转换与资源竞争
事务与分析各用专业系统,但订单要等待复制和转换
连接器交换订单与日志,字段含义和副本一致仍需维护
没有脱离场景的最佳架构,先说明时间、负载和数据路径