数仓的哲与思:为什么有业务思考的同学会更能脱颖而出?

     你有没有过这样的经历? 熬了几晚优化的ETL任务,业务方看了结果却说“这数据没用”; 精心设计的维度模型,运营同学用的时候总说“找不到想要的指标”; 甚至有时候,你做了一堆报表,却不知道这些数据最终帮业务解决了什么问题?

     我做数仓的这些年,踩过最疼的坑,就是把“技术能力”当成了数仓的全部——直到后来跟业务方聊多了,才明白:数仓的本质,是“用数据解决业务问题”,而不是“用技术存储数据”

     犹记得在上一家公司我刚用Flink做完实时库存预警,仓储主管看了一眼数据就摇头:“你这‘库存低于10件’的预警有什么用?生鲜的库存要算‘可售时长’,比如三文鱼只能放24小时,剩5件但还有10小时过期,根本不用补!”。从那时我才明白:我们和业务方的矛盾,从来不是“需求表述不清”,而是“我站在技术的逻辑里看数据,而他们站在业务的逻辑里要结果”

    数仓的世界里,我们总在谈“维度建模”,“ETL优化”,“实时计算”,但很少有人问:这些技术的“根”在哪里?

答案其实很简单——业务的真实发生

一、数仓的本质:不是存储数据,而是存储“业务故事”

我刚做数仓时,曾把“建表数量”当成KPI。用了半年时间,把公司的ERP、CRM、APP日志全同步到MaxCompute,建了200多张表,沾沾自喜地跟领导说“数据全打通了”。直到有天财务同学来找我:“能帮我算一下‘线上订单的物流成本分摊’吗?”我翻了半小时表,发现“订单表”里只有“物流单号”,没有“物流成本”;“物流表”里有“成本”,但没有“订单对应的商品重量”——两个表根本关联不起来。

那天我坐在会议室里,看着财务同学手里的“成本分摊公式”(物流成本=重量×单价+首重费用),突然意识到:数仓不是“数据的仓库”,而是“业务故事的仓库”

什么是“业务故事”?

  • 是用户从“点击商品详情页”到“支付成功”的每一步选择;

  • 是生鲜从“供应商冷链发货”到“用户自提”的每一次温度变化;

  • 是订单从“生成”到“完成”的每一笔成本分摊逻辑。

而我们建的表、写的SQL,本质上是用数据“还原”这些故事。如果不懂“物流成本分摊”的业务逻辑,就算把“订单表”和“物流表”同步到云里,也只是两个孤立的“数据碎片”,拼不出完整的故事。

二、业务思考:不是“懂业务”,而是“学会用业务的眼睛看数据”

很多人觉得“数仓同学要懂业务”,就是“去学业务术语”“记业务流程”——这其实是误解。业务思考的核心,是“切换视角”:从“我要怎么处理数据”,变成“业务方要怎么用数据解决问题”

去年做某零售品牌的“用户分层模型”时,我一开始按“RFM模型”(最近购买时间、购买频率、购买金额)分了“高价值用户”“潜在价值用户”“流失用户”三类。结果运营同学用的时候说:“这个分层没用——我们的高价值用户里,有一半是买过一次奢侈品的新用户,根本不会复购;而那些每月买两次美妆的老用户,反而被归到‘潜在价值’里!”

我当时很困惑:“RFM是经典模型啊?”直到运营同学带我去线下门店转了一圈,我才明白:零售的“高价值用户”,不是“花得多”,而是“能持续复购”——对于卖美妆的品牌来说,“每月买两次面膜的老用户”,比“买一次奢侈品的新用户”更有价值,因为她们的“生命周期价值(LTV)”更高。

后来我重新设计模型时,加了两个业务维度:

  • 品类偏好(是否常买高频复购的美妆);

  • 会员等级(是否是连续3个月的付费会员)。

结果运营同学用这个模型做了“美妆老用户专属优惠券”活动,复购率提升了23%——她跟我说:“你终于懂我们要什么了。”

