核心思想:数据治理不是一次性项目,而是随数仓成熟度演进的持续工程。

做跨境电商数据仓库的同行都会有这种感受:表建到快100张、看板超过10个、团队从2人变成5人后,“数据不对”“指标打架”“找不到表”的问题就开始集中爆发。

本文将数据治理分为两个实战阶段展开讨论:冷启动期(0→1) 和 已有业务域期(1→N),并针对跨境电商场景(多平台SKU映射、多币种、多时区、强依赖API)给出可直接落地的方案。


零、先搞清楚:数据治理到底在治什么

0.1 数据治理的六个维度

数据治理体系远不止“数据质量”一个词。完整框架包含六大维度,不同阶段的侧重点截然不同:

┌─────────────────────────────────────────────────────┐
│                  数据治理体系                        │
│                                                     │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐           │
│  │ 数据标准  │  │ 数据质量  │  │ 元数据    │          │
│  │ 规范定义  │  │ 质量监控  │  │ 管理      │          │
│  │ 命名规范  │  │ 质量规则  │  │ 血缘追溯  │          │
│  │ 指标字典  │  │ 质量报告  │  │ 影响分析  │          │
│  └──────────┘  └──────────┘  └──────────┘           │
│                                                     │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐           │
│  │ 主数据    │  │ 数据安全  │  │ 数据生命周期│        │
│  │ 管理      │  │ 权限管控  │  │ 管理      │         │
│  │ SKU/客户  │  │ 敏感数据  │  │ 分层存储  │         │
│  │ 渠道映射  │  │ 审计日志  │  │ 归档销毁  │          │
│  └──────────┘  └──────────┘  └──────────┘           │
└─────────────────────────────────────────────────────┘

0.2 不同阶段的治理重心完全不同

一定要根据数仓成熟度来决定治理策略,避免“小团队得了大公司病”。

阶段1:0→1 冷启动期(建数仓第一年)

  • 特征:表从0到几十张,团队2-3人,需求驱动

  • 治理重心: 数据标准(命名/口径)+ 基础数据质量

  • 不该做的:重型主数据管理、复杂血缘、冗长审批流程

  • 关键词:治理前置,但轻量

阶段2:1→N 成长期(已有业务域,表过百张)

  • 特征:3+业务域,团队5+人,多人协作,需求并行

  • 治理重心: 指标治理 + 数据质量修复 + 主数据 + 元数据补全

  • 不该做的:照搬大厂治理框架,搞理想化流程

  • 关键词:问题驱动,补课式治理

阶段3:N→成熟期(数仓稳定运行,追求精细化)

  • 特征:表几百张,跨团队,有专门数据PM

  • 治理重心:数据资产盘点 + 成本治理 + 安全合规 + 自动化

  • 关键词:体系化,平台化

本文重点覆盖阶段1和阶段2,这是绝大多数跨境电商团队正在经历或即将进入的时期。


第一部分:冷启动期(0→1)的数据治理

1.1 核心原则:治理前置,但只做三件事

刚起步建数仓时,最容易走两个极端:要么什么都不管,先堆表;要么上来就搞一套重型治理框架。正确姿势是:

  • 做什么:把“以后改起来最痛苦的事”现在就定好规矩

  • 不做什么:把“现在做了用不上、等规模大了再做的事”推迟

判断标准很简单:

  • 这件事现在不做,半年后改要付出10倍代价?👉 现在做

  • 这件事现在做了,但半年内没人用?👉 半年后做

1.2 必须做的三件事

第一件:命名规范(最痛的事,必须前置)

为什么最痛:表名/字段名一旦投入使用,下游SQL、BI数据集、调度任务全部引用,改一个名字牵连几十个任务。冷启动期不定好,后面统一改的代价比新写一遍还大。

跨境电商数仓的命名规范(建议直接拿去用):

表名命名结构层级_业务域_描述_时间粒度

  • 层级前缀

    • ods_:接入层(原始数据)

    • dwd_:明细层(清洗后)

    • dws_:汇总层(预聚合)

    • ads_:应用层(看板直查)

    • dim_:维度层

    • rt_:实时层(大促等临时场景)

  • 业务域中缀

    • _order_ 订单域

    • _ads_ 广告域

    • _inv_ 库存域

    • _fin_ 财务域

    • _sup_ 供应链域

    • _cust_ 客户域

  • 时间粒度后缀

    • _di 日增量

    • _df 日全量

    • _hi 小时增量

    • _mi 分钟增量

