谢谢大家阅读我之前的博客!这篇博客是“数据质量”和“数据治理”系列中的另一篇。请参考我之前关于理解数据度量函数的博客——https://poojakelgaonkar.medium.com/understanding-snowflakes-data-metric-functions-f9b218f378f7
这个博客主要介绍如何了解并运用系统定义的数据质量功能(DMFs),以验证数据的质量。有许多内置的功能,可以确保数据的准确性、新鲜度,生成统计信息,反映唯一性,以及计算数据规模。这些指标用于验证数据质量,确保数据的准确性。
-- 计算customer_info表中customer_id的重复数量 SELECT SNOWFLAKE.CORE.DUPLICATE_COUNT(customer_id) FROM customer_info;
此功能也会考虑 NULL 值和字段值。这可以在 DATE、VARCHAR、FLOAT、NUMBER 和 TIMESTAMP 列上实现。
UNIQUE_COUNT也可用于相同的数据类型,就像DUPLICATE_COUNT一样。这可以统计字段中唯一值的数量。
SELECT SNOWFLAKE.CORE.UNIQUE_COUNT(zip_cd) from customer_info; -- 从customer_info中选择每个邮政编码的数量(去重)
ROW_COUNT 也可以用于获取表中的总行数。这可以用来检查关键数据字段或来源是否存在数据异常。如果行数与预期范围有巨大差异,这可以触发一个数据异常警报。这些检查可以设置为定期执行。
ALTER TABLE sales.sales_history 设置 DATA_METRIC_SCHEDULE = 'CRON 0 8 * * * UTC'; /* 每天早上8点运行以验证数据 */
选择SNOWFLAKE.CORE.FRESHNESS函数返回的结果是否小于300,该函数用于检查sales.sales_history表中的sale_ts字段的最新数据是否在300单位时间之内。
SELECT SNOWFLAKE.CORE.FRESHNESS( SELECT sale_ts FROM sales.sales_history ) < 300;
请注意,上述SQL语句执行了上述描述的检查。
这条 SQL 语句检查销售采购数据是否在实时更新时延迟不超过 5 分钟。
3. 为了确保 数据准确性,Snowflake 提供了多种函数——NULL_COUNT(空值计数)、BLANK_COUNT(空白计数)、BLANK_PERCENT(空白百分比)和 NULL_PERCENT(空值百分比)。你可以使用这些函数来验证主字段,以及那些不能为空或为空白的字段。你可以使用这些函数来验证数据质量,确保数据完整。
4. Snowflake 提供了一组函数来生成数据的统计,使用系统定义的 DMFs —— AVG、MIN、MAX 和 STDDEV。这些函数可以用来验证数据是否符合预期范围,并评估数据质量。这些函数可以与业务规则结合使用,设置数据质量规则来评估数据质量。我们将在接下来的博客中详细介绍数据质量框架的设计。
您还可以使用如下的 SHOW 命令查看您 Snowflake 账户中存在的 DMF 列表。
展示账户中的数据指标相关的函数。
这是系列中的第二篇博客文章,在接下来的文章中你将学习如何创建自定义DMFs并在数据验证中使用它们。请订阅我的博客系列,以获取更多关于Snowflake、Gen AI和数据域应用场景的最新特性和应用场景的信息。不要错过哦。
关于我:
我是Snowflake 2023和2024年的数据超级英雄之一。我是一名DWBI和云架构师。目前我在GCP及Snowflake担任高级数据架构师。我曾与各种遗留数据仓库及相关数据实施项目及云平台迁移项目合作。我同时拥有SnowPro核心认证的数据架构师和谷歌认证的谷歌专业云架构师资格。如果您需要关于认证、数据解决方案和实施项目方面的帮助,可以通过LinkedIn联系我获取帮助!