首页/数据/数据工程与 ETL 速查/数据集市与主题集市

数据集市与主题集市

数据集市面向单一主题域(交易、流量、财务)的定制化数据集合,可来自数仓公共层,也可独立建设;独立集市容易形成口径孤岛,推荐在公共层之上做轻量集市。

数据集市与主题集市

数据集市(data mart)是面向单一主题域的定制化数据集合:交易集市、流量集市、财务集市各自服务一批固定使用者,内容是该域的事实、维度与指标。集市可以建在数仓公共层之上(推荐),也可以从源库独立抽取(容易形成口径孤岛)。判断一个集市是否健康有个简单标准:能否说清每个字段来自哪张公共层的表。说不清,就说明存在私有加工逻辑,口径与质量都不在治理范围内。

基本信息

范围单一主题域:交易、流量、财务、供应链等
依赖关系推荐依赖 DWD 与 DWS 公共层,只做本域重组
内容组成本域的事实表、维度视图与指标口径
交付节奏按业务方迭代节奏发布,变更走评审
健康判据每个字段都能追溯到公共层来源

典型使用场景

  • 交易分析集市:按类目与渠道的交易指标,服务运营团队
  • 财务集市:结算、成本、收入口径,服务财务对账
  • 流量集市:访问、转化与渠道效果,服务增长团队
  • 交付型集市:给特定客户的定制报表口径,隔离在主集市之外
  • 迁移过渡:旧报表系统替换期间,用集市承接原有口径

集市目录组织

集市目录组织
-- 交易集市:从公共层取材,只做本域重组,不重复清洗
CREATE VIEW mart_trade_order_daily AS
SELECT d.stat_date,
       o.category,
       SUM(o.pay_amt) AS pay_amt,
       COUNT(DISTINCT o.user_id) AS pay_user_cnt
FROM dws_trade_category_1d o
JOIN dim_date d ON o.date_sk = d.date_sk
GROUP BY d.stat_date, o.category;

-- 注意:不要在集市里再连源库做二次抽取
-- 需要新维度时,优先在公共层补字段,再更新集市视图

集市类型对照

类型数据来源优点风险
公共层集市DWD 与 DWS口径统一、质量受控需要公共层先具备能力
独立集市直接连源库上线快、定制灵活口径孤岛、绕过质量与调度
交付型集市公共层加定制加工满足特定客户要求定制逻辑需登记与维护
判断集市是否健康:能否说清每个字段来自哪张公共表;说不清就说明存在私有加工,后续口径变更时必然漏改。
各自独立抽取源系统的集市会让同名指标在不同集市口径不同:业务方在两张报表上看到不同数字,最终对整个数据团队失去信任。
集市直接连源库取数会绕过公共层的质量校验与调度,数据既不新鲜也无法追责;短期可用,长期必须收敛回公共层。

易错点

  • 各集市独立抽取源系统,同名指标在不同集市口径不同,业务方看到矛盾数字
  • 集市直接连源库取数,绕过公共层质量与调度,出现问题时无法追责
  • 集市里塞入大量定制逻辑且不登记,主集市口径被悄悄改变
  • 用集市替代公共层,导致每来一个新需求就新建一个集市,重复加工成本快速累积

数据来源与参考

  • Kimball《The Data Warehouse Toolkit》数据集市
  • Inmon《Building the Data Warehouse》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