● 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 × 类目 × 地区交叉粒度三、为什么我推荐归属交易主题数据仓库主题划分的两种流派实际生产中DWS 主题划分通常有两种思路┌────────────┬──────────────────┬────────────────────────┐│ 流派 │ 主题划分依据 │ 典型主题 │├────────────┼──────────────────┼────────────────────────┤│ 对象型主题 │ 围绕分析实体 │ 用户、店铺、商品、品牌 │├────────────┼──────────────────┼────────────────────────┤│ 过程型主题 │ 围绕业务过程聚合 │ 交易、流量、履约、营销 │└────────────┴──────────────────┴────────────────────────┘大多数互联网公司是两种混用的单实体宽表 → 对象型主题用户、店铺、商品多维交叉聚合表 → 过程型主题交易、流量、履约我建的这张表属于多维交叉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 表名一定要能从名字看出它的主题归属和粒度否则数仓越建越乱谁也搞不清一张表该用还是不该用。
【大数据_数仓架构-07_ DWS建的表归属到是什么主题域,如何划分,举例】
发布时间:2026/6/14 8:22:52
● 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 × 类目 × 地区交叉粒度三、为什么我推荐归属交易主题数据仓库主题划分的两种流派实际生产中DWS 主题划分通常有两种思路┌────────────┬──────────────────┬────────────────────────┐│ 流派 │ 主题划分依据 │ 典型主题 │├────────────┼──────────────────┼────────────────────────┤│ 对象型主题 │ 围绕分析实体 │ 用户、店铺、商品、品牌 │├────────────┼──────────────────┼────────────────────────┤│ 过程型主题 │ 围绕业务过程聚合 │ 交易、流量、履约、营销 │└────────────┴──────────────────┴────────────────────────┘大多数互联网公司是两种混用的单实体宽表 → 对象型主题用户、店铺、商品多维交叉聚合表 → 过程型主题交易、流量、履约我建的这张表属于多维交叉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 表名一定要能从名字看出它的主题归属和粒度否则数仓越建越乱谁也搞不清一张表该用还是不该用。