示例

dwd_order_di             → 订单域明细层日增量表
dws_order_store_df       → 订单域按店铺日汇总表
ads_profit_dashboard_df  → 利润看板应用层日全量表
dim_sku_info_df          → SKU维度表日全量
rt_orders_di             → 实时订单日增量表

字段命名规范(同样重要)

  • 时间字段dt(日期分区字段,格式 yyyy-MM-dd)、create_timeupdate_timepurchase_time

  • 金额字段必须带币种后缀,如 amount_usdamount_cny绝不出现 amount 这种不知道什么币种的命名

  • 状态字段:以 _status / _type 结尾,如 order_statusad_type

  • 标识字段:以 _id 结尾,如 order_idcampaign_id

  • 布尔字段:以 is_ 开头,如 is_primeis_first_order

执行方式:写一页Markdown规范,团队3个人花1小时过一遍,之后所有建表必须遵守。不遵守的PR不给merge。冷启动期不需要工具,靠人review就够。

第二件:指标定义规范(口径统一的起点)

为什么前置:跨境电商的利润计算是口径重灾区——“利润”到底扣不扣广告费?退货运费算谁的?仓储费按发生日还是结算日?这些口径不一开始定死,后面每个部门算出来的利润都不一样,BI上看板打架。

冷启动期只需要做一件事:建一个指标登记表

指标登记表 (Excel/飞书文档即可,不需要专门工具):

| 指标名称 | 英文名 | 业务口径 | 技术口径 | 数据来源 | 负责人 | 状态 |
| GMV | gmv | 成功订单的商品总金额 | SUM(item_price * quantity) WHERE order_status NOT IN ('Cancelled','Returned') | dwd_order_di | 运营总监 | 已确认 |
| 净利润 | net_profit | GMV - 商品成本 - 平台佣金 - FBA费用 - 头程运费 - 广告费 - 退款 | 见dws_profit_di计算逻辑 | dws_profit_di | 财务总监 | 已确认 |
| ACOS | acos | 广告花费/广告归因销售额 | SUM(spend)/SUM(attributed_sales) | dwd_ads_di | 广告主管 | 已确认 |
| 库存周转率 | inventory_turnover | 近30天销量/当前库存 | SUM(quantity_30d)/AVG(fulfillable_qty) | dws_inv_di | 供应链主管 | 待确认 |

冷启动期的指标治理边界

  • ✅ 登记:每个看板上的指标都有一条记录

  • ✅ 确认口径:关键指标(GMV/利润/ACOS)业务方签字确认

  • ❌ 不做:指标分级(原子/派生/复合)、指标树、指标血缘——等表多了再说

第三件:基础数据质量规则(防止脏数据进数仓)

冷启动期的DQC(数据质量检查)只做三种规则,用DataWorks DQC组件即可实现:

规则1:空值检查(防止关键字段为空)

表: dwd_order_di
规则: order_id IS NOT NULL AND asin IS NOT NULL AND amount_usd IS NOT NULL
阈值: 空值率 > 0.1% 则告警
动作: 阻断下游任务 + 钉钉告警

规则2:唯一性检查(防止重复数据)

表: dwd_order_di
规则: order_id + asin 唯一
阈值: 重复率 > 0% 则告警
动作: 阻断 + 告警

规则3:波动检查(防止数据量异常)

表: dwd_order_di
规则: 当日数据量 vs 7日平均 ± 50%
阈值: 偏差 > 50% 则告警
动作: 告警不阻断 (可能真的是大促暴涨)

目前先不做的DQC

  • ❌ 跨表一致性检查(表还少,没必要)

  • ❌ 业务逻辑校验(如利润不能为负——有时退款就是负的)

  • ❌ 数据及时性监控(表少,人工看就行)

1.3 冷启动期明确不做的事

