当前位置: 首页 > news >正文

【大数据_数仓架构-07_ DWS建的表归属到是什么主题域,如何划分,举例】

● DWS 表的主题归属分析

非常好的追问!这正是 DWS 建模中最关键也最容易模糊的地方。

我建的 dws_cate_region_trade_1d 这张表,它的主题归属其实是有争议的,我们来认真分析一下。


一、回顾这张表的特征

dws_cate_region_trade_1d
粒度:dt × 省 × 市 × 一级类目 × 叶子类目
指标:订单数、交易额、件数、买家数…

关键观察:这张表的粒度里没有任何一个"分析对象"占主导地位 —— 它既不是纯粹的"商品/类目主题",也不是纯粹的"地区主题",而是两个维度的交叉。


二、三种主题归属的判断思路

思路A:归属到"类目主题"(cate)

理由:从分析对象看,这张表的核心是"研究类目的销售表现",地区只是切片维度。

主题域:商品/类目主题
表名应改为:dws_cate_trade_1d
粒度:dt × 类目 × 地区切片

适用场景:以"类目运营"为主线的分析体系。

思路B:归属到"地区主题"(region)

理由:从分析对象看,核心是"研究地区的消费表现",类目只是切片维度。

主题域:地区主题
表名应改为:dws_region_trade_1d
粒度:dt × 地区 × 类目切片

适用场景:以"区域运营"为主线的分析体系。

思路C:归属到"交易主题"(trade)—— 我推荐的归属

理由:这张表本质上是交易事实的多维聚合,没有主导的分析对象,应归到交易主题这个"过程域型主题"。

主题域:交易主题(trade)
表名:dws_trade_cate_region_1d
粒度:dt × 类目 × 地区(交叉粒度)


三、为什么我推荐归属"交易主题"

  1. 数据仓库主题划分的两种流派

实际生产中,DWS 主题划分通常有两种思路:

┌────────────┬──────────────────┬────────────────────────┐
│ 流派 │ 主题划分依据 │ 典型主题 │
├────────────┼──────────────────┼────────────────────────┤
│ 对象型主题 │ 围绕分析实体 │ 用户、店铺、商品、品牌 │
├────────────┼──────────────────┼────────────────────────┤
│ 过程型主题 │ 围绕业务过程聚合 │ 交易、流量、履约、营销 │
└────────────┴──────────────────┴────────────────────────┘

大多数互联网公司是两种混用的:

  • 单实体宽表 → 对象型主题(用户、店铺、商品)
  • 多维交叉聚合表 → 过程型主题(交易、流量、履约)
  1. 我建的这张表属于"多维交叉"

dws_trade_cate_region_1d
├── 它不是"用户宽表"(没有 user_id 维度)
├── 它不是"店铺宽表"(没有 shop_id 维度)
├── 它不是"商品宽表"(粒度比商品粗,是类目级)
└── 它是【交易事实】在【类目 × 地区】两个维度上的交叉聚合

所以归属到"交易主题"最合适。


四、规范化的命名与归属

按阿里 OneData 体系的命名规范,应该这样调整:

– 原来的命名
dws_cate_region_trade_1d ← 不规范

– 规范后的命名
dws_trade_cate_region_1d
↑ ↑ ↑ ↑
层 主题域 粒度 周期

命名解析:

  • dws:层级
  • trade:主题域 = 交易
  • cate_region:粒度 = 类目 × 地区
  • 1d:周期 = 日

五、淘宝场景下 DWS 主题域的完整划分

为了让你看清楚归属逻辑,给你一份完整的 DWS 主题分布:

对象型主题(单实体宽表)

用户主题 (user)
├── dws_user_trade_1d 用户的交易表现(用户视角)
├── dws_user_trade_nd
├── dws_user_traffic_1d
└── dws_user_logi_nd

店铺主题 (shop)
├── dws_shop_trade_1d
└── dws_shop_traffic_1d

商品主题 (item)
├── dws_item_trade_1d 单品的销售表现
└── dws_item_traffic_1d

过程型主题(多维交叉聚合)

交易主题 (trade) ← 我建的表归这里
├── dws_trade_cate_region_1d 类目×地区 交易汇总 ← 就是这张
├── dws_trade_cate_1d 类目维 交易汇总
├── dws_trade_region_1d 地区维 交易汇总
├── dws_trade_brand_1d 品牌维 交易汇总
└── dws_trade_channel_1d 渠道维 交易汇总

流量主题 (traffic)
├── dws_traffic_page_1d 页面流量汇总
└── dws_traffic_source_1d 流量来源汇总

履约主题 (logi)
├── dws_logi_carrier_1d 物流商汇总
└── dws_logi_region_1d 地区履约汇总


六、一个判断决策树

判断一张 DWS 表归属哪个主题域,用这个决策树:

这张表的粒度里有【单个明确的分析对象】吗?

├─ 有 → 对象型主题
│ ├─ 粒度是 user_id → 用户主题 (user)
│ ├─ 粒度是 shop_id → 店铺主题 (shop)
│ ├─ 粒度是 item_id → 商品主题 (item)
│ └─ 粒度是 brand_id → 品牌主题 (brand)

└─ 没有(多维度交叉聚合)→ 过程型主题
├─ 度量是交易类(订单、金额)→ 交易主题 (trade) ✅
├─ 度量是流量类(PV、UV) → 流量主题 (traffic)
├─ 度量是履约类(发货、妥投)→ 履约主题 (logi)
└─ 度量是营销类(券、活动) → 营销主题 (mkt)

