语义层在数据治理中的作用

发布: (2026年2月26日 GMT+8 00:55)
9 分钟阅读
原文: Dev.to

Source: Dev.to

通过语义层进行数据治理 — 集中式策略和文档

大多数组织都有数据治理政策。它存放在 Confluence 页面上。它定义了谁拥有哪些数据、术语的含义以及谁应该拥有访问权限。而几乎没有人遵循它,因为它没有在实际运行查询的地方得到强制执行。

语义层改变了这一点。它将治理从文档迁移到查询路径,在那里每条规则都会自动应用于每个用户、通过每个工具。

纸面治理 vs. 实际治理

当数据治理依赖于人们手动做好正确的事情时,就会失败。

  • 政策规定:“收入指已完成订单减去退款”。
  • 分析师写了一个略有不同的公式。
  • 仪表板使用了错误的表。
  • AI 代理自行创造了定义。

治理政策虽然存在,但没有人遵循,组织基于不一致的数据做出决策。

根本原因不是粗心大意;而是治理与人们实际用来查询数据的系统分离。执行发生在旁路——文档、审查流程、审计日志——而不是在查询本身。

集中式定义消除冲突指标

语义层通过将治理策略转化为 代码 来解决定义问题。

CREATE VIEW business.revenue AS
SELECT
    OrderDate,
    Region,
    SUM(OrderTotal) AS Revenue
FROM silver.orders_enriched
WHERE Status = 'completed' AND Refunded = FALSE
GROUP BY OrderDate, Region;

每个需要 Revenue 的仪表板、笔记本和 AI 代理都会查询此视图。没有其他公式可供使用。语义层 就是 该指标的治理。

当定义发生变化(例如,新增退款类别)时,只需更新一次视图,所有使用者会自动获得新逻辑——无需部署、迁移,也不必“每个人是否都更新了仪表板?”的检查。

查询时强制执行的访问策略

All query paths routing through a single governance enforcement gate

第二个治理缺口是 访问控制。大多数组织在 BI 工具层面(Tableau、Power BI 等)实施安全。如果有人打开 SQL 客户端直接查询底层表,这些过滤器就不会生效。

语义层在更低的层级强制执行策略,从而适用于 每一个 查询路径:

查询路径BI 级别安全语义层安全
仪表板已强制已强制
SQL 笔记本未强制已强制
AI 代理未强制已强制
API / 编程访问未强制已强制

Dremio 通过 细粒度访问控制 (Fine‑Grained Access Control, FGAC) 实现这一点:策略被定义为 UDF,用于根据查询用户的角色过滤行和掩码列。这些策略在虚拟数据集(视图)层面应用。

示例:区域经理查询 business.revenue 时只能看到其所在地区的数据;而数据工程师可以看到所有地区。相同的视图、相同的 SQL,结果却因身份不同而不同。

这消除了用户绕过 BI 工具时出现的“安全缺口”。所有通往数据的路径都必须经过语义层,并继承相同的策略。

通过视图实现血缘和问责

层次化视图架构(Bronze → Silver → Gold)本质上是可追溯的。每个 Gold 指标都可以追溯到其 Silver 业务逻辑,Silver 再追溯到 Bronze 源映射,最终追溯到原始数据。

当审计员问:“你的收入数字来自哪里?”时,你不需要在仪表盘和笔记本中四处查找——只需沿着视图链条追踪:

gold.monthly_revenue_by_region
    → references silver.orders_enriched
silver.orders_enriched
    → joins bronze.orders_raw with bronze.customers_raw
bronze.orders_raw
    → maps to production.public.orders in PostgreSQL

每一步都有文档记录,每一次转换都是可见的。血缘关系不是事后重建的——它已经内嵌在结构之中。

文档作为治理工具

数据治理标签和标记应用于表格以实现合规

治理同样涉及可发现性。是否有人能够在不联系五个人的情况下找到合适的数据集?他们能否判断一个视图是已准备好投入生产还是仍在实验阶段?

语义层中有两种机制来处理此问题:

  1. 维基 – 为表、列和视图附加人类可读(以及 AI 可读)的描述。
  2. 标签 / 标记 – 对资产进行分类(例如 PIIfinancialexperimental),以便用户和自动化工具能够过滤或强制执行额外的策略。

这两者共同使数据目录成为治理的活跃组成部分,而非静态文档。

解释数据代表的含义、来源以及任何注意事项

列名为 cltv 时会得到如下描述:

Customer Lifetime Value,计算方式为从首次购买到当前日期的总收入,扣除退款。

标签

标签用于对治理工作流中的数据进行分类。

  • PII – 自动触发列掩码。
  • Certified – 表示该视图已通过审查并获准用于生产环境。
  • Deprecated – 警示使用者迁移到替代方案。

对于拥有成千上万数据集的组织来说,手动编写文档几乎不可能。Dremio 的生成式 AI 通过抽样表数据自动生成 Wiki 描述,并根据列内容建议标签。这能够 自动实现约 70 % 的覆盖率;随后数据团队补充 AI 未覆盖的部分。

认证与变更管理

并非所有视图都相同。语义层应区分实验性、审查中和已准备好投入生产的视图。

实用的认证工作流

阶段描述标签
草稿由分析师创建的新视图。尚未审查。Draft
已审查视图已由数据团队审查。业务逻辑已验证。文档已完成。Reviewed
已认证视图已获批准用于生产。可在生产仪表板以及 AI 代理中使用。Certified
  • 每个 已认证 视图应有文档化的 所有者——负责其准确性和时效性的人。
  • 当业务需求变化时,所有者应同时更新视图 以及 其文档。
  • 在重新应用 已认证 标签之前,需对更改进行审查。

此工作流不需要高级工具。标签、维基以及团队对流程的共识即可。关键是治理要在 语义层内部 可见,而不是在单独系统中追踪。

接下来该怎么做

  1. 审计你的前 10 个业务指标。
  2. 对每个指标,提出三个问题:
    • 公式是否在唯一位置定义?
    • 是否在查询层强制访问控制(而不仅仅是 BI 工具)?
    • 能否在 60 秒内追溯到其原始来源?

每个 “否” 都揭示了语义层可以弥补的治理缺口。


免费试用 Dremio Cloud 30 天

0 浏览
Back to Blog

相关文章

阅读更多 »