不做的事 原因 什么时候做
主数据管理(MDM) 表还没几张,SKU映射手动维护就够 SKU映射关系超过500条、且变更频繁时
数据血缘 表少,SQL看一眼就知道上下游 表超过100张、且多人维护时
数据资产目录 没什么资产可盘的 表超过80张时
数据安全分级 团队3个人都能看所有数据 团队超过10人、或引入外包时
数据生命周期管理 数据还不多,存储成本不是问题 MaxCompute存储费超过预算30%时
治理委员会 3个人的团队不需要委员会 跨部门数据治理需求出现时

1.4 冷启动期治理清单总结

数据治理投入:约3-5人天

  • 命名规范文档:0.5天 → 1页Markdown

  • 指标登记表(前30个核心指标):1.5天 → 1个飞书文档

  • 基础DQC规则(每张表3条):1天 → DataWorks DQC配置

  • Code Review流程:持续 → 养成习惯

  • ODS层原始数据保留策略:0.5天 → 文档约定

核心心态:治理是“定规矩”不是“建系统”。规矩越简单越好,执行比完美重要。


第二部分:已有业务域期(1→N)的数据治理

2.1 这个阶段的典型痛点

假设你已经有了:经营看板(利润/GMV/订单)、供应链看板(库存/补货)、广告看板(花费/ACOS/转化)。
数仓规模:87张表,130个指标,26条DQC

然后问题开始出现:

痛点1:指标打架
运营看的“GMV”和财务看的“GMV”不一样。
→ 运营用 dws_order_di(含退款)
→ 财务用 dws_profit_di(不含退款)
→ 谁是对的?没人知道。

痛点2:口径漂移
一期建表时利润口径是A,三期建表时利润口径是B。因为不同时间段、不同人建的表,没有统一的指标管理,每个人按自己理解写SQL。

痛点3:表名混乱
dws_order_daily_summary(一期建的)
dws_order_store_df(二期建的)
dws_order_store_di(三期改的)
→ 三个表做类似的事,下游不知道查哪个。

痛点4:SKU映射不一致
dim_sku_info 里 internal_sku = "SKU-A"
dwd_ads_di 里 inner_sku = "SKU-A-US"
→ JOIN不上,广告数据和销售数据对不上。

痛点5:数据质量回退
某天API返回了脏数据,DQC没拦住,脏数据流到了BI看板。运营在会上质疑数据不对,你花半天排查,发现是上游API字段格式变了。

痛点6:谁都不确定某张表还有没有人在用
一期建的中间表,现在可能没人查了。不敢删,怕断了下游,结果越堆越多,存储成本上升。

这就是“补课式治理”的触发点——不是因为理论上该治理了,而是因为痛点已经影响业务了。

2.2 治理总策略:问题驱动,分域推进

策略核心:不搞运动式治理,按业务域逐个治理。

治理优先级矩阵

                    影响面大
                        │
     优先治理            │    优先治理
     (指标打架/利润口径)  │   (主数据/SKU映射)
                        │
 ───────────────────────┼───────────────────────
                        │
     排期处理            │    排期处理
     (表名规范/元数据)   │   (安全/权限)
                        │
                    影响面小
        痛感强 ←────────┼────────→ 痛感弱

执行顺序

  1. 指标治理(解决口径打架)← 影响面大+痛感强

  2. 主数据治理(解决SKU映射)← 影响面大+痛感强

  3. 数据质量加固(解决脏数据)← 影响面大+痛感中

  4. 元数据补全(解决表混乱)← 影响面中+痛感中

  5. 生命周期管理(解决存储)← 影响面小+痛感弱

2.3 第一批:指标治理(最痛,最先做)

2.3.1 问题诊断

把所有的看板指标全部列出来对比定义,你会发现类似场景:

“GMV”在不同表/看板中有4种口径:

来源 口径 用在
dws_order_di SUM(item_price*qty) 经营看板
dws_profit_di SUM(item_price*qty) - refund 利润看板
ads_xxx_df SUM(amount_usd) 含运费 某临时表
BI计算字段 SUM(item_price) 不含qty BI端二次计算

4种口径,3个表,1个BI端计算,谁看哪个数取决于打开哪个看板。

2.3.2 治理动作

Step 1:指标盘点(1周)
列出所有看板指标,标注名称、出处(哪张表)、口径(SQL)、使用方。产出:指标盘点表。

