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