业务思考不是“让你变成业务专家”,而是“让你学会用业务的逻辑翻译数据”

  • 当运营说“要提升复购”,你要想的不是“怎么算复购率”,而是“复购的业务驱动因素是什么?是产品没满足需求,还是触达不到位?”;

  • 当财务说“要算成本分摊”,你要想的不是“怎么关联两张表”,而是“成本的业务逻辑是什么?是按重量摊,还是按订单金额摊?”;

  • 当仓储说“要实时库存预警”,你要想的不是“怎么用Flink做实时计算”,而是“库存的业务风险是什么?是缺货,还是过期?”。

三、没有业务思考的数仓:是能跑任务的机器,不是能创造价值的系统

我见过很多数仓同学的日常:

  • 每天花80%的时间调优ETL任务,确保“数据准时产出”;

  • 为了“模型的规范性”,坚持用“第三范式”建表,不管业务方用不用得着;

  • 输出的报表里全是“用户数”“订单量”这样的“通用指标”,从来不说“这些数对业务有什么用”。

这样的数仓,本质上是“能跑任务的机器”——它能准确、准时地产出数据,但永远不会创造价值,因为它“不懂业务的需求”。

去年我帮某外卖平台做“实时配送超时预警”时,一开始用Flink做了“订单生成30分钟未送达”的预警。结果配送主管看了一天就关掉了:“你这预警里,有一半是‘用户地址填错’的订单,我们根本没法处理;而那些‘商家出餐慢’的订单,反而没预警!”

我当时很委屈:“我是按你说的‘超时30分钟’做的啊!”直到配送主管带我跟了一次晚高峰配送,我才看到:

  • 有些订单超时,是因为用户把“1栋3单元”写成了“3栋1单元”,骑手找了20分钟;

  • 有些订单超时,是因为商家做奶茶用了25分钟,骑手到店等了15分钟;

  • 还有些订单超时,是因为晚高峰堵车,骑手根本没办法。

这些“超时的原因”,在我的实时任务里根本没有——我只算了“订单生成到送达的时间”,却没关联“商家出餐时间”“用户地址准确性”“路况数据”这些业务维度。

后来我重新调整了预警逻辑:

  • 关联商家出餐时间:如果商家出餐超过15分钟,提前5分钟给骑手发“出餐慢预警”;

  • 关联用户地址数据:如果地址填写不完整(比如没写单元号),提前10分钟给用户发“确认地址提醒”;

  • 关联实时路况:如果骑手路线上有拥堵,自动重新规划路径。

调整后,超时订单减少了40%——配送主管拍着我肩膀说:“现在这预警,才是‘有用的’。”

没有业务思考的数仓,就像没有“感知”的机器:它能完成你下达的“任务”,但永远不会“主动”解决业务的问题;它能产出“准确的数据”,但永远不会“创造价值”。

四、从“技术人”到“业务数据人”:数仓人的进阶之路

我做数仓,最深刻的感悟是:数仓人的成长,从来不是“技术能力的提升”,而是“业务思考能力的进阶”——从“我会用MaxCompute建表”,到“我知道建什么表能帮业务解决问题”;从“我会用Flink做实时计算”,到“我知道什么场景需要实时计算”。

那么,数仓同学该如何培养“业务思考”能力?我总结了三个方法:

1. 把“需求访谈”变成“业务调研”

别再问业务方“你要什么指标”,而是问:

  • “你要这个指标,是想解决什么问题?”(比如“提升复购”“降低成本”);

  • “这个问题的业务痛点是什么?”(比如“找不到高价值用户”“商家出餐慢”);

  • “你会用这个指标做什么决策?”(比如“发优惠券”“优化商家考核”)。

需求不是“接”来的,是“挖”出来的——只有挖到“业务的痛点”,你做的数据才会“有用”。

2. 把“模型设计”变成“业务流程的抽象”

别再为了“技术的完美”用“第三范式”建表,而是问自己:

  • “这个业务的核心过程是什么?”(比如生鲜的“采购→入库→销售→过期”);

  • “业务方观察这个过程的视角是什么?”(比如运营看“品类”,财务看“成本”,仓储看“库存”);

  • “这个模型能还原业务的真实发生吗?”(比如“库存表”里有没有“温度”“过期时间”这些业务维度?)。