Step 2:口径统一(1-2周)
对每个指标的不同口径,拉业务方确认唯一正确口径。产出:指标确认单(业务方签字)。

关键原则

  • 一个指标只能有一个口径

  • 如果确实需要多个口径(如利润有“实时口径”和“结算口径”),用不同名称区分:net_profit_realtime / net_profit_settled

  • 绝不允许同名不同义

Step 3:物理落地(2-3周)
按确认后的口径修改SQL/表。若BI端有二次计算,必须收口到数仓层,BI只做展示。

核心原则:指标计算必须在数仓完成,BI端不做业务逻辑计算。

  • BI端只做:筛选、聚合(SUM/COUNT)、格式化、图表渲染

  • BI端不做:CASE WHEN(业务逻辑)、汇率转换、退款扣减

Step 4:指标字典上线(1周)
每个指标需记录:指标名、业务口径、技术口径、数据来源表、负责人、版本号+变更记录。

工具选择

  • 50个指标以内 → 飞书文档/Excel

  • 50-200个指标 → DataWorks数据地图的指标管理

  • 200+个指标 → 专业指标管理工具(如阿里云DataWorks指标管理/自建)

2.3.3 指标分层管理

治理后的指标体系:

  • 原子指标:不可再拆分,如 订单量 = COUNT(order_id),来源为 dwd 层

  • 派生指标:原子指标+维度+时间窗口,如 近7天站点GMV,来源为 dws 层

  • 复合指标:多个原子/派生指标的四则运算,如 ACOS = 广告花费 / 广告归因销售额,来源为 dws/ads 层

规则:复合指标必须拆解到原子指标;原子指标口径一旦确认,不可随意修改;修改即版本升级,需走变更流程。

2.4 第二批:主数据治理(SKU映射是跨境电商的命脉)

2.4.1 跨境电商的主数据痛点

一个商品在不同系统中的标识:

  • Amazon ASIN: B0XXXXXXXX

  • Amazon SKU: BRAND-MODEL-BLACK-L

  • 内部SKU: SKU-2024-0001

  • Shopify SKU: SHOPIFY-0001

  • 1688货号: 12345678

  • 工厂型号: XY-2024-BL

如果这些映射关系不对,广告花费(按ASIN)JOIN不了销售数据(按内部SKU),利润算不出来,库存预警不准,所有跨域分析都会断裂。

2.4.2 治理动作

Step 1:建立主数据中枢表
dim_sku_info 是所有域的“公共语言”,必须只有一份,包含:inner_skuasinseller_skushopify_sku1688_codefactory_model,以及成本、品类、重量、状态等。

Step 2:清洗存量映射
拉取各平台后台导出文件,以内部SKU为主键进行匹配,匹配不上的标记为“待人工确认”发给业务核对。100个SKU约2天,1000+SKU需2周+部分自动化。

Step 3:建立变更流程
新品上架 → 运营在主数据表新增一行 → 数仓T+1同步。旧品停售 → 状态改为“停售”即可。关键:主数据表只有一个维护入口,数仓只读不写,每天同步一次

Step 4:渠道映射表
跨境电商还需要解决“站点”维度不统一的问题。
建立 dim_channel_mapping,将 US/UKATVPDKIKX0amazon.com 等不同叫法统一映射到 channel_id

2.5 第三批:数据质量加固

2.5.1 冷启动期 vs 成长期的DQC对比
  • 冷启动期:空值 + 唯一性 + 波动

  • 成长期需新增
    ① 跨表一致性检查dws层汇总值 vs dwd层明细汇总
    ② 业务规则校验:利润率等指标需在合理范围内(例如 -100%~100%)
    ③ 时效性监控:DataWorks任务SLA预警
    ④ API数据格式变更检测(跨境特有):如 ItemPrice 从数值变成了字符串,需校验 amount_usd IS NUMERIC

