提示
预计用时 90 分钟。学习目标:以电商订单场景为例,端到端跑通 建 Catalog → 分层 Schema 与建表 → 治理标签 → 数据质量监控 → 列级脱敏与行级权限 → 数据发现与血缘 的完整数据治理链路。
场景介绍
您是一名刚加入团队的数据治理工程师。业务希望把分散在各业务系统中的电商订单数据沉淀到统一的 数据目录 中,并在最一线就把分类分级、敏感保护、质量监控、可发现性建立起来,避免日后补救。
本教程将带您:
1. 创建电商业务域的 Table 类 Catalog ,理解三类 Catalog(Table / Volume / Model)的边界。
2. 在 Catalog 下创建分层 Schema (ODS / DWD / DWS),并通过 SQL 建表灌入演示数据。
3. 在治理标签体系中创建一套业务标签、敏感标签 ,并打到表与字段上。
4. 创建一个 数据质量任务 :对核心表的
uid 字段配置空值率规则,试运行、发布、关联告警。5. 配置 列级脱敏(基于敏感标签) 与 行级权限 ,让同一张表对不同角色返回不同视图。
6. 通过 数据发现 验证资产可被搜索,通过 数据血缘 查看上下游影响范围。
完成本教程后,您将掌握数据治理岗位在日常治理工作中的全套核心操作。
前提条件
在开始本教程前,请确保满足以下条件:
已开通 DataBuddy 服务并完成空间初始化。
当前账号在目标工作空间中拥有 数据治理管理员 或更高角色,并具备
create catalog 权限(如无该权限,请联系工作空间管理员或元数据湖 admin 授予)。工作空间已绑定 数据分析型 Serverless 资源组 (用于 SQL 建表与质量任务执行,详见 计算资源概述 )。
至少存在一个 用户账号 (例如
analyst_alice、ops_bob)用于验证脱敏与行级权限效果。已在 数据工程 或 数据分析 中熟悉 SQL 编辑器的基础操作。
提示
本教程假设工作空间已默认存在数据湖仓的底座(如内部使用的
DataLakeCatalog)。本教程的目标是 新建一个面向电商业务域的治理用 Catalog ,与默认 Catalog 解耦,便于演示治理流程。教程数据模型
教程中所有 SQL 都基于一张订单事实表
orders_raw:字段 | 类型 | 说明 | 敏感性 |
order_id | BIGINT | 订单号 | 业务关键字段 |
customer_id | BIGINT | 客户 ID | - |
phone | STRING | 客户手机号 | 敏感(PII) |
product_name | STRING | 商品名 | - |
quantity | INT | 数量 | - |
unit_price | DECIMAL(10,2) | 单价 | - |
region | STRING | 销售大区:North / South / East / West | 行级权限维度 |
order_status | STRING | 订单状态:paid / shipped / completed / cancelled | - |
order_time | TIMESTAMP | 下单时间 | - |
uid | STRING | 业务主键(关联用户中心) | 质量规则监控字段 |
提示
为避免多人同时跑教程时命名冲突,请把
<your_name> 替换成您自己的姓名前缀,例如 alice_ecommerce、alice_ods_raw 等。步骤 1:创建电商业务域 Catalog
Catalog 是 DataBuddy 数据治理体系的最顶层命名空间。三种 Catalog 类型的边界是硬约束 :
类型 | 容纳的对象 |
Catalog | 表(Table)、视图(View)、函数(Function) |
Volume | 卷(Volume)—— 图片、PDF、CSV 等非结构化文件 |
Model | 模型(Model)—— ML 模型注册与版本管理 |
类型在创建后不可变更 ,电商订单数据是结构化资产,因此创建 Table 类 Catalog 。
1. 登录 DataBuddy 控制台,在顶部切换到目标地域与工作空间。
2. 在左侧导航选择数据目录 。
3. 在左侧目录树顶部单击创建数据目录
目录名称 :
<your_name>_ecommerce(例如 alice_ecommerce)。目录类型 :结构化数据目录 。
描述 :
电商订单业务域的结构化数据治理目录。1. 单击 确认 。
创建成功后您会自动进入 Catalog 详情页,并看到系统自动生成的1个 Schema:
default(通用 Schema)。您本人作为创建者自动成为 Catalog 的 Owner ,拥有该 Catalog 下的全部管理权限。注意
提示
如同时需要管理非结构化资产(如商品图片)或 ML 模型,请按同样流程额外创建 文件卷目录 (如
<your_name>_ecommerce_files)与 模型文件目录 (如 <your_name>_ml_models)。三类 Catalog 的对象边界详见非结构化数据 Catalog 与 模型 Catalog 。步骤 2:创建分层 Schema 并建表灌数
按数据仓库分层规范创建 3 个 Schema:ODS(原始接入层)/ DWD(明细层)/ DWS(汇总层) 。
2.1 创建 Schema
在 Catalog 详情页右上角单击 创建 Schema ,依次创建:
Schema 名称 | 描述 |
ods_raw | 上游业务系统原始入湖数据 |
dwd_detail | 清洗加工后的事实明细表 |
dws_summary | 按维度聚合的指标汇总表 |
每次填入名称与描述后单击确定 即可。
2.2 在 SQL 分析中建表并灌入数据
1. 在左侧导航选择 SQL 分析 > 新建 SQL ,文件名
governance_setup.sql。2. 在编辑器右上角选择 数据分析型 Serverless 资源组 。
3. 把下面的 SQL 整段粘贴后,逐条选中 并按
⌘ + Enter(Windows 用户 Ctrl + Enter)执行(务必把 your_name 替换为您自己的姓名前缀):-- 1. ODS 层订单原始表CREATE TABLE IF NOT EXISTS your_name_ecommerce.ods_raw.orders_raw (order_id BIGINT COMMENT '订单号',customer_id BIGINT COMMENT '客户 ID',phone STRING COMMENT '客户手机号(敏感字段)',product_name STRING COMMENT '商品名',quantity INT COMMENT '数量',unit_price DECIMAL(10,2) COMMENT '单价',region STRING COMMENT '销售大区',order_status STRING COMMENT '订单状态',order_time TIMESTAMP COMMENT '下单时间',uid STRING COMMENT '业务主键(关联用户中心)') COMMENT '电商订单原始入湖表';
-- 2. 灌入演示数据(特意留 1 行 uid 为 NULL,用于触发后续质量规则)INSERT INTO your_name_ecommerce.ods_raw.orders_raw VALUES(1001, 501, '13800138000', 'Wireless Mouse', 2, 79.00, 'North', 'completed', TIMESTAMP '2025-01-15 10:30:00', 'u_001'),(1002, 502, '13900139000', 'Mechanical Keyboard', 1, 399.00, 'South', 'completed', TIMESTAMP '2025-01-15 11:15:00', 'u_002'),(1003, 503, '13700137000', 'USB-C Hub', 3, 128.00, 'East', 'paid', TIMESTAMP '2025-01-15 14:20:00', 'u_003'),(1004, 501, '13800138000', 'Monitor Stand', 1, 259.00, 'North', 'completed', TIMESTAMP '2025-01-16 09:00:00', 'u_001'),(1005, 504, '13600136000', 'Wireless Mouse', 1, 79.00, 'West', 'shipped', TIMESTAMP '2025-01-16 16:45:00', NULL);
-- 3. DWD 层明细表(演示用,仅做一层简单清洗)CREATE TABLE IF NOT EXISTS your_name_ecommerce.dwd_detail.orders_detail ASSELECTorder_id,customer_id,phone,product_name,quantity,unit_price,quantity * unit_price AS total_amount,region,order_status,order_time,uidFROM your_name_ecommerce.ods_raw.orders_rawWHERE order_status != 'cancelled';
-- 4. DWS 层汇总表(按地区聚合)CREATE TABLE IF NOT EXISTS your_name_ecommerce.dws_summary.daily_revenue ASSELECTregion,DATE(order_time) AS order_date,SUM(quantity * unit_price) AS total_revenue,COUNT(DISTINCT customer_id) AS unique_customersFROM your_name_ecommerce.ods_raw.orders_rawWHERE order_status != 'cancelled'GROUP BY region, DATE(order_time);
2.3 在数据目录中验证表已注册
1. 回到 ** 数据目录** ,单击
<your_name>_ecommerce。2. 切换到
ods_raw Schema,应能看到 orders_raw 表。单击进入表详情页,概览 Tab 中可看到 10 个字段的元数据(名称、类型、描述)。3. 按同样方式确认
dwd_detail.orders_detail 与 dws_summary.daily_revenue 已注册。提示
SQL 建表后表会自动出现在 Catalog 中。如未看到,请刷新页面;如仍不可见,请检查 SQL 中的三段名是否正确且当前账号是否具备 Schema 的
CREATE TABLE 权限。详见 结构化数据 Catalog。步骤 3:建立治理标签体系并为资产打标
治理标签是后续 资产发现、敏感保护、合规审计 的元数据底座。本步骤创建两类标签:
业务标签 :用于在数据发现中按业务维度筛选资产(如
domain=ecommerce、tier=gold)。敏感标签 :标识 PII 字段(如客户手机号),并在后续 步骤 5 中关联脱敏策略实现「打标即脱敏」。
3.1 创建业务标签
1. 在 数据目录 页左上角单击 标签管理 (治理标签入口位于此处)。
2. 单击 新建标签 :
标签 Key :
domain。标签类型 :业务标签 。
标签值 :添加候选值
ecommerce、finance、logistics。描述 :
数据资产所属业务域。1. 单击 确定 。
按同样方法创建第二个业务标签:
标签 Key :
tier,标签值 :gold / silver / bronze,描述 :资产分层(黄金/白银/青铜)。3.2 复用系统内置敏感标签
DataBuddy 已内置 36 个系统级敏感标签(如
class.cn_id_card、class.financial_account 等),开箱即用、不可重命名、不可删除。教程中我们直接复用内置的 手机号类敏感标签 ,无需新建。在标签治理列表中筛选 标签来源 = 系统 、标签类型 = 敏感标签 ,找到对应于「手机号、中国大陆手机号」语义的内置敏感标签(标签 Key 形如
class.cn_mobile_phone,具体命名以平台为准),记下其 Key,供后续步骤使用。提示
3.3 为表打业务标签
1. 在 数据目录 中进入
<your_name>_ecommerce.dwd_detail.orders_detail 表详情页。2. 在右侧 业务信息 区域,单击添加标签。
3. 在弹窗中:
选择标签 Key
domain,标签值 ecommerce。单击 添加 继续追加:标签 Key
tier,标签值 gold。1. 单击 确定 。
回到 概览 Tab,可看到表头部已展示两个标签。
3.4 为字段打敏感标签
1. 在
orders_detail 表详情页 概览 Tab 的字段列表中,找到 phone 字段。2. 单击
phone 字段行末的 添加标签3. 在弹窗中选择敏感标签 Key
class.cn_mobile_phone,单击 确定 。按同样方式可为
ods_raw.orders_raw 中的 phone 字段也打上同一个敏感标签。提示
步骤 4:创建数据质量任务
数据质量监控的目标:在
orders_detail 表的 uid 字段上配置「uid 有效期校验」规则,定期检查并在异常时触发告警。4.1 进入质量任务创建页
1. 在 数据目录 中进入
dwd_detail.orders_detail 表详情页。2. 切换到 质量 Tab。
3. 单击** 前往创建** 。
入口与流程:从表详情页进入会自动锁定监控对象为当前表,无需再选;如从左侧导航 数据质量 入口进入,则需要在「选择对象」步骤中手动选定
<your_name>_ecommerce.dwd_detail.orders_detail。注意
如果按钮置灰,提示「仅表 Owner 和有表 Manager 权限的人有权限创建」,需先在表的 权限 Tab 中确认或申请相应权限。详见 创建质量规则 。
4.2 在规则配置框内编写规则
进入「对象 & 规则」面板后,可直接使用** AI 生成规则,** 或者在右侧 展开规则模板直接复用(表级模板、字段级模板)。
field_rules:- field_name: uidrule_name: uid有效期校验rule_type: custom_sqldimension: validitycustom_sql: SELECT COUNT(*) as check_value FROM ecommerce.dwd_detail.orders_detail WHERE uid IS NOT NULLtrigger_condition: check_value > 0alert:enable: true
规则含义:
field_rule:字段级规则field_name:作用在 uid 字段上。rule_type:模板类型:自定义 SQL。dimension:维度。trigger_condition: check value > 0:检测值大于0 即视为异常。alert enable:规则是否开启告警。 true:表示开启;false:表示不开启。提示
模板字段说明、自定义 SQL 写法、
filter(分区过滤)等高级用法详见 创建质量规则。点击编辑器右侧模板列表上方的 样例文档 也可查看完整字段说明。4.3 填写基本配置
在 YAML 右侧 基本配置 区域:
任务名称 :
orders_detail_uid_quality。负责人 :默认为当前账号。
任务描述 :
监控订单明细表 uid 字段空值个数,超过 1 触发告警。4.4 添加告警配置
选择需要告警的规则和告警渠道。未选择则表示不开启告警。
4.5 保存并发布
1. 在底部单击 保存并发布 。
2. 在发布弹窗中:
调度方式 :选择 独立工作流 (教程演示用,会在 工作流 中自动生成一个仅含本质量任务的工作流并按天调度)。
调度时间 :每天
08:00。告警渠道 :选择您的工作空间已配置的渠道(如企业微信群机器人、邮箱),并在 接收人 中加入您自己。
1. 单击 确定 完成发布。
发布完成后,您可以在以下两处看到任务运行情况:
数据治理 > 数据质量 > 任务列表 :任务及其历史实例的统一视图,详见 质量任务运维 。
表详情页 质量 Tab:当前表关联的所有质量任务与最近一次的检测状态。
提示
若希望让 ETL 工作流在
orders_detail 的下游加一道质量校验闸门,可在工作流中添加 质量监控任务节点 ,使用动态参数能力配置。4.6 试运行验证规则
1. 在质量任务列表单击 试运行 。
2. 等待 10–30 秒,单击 查看运行结果 。
3. 预期结果(教程数据中 5 行有 1 行 uid 为 NULL):
字段 | 预期值 |
执行状态 | 成功 |
检测状态 | 异常 |
检测值 | 1 |
阈值 | value <= 0 |
提示
试运行只对当前数据评估规则,不会产生告警,也不会阻塞任何下游任务 。这是发布前最重要的验证手段。
步骤 5:配置列级脱敏与行级权限
至此
phone 字段已经被打上敏感标签,本步骤把标签关联到具体的脱敏策略,让查询时按用户组返回不同视图;同时为 region 字段配置行级过滤。5.1 创建列级脱敏策略
1. 在左侧导航选择 数据治理 > 数据安全 。
2. 切换到 脱敏策略 列表,单击 新建策略 :
策略名称 :
policy_mobile_phone_mask。关联敏感标签 :勾选
class.cn_mobile_phone(关联后所有打了该标签的字段会自动继承 本策略,无需逐字段绑定)。脱敏方法 :
用户组
data_admins → 无需配置脱敏策略(管理员看全量)。用户组
customer_service → 脱敏方法 保留前4或后4个字符 (客服看 1387********或*******8012)。用户组
analysts → 脱敏方法 哈希(分析师看到的值为哈希值)。1. 单击 确定 。
提示
脱敏策略与敏感标签的关联是「多对多 」:一个策略可关联多个标签,让多个语义相近的字段统一处理;一个字段同一时间只生效一个策略。
5.2 配置行级权限
为
orders_detail 表添加行级过滤器,让不同地区的运营人员只能看到自己所在地区的订单。1. 回到
dwd_detail.orders_detail 表详情页。2. 切换到 权限 Tab,找到 行级权限 区域,单击 添加行过滤器 。
3. 在弹窗中:
授权主体类型 :用户组。
授权对象 :
ops_north(华北区运营组)。行过滤表达式 :
region = 'North'。1. 单击 确定 。
2. 重复以上步骤为其他地区运营组添加规则,例如:
ops_south → region = 'South'。ops_east_west → region IN ('East', 'West')。未在行过滤器中出现的用户组,允许访问全部数据(详见 行级权限控制 )。
5.3 验证策略效果
切换到具备不同用户组的测试账号(例如
analyst_alice 属于 analysts、ops_bob 属于 ops_north),在 SQL 分析中查询:SELECT order_id, phone, region, total_amountFROM your_name_ecommerce.dwd_detail.orders_detailLIMIT 10;
预期结果:
测试账号 | phone 字段返回 | 行可见范围 |
数据治理管理员 | 明文(如 13800138000) | 全部行 |
analyst_alice(属于 analysts) | *** | 全部行 |
ops_bob(属于 ops_north) | 按 analysts 策略未匹配则返回明文(按实际所属用户组而定) | 仅 region = 'North' 的行 |
注意
ops_bob 的 phone 字段返回值取决于其在脱敏策略中的用户组归属。如希望客服组也对手机号脱敏,请回到 5.1 在策略中显式追加该用户组。提示
脱敏与行过滤在 SQL 查询、Notebook、仪表盘 所有读取链路上一致生效,无需调用方在业务代码中重复实现。
步骤 6:通过数据发现与数据血缘验证治理成果
完成以上工作后,您建立的元数据应当是可被搜索、可被追溯 的。
6.1 数据发现:按业务标签找到资产
1. 在 DataBuddy 控制台 顶部全局搜索框输入
订单 收入 或 orders_detail,按回车进入全屏数据发现页。2. 在左侧资产类型筛选中切换到 表 。
3. 在顶部筛选条中叠加 治理标签
domain:ecommerce、tier:gold,结果列表应只剩您本次创建的资产。4. 单击结果卡片
orders_detail 跳转到表详情页。6.2 数据血缘:从 DWS 反查 ODS
DWS 表
daily_revenue 是从 orders_raw 经过 orders_detail 加工而来,血缘可以直观追溯整条链路。1. 在
dws_summary.daily_revenue 表详情页切换到 血缘 Tab。2. 默认进入 列表模式 ,您应能看到上游
orders_raw、orders_detail 与产出本表的 SQL 任务记录。3. 单击右上角图标切换到 图模式 ,可看到拓扑图:
4. 单击任意节点查看详细信息:表节点显示业务信息(描述、标签、责任人)与技术信息(数据源、存储路径、最近 DDL 变更时间);任务节点显示任务代码与所属工作流(可跳转)。
提示
步骤 7:清理资源(可选)
如不再需要本教程产出的内容,建议按以下顺序清理,避免占用配额:
1. 删除质量任务 :在 数据治理 > 数据质量 > 任务列表 中对
orders_detail_uid_quality 单击 删除2. 删除行级权限与脱敏策略 :在
orders_detail 表详情页 权限 Tab 中删除行过滤器;在 数据安全 > 脱敏策略 中取消关联 policy_mobile_phone_mask。3. 移除治理标签 :在
orders_detail / orders_raw / daily_revenue 上移除业务标签与敏感标签(系统内置标签本身不可删除,仅解绑)。4. 删除表与 Schema :在 SQL 分析中执行:
DROP TABLE IF EXISTS your_name_ecommerce.dws_summary.daily_revenue;DROP TABLE IF EXISTS your_name_ecommerce.dwd_detail.orders_detail;DROP TABLE IF EXISTS your_name_ecommerce.ods_raw.orders_raw;
然后在数据目录中分别删除三个 Schema。
1. 删除 Catalog :在
<your_name>_ecommerce Catalog 详情页右上角 ⋯ > 删除数据目录 。警告
删除 Schema 与 Catalog 会同时删除其下所有表与对象,不可恢复。请在删除前确认无业务依赖。
验证结果
完成全部步骤后,您应当能确认:
1. Catalog 与 Schema :
<your_name>_ecommerce(Table 类)在数据目录中可见,包含 ods_raw / dwd_detail / dws_summary 三个 Schema,加上系统的 information_schema 与 default。2. 资产元数据 :
orders_raw / orders_detail / daily_revenue 三张表均已在 Catalog 中注册,字段元数据与 SQL 一致。3. 治理标签 :业务标签
domain 与 tier 已创建,敏感标签 class.cn_mobile_phone 已被引用;orders_detail 表已打上业务标签,phone 字段已打上敏感标签。4. 数据质量 :
orders_detail_uid_quality 任务处于已发布状态,试运行结果显示检测状态为 异常 (空值率 20%,超出 1% 阈值),任务已挂入工作流按天调度。5. 数据安全 :
policy_mobile_phone_mask 脱敏策略已创建并关联 class.cn_mobile_phone;orders_detail 表至少有 1 条行过滤规则。6. 数据发现、血缘 :通过
domain:ecommerce 标签筛选能找到本教程产出的全部资产;daily_revenue 的血缘图可向上追溯到 orders_raw。总结
在本教程中,您完成了:
在 数据治理 > 数据目录 中创建电商业务域 Catalog,理解 Table / Volume / Model 三类 Catalog 的硬约束。
按 ODS / DWD / DWS 分层规范创建 Schema,并通过 SQL 建表灌入演示数据,所有资产自动注册到 Catalog。
在 标签治理 中创建业务标签体系,并复用系统内置敏感标签,把分类分级的语义元数据沉淀到表与字段上。
在 数据质量 中通过 YAML 创建空值率监控规则、试运行验证、发布上线并接入告警通道。
在 数据安全 中创建脱敏策略并关联敏感标签,实现「打标即脱敏」;在表详情页配置行级过滤实现地区维度数据隔离。
通过 数据发现 按业务标签找到资产,通过 数据血缘 反查上下游影响范围,闭环验证治理成果。
本条端到端链路覆盖了数据治理岗位日常 80% 以上的高频操作。后续可继续探索:异常检测(零配置基线)、数据剖析(字段分布与漂移)、语义模型与指标治理、敏感识别 AI Skill 自动打标等进阶能力。