线上下单与实时看板 Demo
OceanBase HTAP 能力演示
Demo 简介
本 Demo 演示的是 OceanBase 的 HTAP 能力。Demo 左侧模拟手机端汽车下单的 APP,右侧是可视化的数据看板,中间是数据处理的示意。点击“下单”按钮后,可看见数据流存储到数据库后,分别从行存副本和列存副本进行数据查询的 2 种方式下,展示实时数据的看板。
Demo 对应准实时决策分析业务场景,以 TP 业务为主,并有较多 AP 业务需求,同时希望 TP 与 AP 业务资源隔离。此时基于 TP 集群扩展独立的 Zone 存储只读列存副本,数据通过 Paxos 协议在副本间快速同步。TP 业务访问行存副本,AP 分析以弱读方式访问列存副本。通过 Demo 可以看出,访问列存副本的实时数据看板能得到与访问行存副本相同的分析数据,并有着更快的响应速度,体现了 OceanBase 列存查询的高效性。
查看 Demo 讲解视频实现架构
如图所示是一个典型的基于列存副本实现 HTAP 的系统架构图。在已有的三副本 TP 集群基础上,扩展独立的 Zone 存储只读列存副本,并在只读副本所在 Zone 部署专用的数据库代理(Proxy)。列存副本不作为 Paxos 成员参与日志的投票,而是作为一个观察者实时追赶 Paxos 成员的日志,并在本地回放。TP 业务无需进行改造继续访问行存副本,AP 分析通过专用 Proxy 以弱读方式访问列存副本。

点击查看大图
技术原理
为了更好地支持 HTAP 场景,OceanBase V4.3.3 版本提供了对列存副本的支持,在高性能 OLTP 数据库的基础上扩展 OLAP 的能力,实现秒级实时分析。OceanBase V4.3 版中的 OLAP 引擎,如列存(全表扫描)、物化视图、数据导入、数据加工等,与 OceanBase 原本擅长的分布式能力、TP 能力形成融合。对于中小型的业务,开发者基于 OceanBase 开发时,可更轻松简单地完成 TP 到实时 AP 数据库相关需求。
在 Demo 演示中,看板查询是硬扫,并没有进行预聚合。订单表中亿级的行数据,在内核里只要 10 毫秒左右就能完成扫描和聚合统计。为提升整体的查询效率,OceanBase 列存副本提供了以下特性:
OceanBase 列存副本能够统一架构并简化用户技术栈,客户无需改变 TP 库的表结构即可用一套系统同时支持 OLTP 与 OLAP 场景,相较于多套系统有更高的性价比,并省去繁琐费时的 ETL 过程,降低同时管理多个数据管道与多个库的成本,减少运维心智负担,利用 OceanBase 的高性能 Paxos 数据同步机制与高性能的 OLAP 引擎能力降低延迟,能够更好地支持客户的实时分析业务。
在 TP 库上执行大量频繁的写入更新事务操作时并不会影响列存副本的查询性能,在列存副本上进行大规模的复杂查询分析也不会影响 TP 库的事务执行,彻底避免了 OLTP/OLAP 业务在 CPU/内存/IO 等关键资源的相互干扰,极大程度提高了系统的稳定性。
OceanBase 支持小事务的功能,即使只有一行数据,也可以通过高效准确的 Paxos 协议在副本间快速同步,实现 T+0 的实时查询功能。与此同时,在列存副本上,基线数据通过合并的方式存储在列存基线 SSTable 中, 由此可以直接使用 OceanBase 基于列存的全新向量化引擎高效执行 OLAP 准实时决策分析业务,并不断地随着 OceanBase 列存引擎功能的完善迭代而不断进步。