数据质量和数据指标函数简介

数据质量使用数据指标函数 (DMFs) 监控数据的状态和完整性,其中包括 Snowflake 提供的系统 DMFs 和用户定义的 DMFs。您可以使用 DMFs 来衡量关键指标,如(但不限于)新鲜度以及衡量重复、NULLs、行和唯一值的计数。

关于数据质量和 DMFs

数据质量的重点是了解数据的状态和完整性,其中包括与列中的空值或空白字段进行对比的真实数据值的新鲜度和准确性,从而做出数据驱动的决策。您可以使用 DMFs 来衡量数据的质量。Snowflake 在 SNOWFLAKE.CORE 架构中提供内置系统 DMFs,无需定义即可测量常用指标。您还可以定义自己的自定义 DMFs,以便更精确地对数据质量测量进行微调,这些 DMFs 会存储在您选择的数据库和架构中。

无论您是使用系统 DMFs、自定义 DMFs 抑或两者兼用,在将 DMF 分配给表或视图后,Snowflake 都会将调用 DMF 的结果记录在 数据指标函数的专用事件表中。您可以指定 DMF 的调用频率。例如,您可以计划每天在特定表运行 DMFs 三次。您可以根据自己的内部数据质量要求按需修改频率。对表设置的所有 DMFs 都遵循相同的时间表。

在计划好 DMFs 的运行后,您可以配置警报,以便在数据质量发生变化时通知您。通过结合 DMF 和警报功能,您可以在所衡量的表格上获得一致的数据质量阈值通知。这些洞察力可通过以下方式增强数据治理态势:

  • 数据管理员可根据特定指标了解其数据的当前状态。

  • 数据工程师对重要表和视图立即采取行动。

  • 平台管理员确保数据质量监控的成本、一致性和性能。

然后,定义、测量和监控数据的数据质量工作流程可应用于其他工作负载。

支持的表类型

您可在以下类型的表对象上设置 DMF:

  • 动态表

  • 事件表

  • 外部表

  • Apache Iceberg™ 表

  • 物化视图

  • 表 (CREATE TABLE),包括临时表和瞬态表

  • 视图

您不能在混合表或 Stream 对象上设置 DMF。

计费和定价

Snowflake 创建并管理虚拟仓库对象,以支持该功能。在正常的 SQL 查询工作流程之外,您无需预置或使用任何额外的虚拟仓库资源,即可使用该功能。

调用 DMF 会使用无服务器计算资源,详情请参见 Snowflake 服务使用表。表中列出了每个 云区域Snowflake 版本 的 Credit 定价。

您使用的 Credit 列在每月账单的“数据质量监控”类别中。这些 Credit 包括您使用的所有系统或用户定义的数据质量指标所消耗的计算量。创建 DMF 不收取费用。

  • 只有在计算对象的计划 DMF 时,才会计费。使用计划外的数据指标函数无需付费,如使用 SELECT 语句调用 DMF。

  • 日志记录基础设施会将指标输出合并到事件表中。日志记录服务产生的消耗在您的月账单上显示为“日志记录”。

有关更多信息,请参阅 无服务器 Credit 使用量

小技巧

您可以查询 DATA_QUALITY_MONITORING_USAGE_HISTORY,跟踪您账户中与使用 DMFs 相关的 Credit 消耗情况。

优势

使用 DMFs 可以增强数据质量,并带来以下好处:

促进合规:

通过了解您的数据状况,可以更轻松地展示您如何遵守合规和监管标准。这样可以降低风险,增强数据治理能力。

满足服务水平协议 (SLAs):

准确的数据指标(如新鲜度)有助于满足数据提供者、数据使用者和客户之间的 SLAs。

可信度:

DMFs 提供数据验证,这有助于做出可信的数据驱动决策。

一致性:

使用系统 DMFs,并反复使用适当的自定义 DMFs,可实现长期一致的数据质量评估。这样可以提高数据的可信度。

针对特定用例进行优化:

自定义 DMFs 使数据工程师能够设计精确的指标来衡量数据,从而更准确地优化数据的目标应用程序。

自动测量:

将 DMF 分配给表或视图并指定 DMF 的运行计划后,就可以自动调用 DMF。无需额外工作即可主动测量数据质量。有关更多信息,请参阅 计划 DMF 运行查看数据指标函数的结果

绩效管理:

Snowflake 会评估您如何使用 DMFs,并优化查询评估,以提供最佳查询性能。

注意事项

  • 有关复制和 DMFs 的信息,请参阅 数据指标函数的复制 (DMFs)

  • 要在表上设置 DMF,必须向表所有者角色授予全局(账户级)EXECUTE DATA METRIC FUNCTION 权限。因此,表所有者角色应该是用户定义的自定义角色,可以使用 CREATE ROLE 命令或系统角色(如 SYSADMIN 角色)来创建。

    您无法向数据库角色授予全局权限,因为数据库角色的范围限定为其所在的数据库。如果您的表由数据库角色拥有,并且想要在该表上设置 DMF,您必须将该表的 OWNERSHIP 权限转移至自定义角色或系统角色。有关更多信息,请参阅 GRANT OWNERSHIP

限制

使用 DMFs 时请注意以下限制:

  • 对对象设置 DMFs:

    每个账户最多只能有 1 万个 DMFs 对象关联。对表或视图设置 DMF 的每个实例都算作一个关联。

  • 数据共享

    不能授予对 DMF 的共享权限,也不能对共享表或视图设置 DMF。

  • 不支持对对象标签设置 DMF。

  • 不能对 阅读者账户 中的对象设置 DMF。

  • 试用账户不支持该功能。

语言: 中文