注意:说明:
注意:预计用时 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)。
·目录类型 :结构化数据目录 。
·描述 :电商订单业务域的结构化数据治理目录。
4. 单击 确认 。
创建成功后你会自动进入 Catalog 详情页,并看到系统自动生成的1个 Schema: default(通用 Schema)。你本人作为创建者自动成为 Catalog 的 Owner ,拥有该 Catalog 下的全部管理权限。
注意:+ 创建数据目录 按钮置灰且 hover 提示「你暂无权限」时,需联系工作空间管理员或元数据湖 admin 为你授予 create catalog 权限。详见 结构化数据 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 ASSELECT order_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 ASSELECT region, 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。
·描述 :数据资产所属业务域。
3. 单击 确定 。
按同样方法创建第二个业务标签:
·标签 Key :tier,标签值 :gold / silver / bronze,描述 :资产分层(黄金/白银/青铜)。
十一、3.2 复用系统内置敏感标签
DataBuddy 已内置 36 个系统级敏感标签(如 class.cn_id_card、class.financial_account 等),开箱即用、不可重命名、不可删除。
教程中我们直接复用内置的 手机号类敏感标签 ,无需新建。在标签治理列表中筛选 标签来源 = 系统 、标签类型 = 敏感标签 ,找到对应于「手机号、中国大陆手机号」语义的内置敏感标签(标签 Key 形如 class.cn_mobile_phone,具体命名以平台为准),记下其 Key,供后续步骤使用。
注意:说明:
注意:教程中将该敏感标签的 Key 统一记为 class.cn_mobile_phone。如你环境中的内置 Key 不同,请按实际名称替换后续步骤中的标签引用。详见 创建与管理标签体系 。
十二、3.3 为表打业务标签
1. 在 数据目录 中进入 <your_name>_ecommerce.dwd_detail.orders_detail 表详情页。
2. 在右侧 业务信息 区域,单击** 添加标签**
3. 在弹窗中:
·选择标签 Key domain,标签值 ecommerce。
·单击 添加 继续追加:标签 Key tier,标签值 gold。
4. 单击 确定 。
回到 概览 Tab,可看到表头部已展示两个标签。
十三、3.4 为字段打敏感标签
1. 在 orders_detail 表详情页 概览 Tab 的字段列表中,找到 phone 字段。
2. 单击 phone 字段行末的 添加标签
3. 在弹窗中选择敏感标签 Key class.cn_mobile_phone,单击 确定 。
按同样方式可为 ods_raw.orders_raw 中的 phone 字段也打上同一个敏感标签。
注意:说明:
注意:打标动作只是给字段贴上一个语义标识,真正生效的脱敏行为 要在 **** 步骤 5 中通过把敏感标签关联到脱敏策略来实现。打标与策略分离的设计让治理团队可以先把分类做好,再逐步迭代策略。详见 为数据资产打标签 。
十四、步骤 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: uid rule_name: uid有效期校验 rule_type: custom_sql dimension: validity custom_sql: SELECT COUNT(*) as check_value FROM ecommerce.dwd_detail.orders_detail WHERE uid IS NOT NULL trigger_condition: check_value > 0 alert: 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。
·告警渠道 :选择你的工作空间已配置的渠道(如企业微信群机器人、邮箱),并在 接收人 中加入你自己。
3. 单击 确定 完成发布。
发布完成后,你可以在以下两处看到任务运行情况:
·数据治理 > 数据质量 > 任务列表 :任务及其历史实例的统一视图 。
·表详情页 质量 Tab:当前表关联的所有质量任务与最近一次的检测状态。
注意:说明:
注意:若希望让 ETL 工作流在 orders_detail 的下游加一道质量校验闸门,可在工作流中添加 质量监控任务节点 ,使用动态参数能力配置。
20、4.6 试运行验证规则
1. 在质量任务列表单击 试运行 。
2. 等待 10–30 秒,单击 查看运行结果 。
3. 预期结果(教程数据中 5 行有 1 行 uid 为 NULL):
| 字段 | 预期值 |
| 执行状态 | 成功 |
| 检测状态 | 异常 |
| 检测值 | 1 |
| 阈值 | value <= 0 |
注意:说明:
注意:试运行只对当前数据评估规则,不会产生告警,也不会阻塞任何下游任务 。这是发布前最重要的验证手段。
21、步骤 5:配置列级脱敏与行级权限
至此 phone 字段已经被打上敏感标签,本步骤把标签关联到具体的脱敏策略,让查询时按用户组返回不同视图;同时为 region 字段配置行级过滤。
22、5.1 创建列级脱敏策略
1. 在左侧导航选择 数据治理 > 数据安全 。
2. 切换到 脱敏策略 列表,单击 新建策略 :
·策略名称 :policy_mobile_phone_mask。
·关联敏感标签 :勾选 class.cn_mobile_phone(关联后所有打了该标签的字段会自动继承 本策略,无需逐字段绑定)。
·脱敏方法 :
·用户组 data_admins → 无需配置脱敏策略(管理员看全量)。
·用户组 customer_service → 脱敏方法 保留前4或后4个字符 (客服看 1387********或*******8012)。
·用户组 analysts → 脱敏方法 哈希(分析师看到的值为哈希值)。
3. 单击 确定 。
注意:说明:
注意:脱敏策略与敏感标签的关联是「多对多 」:一个策略可关联多个标签,让多个语义相近的字段统一处理;一个字段同一时间只生效一个策略。
23、5.2 配置行级权限
为 orders_detail 表添加行级过滤器,让不同地区的运营人员只能看到自己所在地区的订单。
1. 回到 dwd_detail.orders_detail 表详情页。
2. 切换到 权限 Tab,找到 行级权限 区域,单击 添加行过滤器 。
3. 在弹窗中:
·授权主体类型 :用户组。
·授权对象 :ops_north(华北区运营组)。
·行过滤表达式 :region = 'North'。
4. 单击 确定 。
5. 重复以上步骤为其他地区运营组添加规则,例如:
·ops_south → region = 'South'。
·ops_east_west → region IN ('East', 'West')。
未在行过滤器中出现的用户组,允许访问全部数据(详见 行级权限控制 )。
24、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、仪表盘 所有读取链路上一致生效,无需调用方在业务代码中重复实现。
25、步骤 6:通过数据发现与数据血缘验证治理成果
完成以上工作后,你建立的元数据应当是可被搜索、可被追溯 的。
26、6.1 数据发现:按业务标签找到资产
1. 在 DataBuddy 控制台 顶部全局搜索框输入 订单 收入 或 orders_detail,按回车进入全屏数据发现页。
2. 在左侧资产类型筛选中切换到 表 。
3. 在顶部筛选条中叠加 治理标签 domain:ecommerce、tier:gold,结果列表应只剩你本次创建的资产。
4. 单击结果卡片 orders_detail 跳转到表详情页。
注意:说明:
注意:数据发现 AI 语义检索、关键字检索并行,治理标签可作为筛选维度精准收敛。详见 全局数据搜索 与 按标签、分类筛选 。
27、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 变更时间);任务节点显示任务代码与所属工作流(可跳转)。
注意:说明:
注意:血缘随任务运行(含试运行)自动上报,无需手动维护;任务或文件删除时血缘自动清理。当前支持表级血缘,字段级血缘在后续迭代中。详见 数据血缘 。
28、步骤 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。
5. 删除 Catalog :在 <your_name>_ecommerce Catalog 详情页右上角 ⋯ > 删除数据目录 。
注意:警告:
注意:删除 Schema 与 Catalog 会同时删除其下所有表与对象,不可恢复。请在删除前确认无业务依赖。
29、验证结果
完成全部步骤后,你应当能确认:
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。
30、总结
在本教程中,你完成了:
·在 数据治理 > 数据目录 中创建电商业务域 Catalog,理解 Table / Volume / Model 三类 Catalog 的硬约束。
·按 ODS / DWD / DWS 分层规范创建 Schema,并通过 SQL 建表灌入演示数据,所有资产自动注册到 Catalog。
·在 标签治理 中创建业务标签体系,并复用系统内置敏感标签,把分类分级的语义元数据沉淀到表与字段上。
·在 数据质量 中通过 YAML 创建空值率监控规则、试运行验证、发布上线并接入告警通道。
·在 数据安全 中创建脱敏策略并关联敏感标签,实现「打标即脱敏」;在表详情页配置行级过滤实现地区维度数据隔离。
·通过 数据发现 按业务标签找到资产,通过 数据血缘 反查上下游影响范围,闭环验证治理成果。
本条端到端链路覆盖了数据治理岗位日常 80% 以上的高频操作。后续可继续探索:异常检测(零配置基线)、数据剖析(字段分布与漂移)、语义模型与指标治理、敏感识别 AI Skill 自动打标等进阶能力。