我建的 dws_cate_region_trade_1d:

  • 没有单一分析对象(cate + region 两个维度)
  • 度量是支付订单数、交易额 → 交易类
  • ✅ 归属:交易主题 (trade)

七、修正后的最终方案

表名修正

– 原表名(不规范)
dws_cate_region_trade_1d

– 规范后
dws_trade_cate_region_1d

完整命名层级

ods 层 → ods_trade_order_di (贴源,业务系统名)
dwd 层 → dwd_trade_order_pay_di (交易域-支付过程)
dws 层 → dws_trade_cate_region_1d (交易主题-类目地区粒度-日)
ads 层 → ads_flower_rose_geo_1d (应用:鲜花玫瑰地域看板)

一目了然的归属

DWD 数据域: 交易域 (trade)
↓ 聚合
DWS 主题域: 交易主题 (trade)
↓ 应用化
ADS 业务方向: 鲜花运营 (flower)

注意:DWD 的"交易域"和 DWS 的"交易主题"虽然名字相似,但概念不同:

  • DWD 交易域:以"交易业务过程"组织的明细事实表集合(下单、支付、退款)
  • DWS 交易主题:以"交易度量"为核心、按各种维度组合聚合的汇总表集合

八、为什么不归"商品主题"或"地区主题"?

不归"商品主题"

商品主题的标准粒度应该是 item_id(单品级),用来回答"某个具体商品的销售表现"。
而 dws_trade_cate_region_1d 粒度是 类目级,比商品粗一层,不属于商品主题的核心资产。

不归"地区主题"

如果建"地区主题",应该建一张围绕地区这个分析对象的宽表:

dws_region_full_nd(地区主题宽表,假设建)
粒度:city_code + dt
字段:
city_code, city_name,
– 交易表现
total_pay_amount_30d, total_order_cnt_30d,
– 流量表现
total_uv_30d, total_pv_30d,
– 履约表现
avg_delivery_hours_30d,
– 用户表现
active_user_cnt_30d, new_user_cnt_30d

这才是"地区主题宽表" —— 围绕地区这个对象,刻画它的方方面面。
而我建的表只是"交易事实 × 地区切片",远没到"地区画像"的程度。


九、一句话总结

▎ dws_trade_cate_region_1d 归属【交易主题域 trade】,属于"过程型主题"下的"多维交叉聚合表"。

▎ 判断依据:
▎ 1. 粒度是"类目 × 地区"的交叉,没有单一分析对象 → 不是对象型主题
▎ 2. 度量是订单数、交易额 → 属于交易类度量
▎ 3. 服务于交易场景的多维下钻分析 → 归交易主题最自然

▎ 规范化命名应为:dws_trade_cate_region_1d(主题域放在粒度前面)

这也提醒我们一个建模铁律:

▎ DWS 表名一定要能从名字看出它的主题归属和粒度,否则数仓越建越乱,谁也搞不清一张表该用还是不该用。

http://www.zskr.cn/news/1511177.html

相关文章:

  • 工厂企业做外贸独立站流程是什么? - 外贸营销驿站
  • 2021年主流微信小程序wxapkg解包工具(带GUI界面,开箱即用)
  • 天花板!苏州黄金回收攻略|5家正规门店,报价透明不套路 - 讯息早知道
  • 终极抢票神器DamaiHelper:10分钟轻松搞定演唱会门票
  • 当视觉AI遇见中国象棋:VinXiangQi如何重新定义棋局分析体验
  • 如何用League Akari轻松掌握你的英雄联盟战绩数据
  • 椭偏仪在HfO₂薄膜光学常数测量中的应用
  • MPC5566 PowerPC MCU:确定性实时控制架构与汽车电子应用解析
  • 5步掌握RapidVideOCR:高效提取视频硬字幕的实用指南
  • 3步解锁加密压缩包:ArchivePasswordTestTool让密码恢复变得简单
  • GAN不只是造假:深入浅出图解SRGAN,看AI如何‘脑补’出高清世界的细节
  • 蓝牙射频模块MMM7400设计解析:LTCC集成与抗干扰实战
  • Diablo Edit2终极指南:暗黑破坏神2存档修改器完全教程
  • 注塑件质量控制与模具开发全指南:从模具设计到缺陷排查
  • LDO和DCDC如何选择
  • MMC2114 32位RISC微控制器:架构解析与低功耗嵌入式开发实战
  • 3小时精通yuzu:在电脑上完美运行任天堂Switch游戏
  • 5分钟上手:让Blender完美支持3D打印文件格式的终极方案
  • Visual C++ Redistributable AIO:Windows系统运行库完整解决方案
  • 考勤打卡机人脸与指纹录入全攻略,通芝手把手教你搞定
  • d2s-editor:5分钟学会暗黑破坏神2存档编辑的终极指南
  • VC++项目直接可用的GDI+图形开发全套资源(DLL+头文件+静态库)
  • 神经符号AI与本体论:下一代可解释AI的融合之道
  • 如何用FanControl实现Windows风扇智能控制:终极免费指南
  • 终极桌面整理指南:用NoFences免费打造高效工作空间
  • 终极3DS格式转换指南:5分钟将.3ds游戏变成可安装CIA
  • 创新翻译解决方案:完全掌握视觉小说本地化工具
  • 3大技术突破:MCprep如何重塑Minecraft动画创作生态
  • OpenCL内核编程:限定符与内置函数实战指南
  • 手把手教你用IP-Link和BFD监控防火墙双机热备的‘眼睛’——VGMP组监控链路配置详解