2.5.2 DQC规则模板(跨表一致性校验SQL示例)
-- 校验: dws层GMV vs dwd层GMV
INSERT INTO dqc_check_result
SELECT
    CURRENT_DATE                               AS check_date,
    'cross_table'                               AS check_type,
    'dws_order_di vs dwd_order_di'              AS table_name,
    'gmv_usd'                                   AS metric_name,
    dwd_sum.gmv                                 AS expected_value,
    dws_sum.gmv                                 AS actual_value,
    ABS(dwd_sum.gmv - dws_sum.gmv) / NULLIF(dwd_sum.gmv, 0) * 100 AS diff_pct,
    CASE WHEN ABS(dwd_sum.gmv - dws_sum.gmv) / NULLIF(dwd_sum.gmv, 0) < 0.01
         THEN 'PASS' ELSE 'FAIL' END            AS status,
    NOW()                                       AS check_time
FROM (
    SELECT SUM(amount_usd) AS gmv
    FROM dwd_order_di
    WHERE dt = '${bdp.system.bizdate}'
      AND order_status NOT IN ('Cancelled')
) dwd_sum
CROSS JOIN (
    SELECT SUM(gmv_usd) AS gmv
    FROM dws_order_di
    WHERE dt = '${bdp.system.bizdate}'
) dws_sum;
2.5.3 DQC规则覆盖率目标
  • 成长期第一阶段(表50-100张):ODS/DWD 100%覆盖,DWS 80%,ADS 50%,目标规则数 = 表数 × 3。

  • 成长期第二阶段(表100-200张):全层覆盖率达90%+,告警准确率 > 80%。

2.6 第四批:元数据补全与血缘管理

什么时候需要:新人入职打开DataWorks,看到100+张表,不知道指标从哪张表算、表被哪些下游依赖、改了会影响哪些看板。

补全内容:表级元数据(中文名、业务描述、负责人、更新频率、生命周期)、字段级元数据(业务含义、数据来源、枚举值)、血缘关系(DataWorks自动解析,人工补全BI端数据集与数仓表的映射)。

实操步骤

  1. 批量补表注释:ALTER TABLE dwd_order_di COMMENT '订单域明细层...';

  2. 批量补字段注释:ALTER TABLE ... MODIFY COLUMN order_id COMMENT '...';

  3. 在DataWorks数据地图中登记表信息

  4. 整理BI端血缘映射表

2.7 第五批:数据生命周期管理

触发信号:MaxCompute存储费超预算30%、ODS层有超1年明细没人查、大量中间表不敢删。

分层生命周期策略

  • ODS层:原始数据保留365天,分区保留90天,超期归档OSS

  • DWD层:明细保留730天(2年),按月分区压缩

  • DWS层:汇总保留1095天(3年),汇总数据体积小可保留更久

  • ADS层:应用保留365天,没人用则下线

  • DIM层:永久保留,停售SKU标记状态

  • 临时表(tmp_):30天自动删除

僵尸表清理:查询90天无访问记录的大表,先重命名为 _deprecated_原表名 保留7天,无反馈再DROP,并记录下线日志。

2.8 数据安全治理(按需做)

触发条件:团队超10人、引入外包、有GDPR/PCI DSS合规要求、发生过数据泄露。

跨境电商特有安全点:客户PII(姓名/地址/邮箱)、信用卡信息(不能入数仓)、供应商价格、员工绩效。
处理方式:敏感字段打标、建立视图脱敏(如 MASK(buyer_email))、MaxCompute项目级权限分离。


第三部分:跨境电商特有治理挑战

