把两套分析引擎焊成一层,客户体量翻十倍
📋 总体概括
资管科技公司Ridgeline把业绩分析系统重建在ClickHouse Cloud上,用Iceberg承载几十年的历史数据,与近期数据在同一分析层里查询,结果可服务的客户体量放大十倍,在线客户数翻倍。本文拆解这套架构的产业逻辑与可复制范式。
📄 正文
资管行业的报表系统,向来是数据栈里最'不讲道理'的负载:历史要拉几十年,聚合要秒级出数,月末关账还得排队。Ridgeline这家给投资管理机构做业绩分析的公司,最近给出的解法是把 Apache Iceberg 和 ClickHouse 焊在同一层里——历史数据躺在 Iceberg 湖里不动,ClickHouse Cloud 负责算,一个查询入口通吃冷热。
结果是实打实的:重建之后,它能服务的投资管理机构体量比原来放大 10 倍,平台上在线运行的客户数翻了一倍还多。这不只是'换了个更快的数据库',而是一次数据栈分层逻辑的重写。
📉 一张业绩报表,压垮一套数据栈
先看场景。投资管理机构的业绩分析,本质是一种极端的 OLAP 负载:要算跨越几十年的历史净值、要按策略和账户做多层归因、还要支撑客户在界面上的即席查询。这类负载有三个特点——扫描宽、聚合深、并发抖动大。
传统做法是典型的烟囱式:历史数据一份、近期数据一份,报表系统再抽一份,月初月末再跑批补数。数据在多个系统之间反复搬家,每一份拷贝都是一个不一致的隐患,也是一笔实打实的存储账单。
在重构之前,Ridgeline 的性能分析系统遇到了典型的天花板:体量大的资管客户接不进来——不是业务不想接,而是历史数据规模一旦上去,原有的查询链路就撑不住。对一个 SaaS 公司来说,这意味着最大的那批客户永远是'下一个版本再说'。
圈内做数据平台的人私下常讲一句话:这类项目的第一性问题往往不是'不够快',而是'不敢动历史数据'。几十年积累的业绩账本,谁也不敢轻易搬家。这正是 Ridgeline 这次重构真正值得拆解的地方——它没有搬数据,它把算力搬到了数据旁边。
🧊 Iceberg 当账本:历史数据不用再搬家
金句:表格式正在成为数据世界的'和平协议'。
Apache Iceberg 的价值,在于它把'数据长什么样'和'用什么引擎读'彻底解耦了。作为开放表格式,它提供模式演进、快照隔离、时间旅行这些数据仓库级的能力,却不绑定任何一家引擎。2018 年 Netflix 把它捐给 Apache 基金会,2020 年升级为顶级项目,此后各大云数仓与查询引擎陆续完成兼容——到 2024 年 Databricks 收购 Tabular,表格式之争阶段性收敛,Iceberg 事实上成了生态最大的公约数。
对 Ridgeline 来说,这个选择决定了重构的路径:几十年的历史业绩数据以 Iceberg 格式原地保留,不迁移、不复制,新的查询引擎直接在湖上读。数据的'重力'被尊重了——不是数据迁就引擎,而是引擎走向数据。
这件事的产业含义是:当表格式成为中立层,'存什么'和'怎么算'可以分开决策、分开演进、分开谈价格。历史数据这一层一旦稳定,上面的引擎就可以按负载特性换、按成本模型换。这也是近年来湖仓架构真正的分水岭——仓和湖不再是两套系统,而是同一份表数据的两种读法。
⚡ ClickHouse 为什么接得住这活
第二个问题:账本有了,谁来算?Ridgeline 把性能分析引擎重建在 ClickHouse Cloud 上,让同一个分析层既能查 Iceberg 里几十年的历史,也能查最新的业绩数据。
ClickHouse 的技术底色和这个负载高度咬合:列式存储、向量化执行、极致的聚合速度,本来就是为'宽表扫描+深度聚合'这类场景生的。对业绩归因这种'动辄扫几亿行、聚合成几十个数字'的查询,专用 OLAP 引擎和通用引擎之间的体验差距,不是优化参数能抹平的。
重构的结果可以直接看数字:
| 维度 | 重构前 | 重构后 |
|---|---|---|
| 数据架构 | 历史、近期多套系统烟囱式并存 | Iceberg 账本 + ClickHouse 引擎分层统一 |
| 历史数据查询 | 需要搬运与复制 | 原地查湖,冷热同层 |
| 可服务客户体量 | 大型资管客户接不进来 | 放大约 10 倍 |
| 平台在线客户数 | —— | 翻倍以上 |
架构长这样:
注意这里的工程判断:Ridgeline 没有试图用一个引擎解决所有问题,而是让 Iceberg 管存储的事实,让 ClickHouse 管计算的爆发力,中间用统一查询层把两者焊住。对客户而言,感受不到背后是两个系统——只有一个更快、能装下更大客户的分析平台。
那么,这个组合在当下格局里站在什么位置?
🗺️ 格局:引擎分层后,玩家的三种活法
这张图是我基于公开信息的推演,但趋势方向比较清晰:
- 云数仓依然占据商业价值的头部,它们正在主动兼容 Iceberg,用开放格式换取数据流入;
- 湖仓一体平台在技术纵深上持续加码,试图把存储、格式、引擎一锅端;
- Iceberg + 专用 OLAP 引擎的组合,走的是'最小事实+最强算力'路线,Ridgeline 的实践证明这条路在垂直 SaaS 场景里能直接兑换成商业结果——接得下十倍体量的客户;
- 传统一体机和纯自建开源栈,则分别卡在架构弹性和工程成本上。
Ridgeline 的案例之所以值得看,是因为它代表了一批垂直行业软件公司的共同选择:不跟大平台比平台能力,只在自己的业务负载上做到极致。资管业绩分析这个场景足够窄、足够深,专用引擎的收益在这里被放大到肉眼可见。
💡 给做数据平台的人三条判断
把这个案例抽象一下,我认为有三条可复用的判断:
第一,表格式是新的合同。一旦历史数据落在开放表格式上,你就保留了未来更换引擎的期权。这个期权平时不值钱,在架构换代的时候价值连城。反向推论:任何要求你把数据锁进私有格式的方案,都要把'未来解约成本'算进报价里。
第二,引擎按负载选,不按信仰选。业绩归因要的是聚合爆发力,就用专用 OLAP;账本要的是稳定和中立,就用开放表格式。混合负载的'一个引擎包打天下'叙事,在真实成本约束面前往往会松动。
第三,'一层分析'的关键是统一目录,不是统一引擎。用户体验上只有一个查询入口,工程上可以 heterogeneous。真正的黏合剂是元数据层和物化策略——热数据下沉到引擎本地,冷数据按需扫湖,账单才会好看。
这套范式可以概括为:
`infographic
{"type":"grid","title":"一条可复制的分层范式","items":[{"icon":"🧊","label":"开放表格式","desc":"Iceberg 管历史账本,引擎中立不锁定"},{"icon":"⚡","label":"专用OLAP引擎","desc":"ClickHouse 扛高并发深度聚合"},{"icon":"🗂️","label":"统一查询层","desc":"一个入口同层查询湖与引擎"},{"icon":"🧮","label":"物化与缓存","desc":"热数据下沉,冷数据按需扫描"},{"icon":"📉","label":"成本护栏","desc":"按查询模式分配算力,管住账单"}]}
最后回到那个朴素的结论:Ridgeline 客户体量翻十倍、在线客户翻倍,靠的不是某一次查询快了几秒,而是它终于能把'几十年历史'和'昨天最新'放进同一个分析层里回答。当存储的事实与计算的暴力各归其位,垂直 SaaS 公司也能在自己的战场上,打赢平台级的仗。下一步值得盯的是:这层范式会不会被更多行业软件公司复制,以及表格式之上的引擎竞争,还会卷出多少新花样。
本文由本站 AI 辅助聚合生成,原始来源如下: