Snowflake 数据质量管理

2025 年 7 月 29 日 | 11 分钟阅读

数据质量通过数据指标函数 (DMF) 跟踪数据的状况和完整性,这些函数包括用户定义的 DMF 和 Snowflake 提供的系统 DMF。关键指标,包括但不限于新鲜度以及测量重复项、NULL 值、行和唯一数据数量的计数,都可以通过 DMF 进行测量。

Snowflake Data Quality Management

关于 DMF 和数据质量

为了实现数据驱动的决策,数据质量侧重于理解数据的状况和完整性,包括数据新鲜度和对真实数据的准确性,与空值或列中的空白字段对比。DMF 可用于衡量数据质量。为了在不定义指标的情况下测量标准指标,Snowflake 在 SNOWFLAKE.CORE 模式中提供了内置系统 DMF。为了进一步准确地调整数据质量评估,您还可以定义自定义 DMF,这些 DMF 将保存在您选择的数据库和模式中。

在调度 DMF 运行后,您可以设置警报,以便在数据质量发生变化时通知您。通过将警报功能与 DMF 结合使用,您可以对所测量表的数据质量设置一致的阈值通知。这些洞察力通过实现以下功能来改善您在数据治理方面的状况

  • 数据管理员应使用特定指标了解其数据的当前状况。
  • 数据工程师应立即处理重要的表和视图。
  • 平台经理必须确保在监控数据质量时考虑成本、一致性和性能。
  • 然后可以使用已定义、测量和监控的数据质量工作流来处理其他工作负载。
Snowflake Data Quality Management

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

  • 动态表
  • 事件表
  • 外部表
  • Iceberg 表
  • 物化视图
  • 表(CREATE TABLE),包括临时表和临时表
  • 视图 (View)
  • 支持的表类型
  • 不能在流对象或混合表上设置 DMF。

定价和计费

为了支持此功能,Snowflake 构建并维护虚拟仓库对象。此功能可以与您的标准 SQL 查询工作流结合使用,而无需您预置或使用任何额外的虚拟仓库资源。调用 DMF 时使用无服务器计算资源;这些资源在 Snowflake 消耗表中进一步详细说明。表中显示了每个云区域和 Snowflake 版本的信用定价。

Snowflake Data Quality Management

在您的月度账单上,您使用的信用点数显示在“数据质量监控”类别下。这些信用点数包括您使用的任何系统或用户定义的数据质量度量所使用的计算。创建 DMF 不收取任何费用。只有当计划的 DMF 在对象上计算时才会发生计费。当您使用非计划的数据指标函数时,例如将 DMF 与 SELECT 语句一起使用,则不收取费用。指标输出由日志记录系统组合并存储在事件表中。日志记录服务的使用显示在您的月度账单上,名称为“日志记录”。

优点

使用 DMF 来改进数据质量工作具有以下优点

  • 促进遵守:当您了解数据的状况时,更容易展示您如何遵守合规性和监管标准。这改善了您的数据治理状况并降低了风险。
  • 牢记服务水平协议 (SLA):精确的数据测量(例如新鲜度)有助于满足数据提供商、用户和客户之间的 SLA。
  • 可信度:DMF 促进数据验证,从而实现可靠的数据驱动决策。
  • 连续性:通过定期使用系统 DMF 和适当定制的 DMF,可以随时间推移实现数据质量的一致评估。因此,您的数据变得更具可信度。
  • 针对特定应用程序进行优化:通过使用自定义 DMF,数据工程师可以创建精确的指标来测量数据,从而提高针对数据特定用途的优化准确性。
  • 自动测量:一旦您将 DMF 分配给表或视图并设置了 DMF 的运行计划,DMF 就会自动调用。主动测量数据质量不需要任何额外的努力。有关更多详细信息,请参阅安排 DMF 运行和查看 DMF 结果。
  • 性能管理:为了提供最佳查询性能,Snowflake 会评估您对 DMF 的使用并优化查询评估。
  • 注意事项:有关 DMF 和复制的详细信息,请参阅数据指标函数 (DMF) 的复制。

必须授予表所有者角色全局(账户级别)EXECUTE DATA METRIC FUNCTION 权限,才能在表上设置 DMF。因此,表所有者的角色应该是系统角色(例如 SYSADMIN 角色),或者是您使用 CREATE ROLE 命令建立的用户定义自定义角色。

局限性

使用 DMF 时请牢记这些限制

将 DMF 添加到对象:每个账户将 DMF 与对象关联的限制为 10,000 个。每次设置 DMF 时,表或视图只有一个关联。

数据共享:DMF 不能在共享表或视图上设置,也不能授予共享权限。没有在对象标签上设置 DMF 的功能。

克隆:当使用 CLONE 和 CREATE TABLE... LIKE 操作时,目标对象不会获得 DMF 分配。当您克隆包含 DMF 的数据库或模式时,DMF 会克隆到目标数据库或模式。读取器账户的对象不能应用 DMF。

事件表中的信息不能用于构建流或动态表。此功能不支持试用账户,也不支持美国 SnowGov 区域的账户。

Snowflake Data Quality Management

处理 DMF

以下部分提供了 DMF 管理信息的概述

DMF 命令来源

  • DMF 的操作、命令和权限概述
  • 您还可以分配应用程序角色以控制谁有权访问 DMF 结果。有关更多详细信息,请参阅管理 DMF 结果的访问权限。

DMF 命令参考

Snowflake 支持以下命令来处理 DMF

  • CREATE DATA METRIC FUNCTION
  • ALTER FUNCTION (DMF)
  • DESCRIBE FUNCTION (DMF)
  • DROP FUNCTION (DMF)

SHOW DATA METRIC FUNCTIONS 此外,使用 ALTER TABLE 和 ALTER VIEW 命令执行以下任务

  • 在列上添加或删除数据指标函数。
  • 可以从表或视图本身添加或删除数据指标函数。
  • 设置数据指标函数运行的时间。
  • 有关示例,请参阅使用数据指标函数。
  • 您可以使用 GRANT <privileges> 和 REVOKE <privileges> 命令将权限授予数据库角色或账户角色。不支持应用程序角色和其他角色类型。
  • 指示 ALL PRIVILEGES 或任何支持的 DMF 权限。
  • GRANT USAGE ON FUNCTION
    governance. dmfs.count_positive_numbers(TABLE(NUMBER, NUMBER, NUMBER)) TO data_engineer;

数据管理的基础是确保数据完整性和质量。Snowflake 的数据质量监控为数据质量报告和监控提供了全面的解决方案。

Snowflake Data Quality Management

让我们检查一下 Snowflake 数据质量监控的主要功能和重要性

数据质量监控功能:数据质量监控包括放入对象的行数、对象上次更新以来的时间以及空值计数等内置指标。客户还可以设计独特的指标来跟踪数据的准确性。

企业版要求:所有企业版或更高版本的账户都可以访问数据指标函数 (DMF) 和数据质量。

关于 Snowflake

Snowflake 是一个云原生数据仓库,具有无与伦比的性能和可伸缩性。由于其创新的架构将计算和存储分开,企业可以独立扩展资源,并且只需为他们需要的部分付费。这种创新方法确保了不间断的并行查询执行,提供了闪电般快速的分析能力。此外,Snowflake 广泛的安全方法可以保护敏感数据,使企业能够在不牺牲数据安全性的情况下获得洞察力。

数据指标函数和数据质量监控

Snowflake 很高兴在此版本中预览数据指标函数 (DMF) 的数据质量监控。DMF 用于数据质量监控,以持续跟踪数据质量参数,例如有效性、唯一性、准确性和完整性。对于行数、重复项和新鲜度等常见指标,您可以使用 Snowflake 提供的系统 DMF。或者,您可以通过构建自定义 DMF 来指定特定于您的数据指标。

Snowflake Data Quality Management

DMF 可以与所需的表关联以持续检查数据质量,也可以在查询中使用以评估数据管道中的数据质量。基于调度的持续监控基于定期测量,而基于触发器的持续跟踪仅在底层表更改时进行测量。为了保护您的数据隐私,DMF 结果会记录在您的 Snowflake 账户中的集中式事件表中。您可以从事件表中设置警报、构建仪表板和查询指标结果。此外,事件表中的数据采用 OpenTelemetry 标准格式,使其易于与可观察性工具集成。

数据质量维度

数据质量评估中经常使用许多维度。通过利用这些变量,组织可以检测并解决任何问题或缺点,并确保其数据准确、完整且可靠。

下面列出了一些最广泛使用的数据质量维度

数据中没有错误和错误程度被称为准确性。可靠且值得信赖的准确数据有助于做出可以辩护的决策

  • 完整性:指示数据完整并包含所有相关详细信息的百分比。丢失或不完整的数据可能导致糟糕的决策和不正确的结论。
  • 一致性:一致性是数据可靠并符合公认规范和法规的程度。不一致的数据可能导致混乱和有效分析和决策的障碍。
  • 及时性:这描述了信息的新鲜度和相关性。因为它及时更新,所以快速的数据促进了快速决策。
  • 有效性:数据满足预定标准并满足其预期用途要求的程度被称为有效性。无效数据无法成功使用,不适合其预期应用。
  • 完整性:这表明即使数据在各种系统中使用和存储,其特性也保持准确。

通过解决数据质量的这些方面,组织可以确保其数据值得信赖,并且可以利用其推动业务成功。

Snowflake 数据质量的特点

访问历史

需要进行数据审计以确保数据的完整性及其安全保管、授权访问和根据所有相关法律法规的适当使用。通过评估和记录 Snowflake 中数据的状态,您可以发现数据质量问题,例如过时数据、偏离预定分布范围的数据、不完整表和模式更改。

数据质量查询

团队可以在其流程中实施数据测试,以查明特定的质量问题。简单的数据测试方法,例如模式测试或自定义测试,使您能够验证您的数据假设,确保您的代码在已知情况下正常运行,并在修改代码时阻止回归。

dbt 和 Great Expectations 等应用程序可用于在 Snowflake 及其他地方测试数据。以下是一些最广泛使用的数据质量检查

  • 空值:是否存在不应存在的任何值(NULL 值)?
  • 数量:您是否收到了您的数据?如果收到了,收到了多少?
  • 分布:数值是否落在所需或预期的范围内?
  • 唯一性:您的唯一 ID 字段中是否有任何值重复?
    已知不变量:利润是否总是等于成本和收入的总和?
  • 对象标记:数据工程师和治理专家可以使用对象标记来监控敏感数据,以进行资产利用、合规性、发现和保护。

当对象被准确标记时,治理团队更容易实施额外的安全措施,例如行级访问控制或动态数据屏蔽。它还极大地促进了高风险数据的检测和监控。首先,我们需要建立一个具有一组标签和适当值的清晰框架,然后才能使用对象标签。应始终如一地使用最低级别的对象标记——账户、数据库、模式、表或列。以便行级访问规则和屏蔽仅应用于需要它们的数据。

借助 Snowflake 强大的数据质量监控和维护架构,您可以确保所拥有的数据可靠、完整且正确。下面概述了 Snowflake 如何帮助您维护数据质量

  1. 数据加载和摄取
    • 数据验证:在将数据导入 Snowflake 之前,您可以应用验证检查以确保数据满足预定义的数据质量要求。为此,您可以使用 Snowflake 中的内置 SQL 函数或其他 ETL 工具。
    • 数据转换:在数据加载时,使用 SQL Snowflake 的功能来清理和修改数据。例如,可以使用转换来过滤无效数据、消除重复项和标准化数据格式。
  2. 信息分析
    • 查询分析:Snowflake 允许您使用查询分析数据,这使得更容易发现异常值、缺失值和异常。这可以使用聚合函数、条件逻辑和其他 SQL 过程来完成。
    • 描述性统计:生成描述性统计数据,例如平均值、中位数、标准差等,以了解数据分布并发现任何异常。
  3. 数据一致性和完整性
    • 主键和外键:尽管 Snowflake 是一个无模式数据库,但您可以通过 ETL 过程或在应用程序中使用 SQL 约束来强制执行参照完整性,从而确保表关系的维护。
    • 检查和约束:SQL 脚本可用于在表中应用检查和约束。这些保证信息符合公司规定(例如,年龄 > 18 岁,收入在特定范围内等)。
  4. 数据清洗
    • SQL 函数:Snowflake 提供了一系列 SQL 函数,可用于处理 NULL 值、删除重复项和减少数据中的空白。
    • 脚本:要执行更复杂的数据清理任务,请使用 Snowflake 的 Python 集成或基于 JavaScript 的存储过程。
  5. 监控和审计查询
    • 历史记录和访问日志:您可以使用 Snowflake 的查询历史记录来密切关注数据修改和访问趋势。这可能有助于确保随着时间的推移保持数据质量和用于审计目的。
    • 自动警报:使用任务和存储过程,设置警报以在检测到数据量意外变化或违反业务规则时通知您。
  6. 数据处理
    • 数据目录和元数据管理:使用 Snowflake 的数据目录工具跟踪数据的所有权、定义和历史记录。这确保了组织中的所有成员都了解数据的来源和用途。
    • 基于角色的访问控制 (RBAC):实施 RBAC 以确保只有授权用户才能查看或修改数据。这有助于维护数据的安全性和完整性。
  7. 数据质量仪表板
    • 可视化工具:您可以将 Snowflake 与 Tableau、Power BI 或 Looker 等 BI 工具链接,以生成实时衡量数据质量指标的仪表板。这些仪表板可以提供有关数据的完整性、准确性和及时性的详细信息。
    • 自定义报告:使用 SQL Snowflake 功能构建自定义报告,用于定期监控和评估数据质量指标
  8. 人工智能和机器学习
    • 异常检测:使用 Snowflake 的机器学习平台集成来设置自动异常检测。这有助于发现传统方法可能遗漏的数据质量方面的小问题。
    • 预测建模:利用预测模型来预测和避免数据质量问题。

结论

总之,我们可以得出结论,Snowflake 提供了一系列数据质量管理工具和功能,使公司能够确保其数据可靠、准确和一致。通过实施 Snowflake 的身份验证、分析、清理和管理流程,您可以确保整个运营中的高数据标准。与 BI 工具链接和利用机器学习的能力进一步增强了您监控和改进数据质量的能力。最终,Snowflake 对数据质量的重视使您能够做出更明智的选择、推动公司发展并维护数据信任。