咖啡豆促销是否继续,需要同时观察销售、退款、商品成本、营销费用和供货情况。这些证据往往分散在不同系统,含义、时间和记录粒度也不一致。
本文承接"零售与数仓(一)",从经营需求推导数仓建设。案例、数字和模型为教学设计,不表示已部署系统或完成真实经营验证。
一、先看完整闭环
明确交付 → 找齐证据 → 组织模型 → 加工结果 → 验证发布 → 持续更新与反馈修正。
数仓将不断产生的业务记录,组织成可追溯、可复用的分析依据。是否由促销带来改善,还需要实验或适当的因果评估;数仓应为其保留必要证据。
二、把"看效果"变成明确交付
"给我做促销看板"不足以指导建设。需要约定:看哪些指标,统计什么范围,怎样处理退款和费用,多久更新,以及如何验收。
例如,本例约定每天早上提供活动期间支付成功的商品交易,追踪截至昨天的成功退款,按确认的成本方法计算商品毛利;广告费用保留可核实的归属,不能可靠分摊的部分在较高层级展示。
"昨天发生多少退款"和"活动订单截至昨天退了多少"是两个问题,应分别命名。商品毛利、活动贡献与企业利润也应明确成本范围,避免用同一个名称表达不同结果。
产物是一份口径约定,由业务确认含义,数据团队确认来源、实现与检查方式。
三、找到证据,同时暴露缺口
| 过程 | 所需证据 | 重点核实 |
|---|---|---|
| 活动 | 参与商品、门店、时间和规则 | 能否识别未成交的参与商品 |
| 销售支付 | 商品行、数量、金额、支付流水 | 是否多次或拆分支付 |
| 售后 | 退款状态、时间、金额 | 能否找到原销售行 |
| 成本 | 销售对应成本及调整 | 成本何时确认、如何更正 |
| 费用 | 广告、配送等凭证与归属 | 直接归属还是规则分摊 |
| 库存 | 库存状态及出入库、缺货信息 | 是否足以判断缺货 |
| 实验 | 资格、分组、执行和结果 | 是否包含未购买对象 |
数据接入成功不代表证据完整。广告费只有"渠道+月份"时,不能直接声称得到每个商品每天的真实广告成本。每日库存快照也未必能证明当天从未缺货。
四、按业务含义建立模型
先确定一行代表什么,再决定字段和表名。
| 模型 | 一行代表什么 |
|---|---|
| 支付流水 | 一笔成功支付流水 |
| 销售商品行 | 一笔交易中的一个商品行 |
| 退款分配明细 | 一笔成功退款分配到一个原商品行的记录 |
| 费用明细 | 一条有来源凭证的费用记录 |
| 库存日快照 | 某日结束时某门店某商品的库存 |
| 活动商品覆盖 | 商品在某活动、门店的有效参与区间 |
商品、门店、日期和客户维度提供统一观察角度。不同来源的商品编号需要有依据的对应关系;商品分类变化后,历史按当时分类还是当前分类展示,也需要明确。
保留支付流水,是为了追溯实际收款与多次支付;形成销售商品行,是为了分析商品。若把支付金额分配到商品行,需要保存规则,并核对分配合计。
销售和退款分别保留,才能同时回答成交与后续售后问题。同粒度的已确认成本可以进入销售模型;详细成本调整仍需要可追溯。
五、不同证据怎样组合成经营结果
假设一个商品有两笔销售100元、200元,还有两笔退款10元、20元。只按商品编号连接,会得到四个匹配组合,销售与退款都被重复累计。
因此,能够准确对应原销售行的退款先归集到该行;不能在明细层直接对齐的过程,先各自汇总到可比较的范围,再组合。
例如,活动商品毛利合计3000元、活动广告费1000元,可以在活动层面扣除一次。不能把1000元挂到每个订单后再求和。需要分摊时,应保留分摊依据,并区分分摊结果和原始事实。
这些加工可以组织为:
| 层次 | 主要职责 |
|---|---|
| ODS原始层 | 保存接入记录、来源和接入时间 |
| DWD明细层与DIM维度 | 统一标识、状态、粒度和业务含义 |
| DWS公共汇总层 | 沉淀重复使用的统计结果 |
| ADS应用层 | 面向经营问题组织输出 |
层名不保证正确,也不要求每个需求经过全部层次。库存等时点状态不能简单跨天求和;利润率和客单价等应按目标范围重新汇总分子、分母。
六、从第一次算对,到每天持续算对
10月1日支付100元,10月3日退款20元。接入退款后,"10月3日退款额"和"10月1日支付订单截至观察日净额"都可能更新,但10月1日成功支付100元的事实仍应保留。
每天需要识别新增和更正,更新受影响明细,再重算相关汇总。同一记录重复到达不能重复计入,任务失败后可以重跑,漏数可以补回,发布时避免使用方看到不一致的中间结果。
验证沿链路设置:接入是否到齐,主键是否重复,支付分配是否守恒,退款是否正确关联,汇总能否与明细核对。找不到原销售的退款应显露并处理,不能静默丢弃。
异常还要能定位影响:哪些日期、指标和使用方受到影响,修复后需要重算哪里。尚未完整的数据,应按约定标记暂估或阻断,不能伪装成最终结果。
七、交付之后,反馈怎样进入下一轮建设
业务调整投放和备货后,数仓继续记录结果。如果需要细分新老客户,就重新检查客户身份、历史完整性和新客定义,再决定复用或扩展模型。
因此,建设成果包括口径、模型、加工、质量检查、更新修复与使用说明。报表能打开只是其中一项。
八、快速复习
需求决定需要什么证据;粒度决定怎样记录和关联;加工形成统一口径;验证保证结果可信;持续更新处理业务变化;使用反馈推动演进。
检查理解的三个问题:退款晚到后更新哪些结果?费用为什么不能随意挂到每笔订单?商品参加活动但没有销售,记录应该从哪里找?
阅读与后续
《数据仓库工具箱》第3版第3章,书内49---52页讨论粒度和事实,63---66页讨论支付、扩展及促销覆盖;第4---6章与第19---20章可继续研究库存、采购、订单和ETL。《指标体系与指标平台:方法与实践》第5章可对照经营场景。
参考:Kimball维度建模四步法。本篇线上支付、退款和加工运行设计包含教学扩展,不是原书POS案例的完整复刻。
下一篇讨论:这些能力应当什么时候建设,以及当前建设到哪一步才合适。