3.1 多币种治理

  • DWD层:保留原始币种 + 折算USD两份字段(amount_originalcurrencyamount_usd

  • DWS层:全部用USD汇总,如需其他币种在ADS层再折算

  • 汇率表统一管理dim_exchange_rate,并明确汇率取值口径(订单当日汇率 vs 结算日汇率)

3.2 跨时区治理

  • ODS层保留原始UTC时间

  • DWD层同时存UTC和站点本地时间,并记录时区标识

  • DWS层按站点本地时间分区聚合(因为运营看的是当地时间卖了多少钱),跨站点对比统一用UTC

3.3 API数据源治理

  • 监控各API接口成功率/延迟/数据量,成功率<95%告警

  • ODS层保留API原始JSON至少90天

  • 记录Schema版本变更历史,应对Amazon API字段突然变化


第四部分:治理体系组织化

4.1 角色与职责(5-10人团队)

  • 数据治理负责人:数仓负责人兼任,推动项目、定规范、协调

  • 指标owner:对应业务RD,负责口径确认和维护

  • 表owner:建表的人

  • DQC owner:数仓工程师,维护质量规则

  • 主数据owner:运营/供应链,维护SKU/渠道映射

5-10人团队不需要设“数据治理委员会”,靠规范+review就够。

4.2 三个核心流程

  1. 建表流程:提申请 → 检查命名/是否重复 → 审批 → 建表 → 补元数据

  2. 指标变更流程:发起变更 → 影响分析 → 业务方确认 → 修改SQL → DQC验证 → 上线(所有变更必须记录在指标字典)

  3. 数据质量问题处理流程:告警/报障 → 定位 → 修复 → 补DQC规则 → 复盘

4.3 治理效果度量

  • 数据质量:DQC规则覆盖率>90%,告警准确率>80%,事件数持续下降

  • 指标治理:字典覆盖率>95%,同名不同义指标为0

  • 元数据:表注释100%,字段注释>90%

  • 生命周期:僵尸表占比<5%,存储成本不增长

  • 主数据:SKU映射完整率>98%


第五部分:实施路线图

5.1 冷启动期(数仓0→1阶段)

  • Week 1-2:命名规范文档、建表严格执行、指标登记表建立

  • Week 3-4:每张DWD表配3条基础DQC、ODS保留策略确定、Code Review流程建立

  • 总投入:3-5人天

5.2 已有业务域期(表50-200张阶段)

  • Q1:指标治理(盘点、口径确认、物理修改、字典上线)、主数据治理(SKU/渠道映射清洗)

  • Q2:数据质量加固(跨表一致性、业务规则DQC)、元数据补全(注释批量补、BI血缘整理)

  • Q3:生命周期管理(僵尸表清理、分层策略)、安全治理(脱敏、权限梳理)

  • 每季度投入:约15-20人天(占团队容量10-15%)

日常:DQC告警处理、建表遵循规范
每周:Code Review、DQC复盘、主数据同步
每月:指标字典更新、治理度量、僵尸表识别
每季度:治理项目复盘与下季度规划


第六部分:总结与建议

6.1 两阶段对比

维度 冷启动期 (0→1) 已有业务域期 (1→N)
治理哲学 定规矩,轻执行 补功课,问题驱动
投入比例 5% (3-5人天) 10-15% (持续)
核心动作 命名规范+指标登记+基础DQC 指标统一+主数据+DQC加固+元数据+生命周期
不做的事 MDM/血缘/资产目录/安全/委员会 照搬大厂框架、理想化审批流程
成功标准 新表新指标遵循规范,DQC能拦住明显错误 指标不再打架,DQC覆盖率>90%,僵尸表<5%

6.2 核心认知

  1. 数据治理不是项目,是习惯。习惯 > 文档 > 工具。

  2. 问题驱动,而非理论驱动。因为“指标打架了/数据出错了/找不到表了”才做治理。

  3. 跨境电商的治理重心:SKU映射(跨平台)、渠道映射(跨站点)、币种、时区,这四个是命脉。

  4. 治理的尽头是自动化。冷启动靠人review,成长期靠DQC+规范,成熟期靠平台。

6.3 给“87张表、130个指标、26条DQC”团队的具体建议

  • 立即做(本月)
    ① 指标盘点,找出130个指标中的口径不一致
    ② SKU映射检查,确保能通过 inner_sku JOIN通
    ③ DQC覆盖率检查,补到每表至少3条规则

  • 下季度做
    ④ 指标口径统一修正
    ⑤ 87张表批量补COMMENT
    ⑥ 跨表一致性DQC(dws vs dwd)

  • 半年内做
    ⑦ ODS/DWD/DWS分层生命周期设置
    ⑧ 僵尸表识别(很可能有10-15张不再使用)
    ⑨ 在Quick BI上建一个数据治理度量看板


数据治理是一件“越早开始,后期越省力”的事,但也不必过度治理。希望这份方案能给正在建设跨境电商数仓的你提供一些直接可落地的参考。如果觉得有用,欢迎点赞收藏,也期待在评论区交流你在治理中踩过的坑。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