分类体系维度是什么
同一种业务对象往往同时存在多套分类:企业内部类目、行业标准类目、电商平台类目,层级与边界都不一样。推荐做法是选定一套业务主分类进主维,保证分析口径唯一;其他分类做成对照表(映射表)按需 join。当两套分类是多对多关系时,必须用桥接表,把第二套分类冗余进主维会直接造成金额重复计数。
基本信息
| 主分类 | 进主维,保证每个成员唯一归属 |
|---|---|
| 其他分类 | 独立对照表,按 taxonomy_type 区分 |
| 映射关系 | 一对一 / 一对多 / 多对多 |
| 多对多处理 | 必须用桥接表,禁止冗余进主维 |
| 层级维护 | 主分类层级进维,对照分类保留原层级 |
| 版本管理 | 分类调整(类目合并、新增)保留版本 |
典型使用场景
- 对外报表:按内部主分类汇总,口径稳定可控
- 行业对标:把内部类目映射到行业类目,与外部数据比对
- 平台运营:同一商品映射到平台类目做站内流量分析
- 采购分析:按物料分类汇总采购额,多套分类各用其场景
- 类目治理:发现映射缺失或错配的商品,推动补全
主分类与对照表查询
主分类与对照表查询
SELECT f.cat_key, sum(f.amount) AS amt
FROM fact_order f
GROUP BY f.cat_key; -- 主分类已进主维,直接汇总即可
SELECT m.target_cat, sum(f.amount) AS amt
FROM fact_order f
JOIN dim_taxonomy_map m ON f.cat_key = m.src_cat_key
WHERE m.taxonomy_type = 'industry' -- 切到行业分类口径
GROUP BY m.target_cat;
SELECT m.target_cat, sum(f.amount) AS amt
FROM fact_order f
JOIN bridge_cat_multi m ON f.cat_key = m.src_cat_key -- 多对多走桥接表
WHERE m.taxonomy_type = 'platform'
GROUP BY m.target_cat;映射关系与做法
| 映射关系 | 实现方式 | 注意点 |
|---|---|---|
| 一对一 | 对照表一列即可 | 直接 join,无重复风险 |
| 一对多 | 对照表多行 | 汇总时一个源类目进多个目标类目 |
| 多对多 | 桥接表 + 权重 | 需业务规则决定权重或主次 |
主分类的选择标准是「内部口径稳定、层级完整、有人负责维护」,而不是「看起来最新」;被选为主分类的那套要写进模型文档,其他分类的映射关系由业务方确认签字。
对照表要覆盖到最小粒度:如果只在二级类目做映射,一级类目的报表就只能靠汇总推断,容易出现上下级加总不一致。