去年跟风上湖仓。
砸了两百多万。
现在数仓团队和数据湖团队两边踢皮球,原来要跑三小时的销售报表,现在还是要跑两小时四十分钟,老板在季度会上直接拍桌子,说这钱花的连个水响都没听见。
我当时听完真的差点把手里的咖啡喷出来。
太熟悉了。
别被厂商的PPT把脑子吹懵了
太多团队选型第一步就走歪了。
上来就拉个对比表,Delta、Iceberg、Hudi挨个比参数,什么ACID支持、小文件处理能力、流批一体性能,把所有公开的评测文档翻了个遍,最后选了个参数最漂亮的开源方案,根本不管自己团队的实际情况。
我见过最离谱的案例,整个数据团队连个能独立调优Parquet压缩参数的人都没有,非要硬上开源三剑客,最后光治理小文件就折腾了半年,每天的定时任务跑小文件合并,把集群资源占掉三分之一,业务查询反而更慢了。
说白了,很多人把湖仓一体当成了一个可以直接买回来的成品,根本没意识到这是一套需要持续运维、持续迭代的架构体系。你团队连个能搞定元数据治理的人都没有,就算把最先进的表格式搬回来,最后也只是把原来数仓和数据湖的两套垃圾,换成了一套新的垃圾而已。

选型根本没有最优解,只有匹配度
说实话,我现在碰到上来就问“哪个湖仓技术最好”的客户,从来不会直接甩技术选型表,先反问三个问题:你们团队现在有多少人能搞定开源组件的深度调优?每个月能拿出多少预算做平台运维?现在最痛的业务痛点到底是什么?
没有放之四海而皆准的最优解。
你要是团队原来就是用了五六年的Hive数仓,每天的需求都是固定的经营报表,实时需求占比不到10%,那你死磕开源组件干嘛?直接用云厂商的托管湖仓服务,把原来的Hive表直接同步上去,省下来的精力去搞数据质量监控,不比啥都强。
反过来,你要是有大量的实时写入需求,比如IoT设备的时序上报数据,或者电商的实时点击流,每天的写入量超过TB级,那你针对写入优化的Hudi或者Iceberg才是合适的选择,别听厂商说什么“全场景通吃”——全场景通吃的东西,往往在你最在意的那个场景上,做的还不如专门的方案好。
去年帮一个做生鲜电商的团队做选型,他们的痛点是库存数据和用户行为数据打通要跑T+1,每次大促前的库存预测偏差率超过30%,光临期商品损耗和缺货损失,每个月就够养一个10人的数据团队。当时他们本来想上全套开源组件,算下来要招两个有三年以上Hudi调优经验的资深开发,每个月光人力成本就小十万,还不算后续的运维投入。最后给他们选了托管的湖仓服务,把原来的Hive表和OSS上的用户行为日志直接同步进去,两周就跑通了实时库存看板,现在大促的时候库存预测准确率从62%涨到了89%,ROI算下来比他们之前所有的技术投入都高。

落地的时候别上来就全量迁移

很多团队落地湖仓的操作,现在想起来都觉得离谱。
开个项目启动会,定个三个月全量迁移的目标,然后拉着团队加班加点,把所有的数仓表、数据湖的历史文件全量迁到新架构里,光数据一致性校验就能折腾三个月。最后业务部门等不及,还是回去用原来的老系统,花的钱全打了水漂。
真的没必要。
先找一个痛点最明确的小场景试手就行。比如就先迁实时用户行为数据那一块,把原来要等一天才能出的用户转化报表,改成分钟级更新,让业务部门实实在在看到好处,后面的迁移根本不用你催,大家自己就会主动把原来的业务切过来。
这里有个最容易被忽略的核心点:湖仓落地的本质从来不是换一套更高级的表格式,而是要把原来数仓和数据湖割裂的权限体系、成本核算、计算资源彻底打通。
原来数仓的权限是数仓团队管,数据湖的权限是运维团队管,两边的存储成本分开核算,最后算下来,存数据花的钱比用数据产生的价值还多,那这个湖仓建的就完全没有意义。之前碰到个做装备制造的企业,他们的湖仓建了快一年,数据团队算下来,整体存储成本比原来数仓和数据湖分开存的时候涨了40%,但是全公司的数据使用率只涨了12%,老板直接把项目砍了,后来谁再提湖仓就直接骂。
前几天和最开始碰到的那个零售架构师聊天,他说现在他们不搞那些花里胡哨的全量迁移了,先把原来数仓和数据湖的元数据目录打通,先把困扰了大家两年的小文件问题解决,现在原来要跑三小时的报表,一个小时就能出结果,老板已经不追着骂了。
其实哪有那么多玄乎的架构神话。
能解决实际问题的,就是好架构。