首页/数据/数仓建模速查/标签建模:宽表、竖表与索引
维度与事实设计149 条

标签建模:宽表、竖表与索引

标签数据三种落法:宽表(每人一行多列)适合固定标签集;竖表(人-标签一行)灵活但查询繁琐;位图/倒排适合人群圈选引擎。

数仓建模速查数据更新于 2026-10-13

标签数据怎么落

标签有三种常见落法:宽表(每人一行多列)适合标签集固定的场景,查询直观但扩列成本高;竖表(人标签一行)扩展灵活但查询要多次关联;位图或倒排索引适合人群圈选引擎,圈选与交并最快。选择取决于标签数量、更新频率与查询方式。

基本信息

宽表一行多列,适合固定标签集
竖表人标签一行,扩展灵活
位图或倒排按标签存集合,圈选与交并最快
更新方式按周期全量刷新或增量覆盖
治理要求标签编码、计算逻辑、刷新周期与负责人登记在注册表

典型使用场景

  • 人群圈选:营销按多个标签组合筛选目标人群
  • 用户分层:按价值与活跃度标签做分层运营
  • 个性化推荐:把标签作为特征输入推荐模型
  • 风险识别:命中特定风险标签的用户进入名单
  • 效果复盘:按标签分组对比活动转化效果

竖表与宽表查询

竖表与宽表查询
-- 竖表:人标签一行,新增标签无需改表结构
SELECT user_id
FROM user_tag
WHERE tag_code = 'high_value'
  AND dt = '2026-10-12';

-- 宽表:一行多列,适合固定的标签集
-- SELECT user_id FROM user_tag_wide
-- WHERE is_high_value = 1 AND is_active_30d = 1;

三种方案对比

方案形态优点代价
宽表一行多列查询直观、单表过滤扩列成本高、表很宽
竖表一行一标签灵活扩展、易治理多次关联、查询复杂
位图标签存位图圈选快、支持交并依赖引擎能力与基数上限
标签口径要按注册表管理:标签编码、计算逻辑、刷新周期与负责人登记齐全后,圈选结果才可解释、可复现。
标签更新要保留版本或生效时间:人群圈选结果需要复现时,缺少版本信息就无法还原当时的标签状态。
标签刷新粒度要与分析粒度对齐:按天刷新的标签关联到月度报表时,同一用户在一个月内会有多个标签值,取用时必须明确按哪个时点的快照。

易错点

  • 标签更新无版本:圈选结果不可复现,投放复盘失去依据
  • 标签编码随意新增:消费端无法治理,同一含义出现多个编码
  • 宽表字段无限扩张:表宽与查询成本上升,维护越来越困难
  • 竖表标签值域不统一(0/1 与 true/false 混用):过滤条件写错
  • 标签计算口径变更不通知下游:人群规模突然变化,投放策略被误判

数据来源与参考

  • 数仓建模实践:标签体系建设
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