已采纳
回答正文
回复
讨论正文
该问题的正文与回答。
背景
我做了 5 年技术文档,这两年在帮团队搭指标体系。核心指标 40+ 个,DWD 明细层已经建好,查询能跑通,但运营看板一拖拽维度就慢(一张几千万行的订单明细,按「日期 × 渠道 × 城市 × 品类」下钻,P99 经常 8s+)。现在卡在该不该建 DWS 汇总层、以及建多少张——这件事我文档里一句话都写不出来。
现象(具体)
业务方要的维度组合是开放的:渠道、城市、品类、客户等级、时间粒度(日/周/月)……哪怕只挑 5 个维度自由组合,理论组合就 2^5=32 种,再乘时间粒度直接上百种。我撞到的具体卡点:不是"要不要预聚合",而是"到底预聚合哪些组合"。 全枚举建表我算过,光 DWS 就要 60+ 张、每天调度跑不完;只建一张"全维度宽表",查询时 group by 任意子集又能跑,但等于没预聚合、白建。
已尝试的排查与结果
group by 组合占了 78% 查询量,剩下 22% 长尾是 40+ 种组合——长尾这 22% 到底该现算还是也预聚合,没标准。期望得到的答案形态
希望有真正管过 DWS 的同学给一个可落地的决策规则,比如:
最好能附一个你团队真实用过的例子(脱敏即可),把维度组合、表数量、调度耗时、查询 P99 前后对比都写出来,这种我可以直接搬进文档。