模型不是“技术的产物”,是“业务的产物”——只有抽象了“业务流程”,你的模型才会“好用”。

五、为什么现在数仓同学必须懂业务?——行业趋势倒逼的“核心竞争力”

以前数仓的核心是“技术能力”:比如Hadoop调优、SQL优化、分布式存储。但现在不一样了——

1. 数据中台的要求:从“后台支持”到“业务伙伴”

阿里、腾讯推的“数据中台”,核心就是“业务驱动数据”。数仓不再是“后台的技术部门”,而是要变成“业务的合作伙伴”——你得知道业务今年的KPI是“提升复购”还是“拓展新客”,得知道运营的痛点是“找不到高价值用户”,得知道产品的新功能要测“留存率”还是“转化率”。

2. 实时数仓的挑战:懂业务才能“不瞎实时”

实时数仓(Flink、Spark Streaming)很火,但实时的成本很高(计算资源、存储成本)。懂业务的数仓同学,能判断“哪些场景需要实时”:比如直播的“实时库存扣减”必须实时,而“月销量统计”根本不需要;比如外卖的“实时超时预警”要实时,而“季度配送效率分析”不需要。不懂业务,就会为了“实时”而“实时”,浪费资源

3. 职业发展的必然:从“技术岗”到“业务+数据岗”

现在数仓同学的职业路径,早已不是“纯技术”(比如从数仓工程师到大数据架构师),而是更多转向“业务+数据”的角色:

  • 数据产品经理:把业务需求转化为“用户画像产品”“库存预测产品”(得懂业务的“用户分层逻辑”);

  • 业务分析师:用数据解决“如何提升新用户留存”这样的问题(得懂业务的“用户行为路径”);

  • 增长黑客:用数据找到“增长杠杆”(比如“某渠道的获客成本最低,转化最高”,得懂业务的“渠道特性”)。

这些角色的核心能力,不是“写最复杂的SQL”,而是“懂业务”。

4. 把“数据输出”变成“业务行动的建议”

别再输出“用户复购率是12%”这样的“裸数据”,而是加上:

  • “这个数的业务意义是什么?”(比如“比行业均值低3%”);

  • “数据背后的原因是什么?”(比如“新用户占比太高,新用户复购率只有5%”);

  • “建议的行动是什么?”(比如“针对新用户优化试听课,针对老用户发优惠券”)。

数据不是“输出”的,是“翻译”的——只有翻译成“业务能懂的行动”,你的数据才会“有价值”。

最后:数仓是“用数据理解业务”

前几天整理硬盘,翻到三年前的笔记,里面写着:“我的目标是成为‘大数据架构师’,精通Hadoop、Spark、Flink。”现在再看这句话,突然觉得很幼稚——真正的“大数据架构师”,不是“精通所有技术”的人,而是“能用技术解决业务问题”的人

数仓的世界里,没有“完美的技术”,只有“适合业务的技术”;没有“万能的模型”,只有“还原业务的模型”;没有“绝对准确的数据”,只有“对业务有用的数据”。

当我们放下“技术专家”的执念,学会站在业务的土壤里看数据,那些曾经晦涩的SQL、复杂的模型,都会变成连接数据和价值的桥梁——而这,就是数仓的“哲思”。

毕竟,数据的价值,从来不是“存储在云里”,而是“活在业务里”

阅读“数仓的哲与思”专栏获取更多知识

往期精彩

读者提问:如果维度退化或下沉的维度属性发生了变化,事实表该如何处理?

面试提问:数据开发中如何通过指标拆解来编写正确的SQL?(附拆解模板)

数仓新手开发如何撰写设计文档?

京东数据研发一面:用HiveSQL计算新用户近7日留存率(不允许使用JOIN)

JD物流运输面试SQL题:物流时效分析实战

面试提问:数据开发时,数据探查到底探查的是什么?应如何探查,探查的思路是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值