首页 / 业界 / 正文

藏在业务报表背后的数据仓库

上周帮在南京新街口做电商的老周擦了个屁股。

他的团队快炸了。

双11预售刚开一周,运营小姐妹为了凑齐各渠道的主播带货数据,对着三个系统导出的17个Excel拼了一晚上,最后算出来的GMV和财务账上的数差了八万多。两边对着表格吵到晚上九点,谁也说服不了谁。

多部门Excel数据拼接混乱桌面实拍图

我翻了翻他们的导出文件就笑了。直播后台的GMV是没扣退货的,订单系统的成交金额是没扣优惠券的,财务的口径是扣完所有平台服务费的。三个数根本不是一回事,拼到天荒地老也对不上。

谁把取数流程搞成了拆盲盒

这其实是绝大多数中小团队的常态。没有统一的数据出口,所有数据都散在各个业务系统的后台库里,谁要什么数就自己导,导完了自己算,算出来的数自己认。

更离谱的是,老周他们之前为了省成本,直接让运营连了生产订单库跑查询。上个月有个新入职的运营跑统计的时候忘了加时间筛选条件,直接把整个订单表锁了二十分钟,前台下单页卡得转圈,差点把当天的预售流量全造没。

我当时听完整个人都麻了。

别把业务数据库当数据仓库用

很多人到现在都搞不清这俩的区别。业务数据库的核心使命是支撑前台交易,要求是低延迟、高稳定,哪怕你查个全表统计,也不能影响用户下单付款;数据仓库从设计之初就不是用来跑交易的,它的唯一作用就是把所有分散的数据统一口径、整合打通,给业务方提供靠谱的查询入口。

说白了,前者是你家厨房,用来炒菜给客人吃的;后者是你家的食材储藏室,专门用来分类放菜、记清楚每样菜的进货价、损耗率,你要是把储藏室当厨房用,客人等急了自然要闹。

数据仓库分层架构逻辑示意图
数据仓库分层架构逻辑示意图

很多人觉得数据仓库就是个存数据的大容量硬盘,其实根本不是。正经能用的数仓都是分层设计的:最底层是原封不动的业务数据,所有字段和业务系统里的一模一样,不做任何修改,就是为了出问题的时候能溯源;中间层是统一口径的公共层,不管是哪个渠道来的成交数据,都统一按”扣完优惠券、扣完已发生退款的实际成交额”这个标准算,字段名全公司通用,不会出现你叫GMV我叫成交额的乌龙;最上层才是给各个业务部门准备的应用层,运营要的直播看板、财务要的成本核算表、老板要的实时大盘,全从这层出。

小团队搭数仓真的没那么贵

老周之前总觉得数仓是大厂才玩得起的东西,要专门买服务器,招年薪几十万的数仓工程师,他这种20多个人的小公司根本碰不起。

其实真不是。

我给他搭的最小可用版数仓,根本没花多少钱。把各个业务系统的原始数据每天定时同步到云存储里,绝对不碰生产库;用开源的调度工具每天跑一遍清洗脚本,把所有字段的口径对齐;再接个轻量的报表工具,把各个部门要看的数做成自动更新的看板。

算下来每个月的云服务成本才一百多块,连一杯团队奶茶钱都不到。现在他们的运营要看直播数据,直接打开看板就能看,再也不用对着十几个Excel拉透视,原来每天要花三个小时的取数工作,现在五分钟就能搞定。老周说这两周运营小姑娘准点下班,再也不追在他屁股后面吐槽需求不合理了。

当然也不是说所有团队都要跟风搭数仓。如果你们团队才三五个人,一天的订单量都凑不满一页Excel,那确实没必要折腾这套流程。但只要你发现每次跨部门对数都要吵半小时,每次出报表都要临时拼数据,甚至出现过直接在生产库跑查询影响业务的情况——真的别等。

上周老周给我发了个二十块的奶茶红包,说早知道搭数仓这么简单,前两年也不至于天天在运营和财务中间当夹心饼干。