使用 Snowflake 的数据指标函数监控数据管道
原文towardsdatascience.com/monitor-data-pipelines-using-snowflakes-data-metric-functions-0df71c46f04a?sourcecollection_archive---------8-----------------------#2024-04-15使用谷歌 SRE 原则构建可信的数据平台https://medium.com/jesszhangcyz?sourcepost_page---byline--0df71c46f04a--------------------------------https://towardsdatascience.com/?sourcepost_page---byline--0df71c46f04a-------------------------------- Jess.Z·发表于 Towards Data Science ·阅读时间 6 分钟·2024 年 4 月 15 日–https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/dd9da14923ac82a0d2d10724afb39253.png由 Dall-E 生成的图像您是否遇到过客户首先因为数据事件而找上门您的客户是否因为数据不可信而自己构建数据解决方案您的数据团队是否在修复未检测到的数据质量问题上花费了不必要的长时间而不是优先处理战略性工作数据团队需要能够全面了解其数据系统的健康状况以便赢得利益相关者的信任并与整个业务进行更好的沟通。我们可以将数据质量维度与谷歌的站点可靠性工程SRE原则结合起来衡量我们数据系统的健康状况。为此评估一些对您的数据管道有意义的数据质量维度并制定服务水平目标SLOs。什么是服务水平目标本文中我们将使用的服务水平术语是服务水平指标和服务水平目标。这两个概念是借鉴自 谷歌 SRE 书籍的原则。服务水平指标— 精确定义的、定量衡量某个服务层面水平的指标。我们在软件领域常见的指标有吞吐量、延迟和正常运行时间可用性。这些用于衡量应用程序或网站的可靠性。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2a926ac827c514fef839a09eae44bb4a.png典型事件然后这些指标被转化为受阈值限制的目标。软件应用的健康状况现在是“可度量的”我们可以与客户沟通应用的状态。服务水平目标由 SLI 衡量的服务水平的目标值或范围。我们直观地理解这些定量衡量标准和指标在典型用户应用中的必要性以减少摩擦并建立与客户的信任。在构建数据管道时我们需要采用类似的思维方式。数据质量维度转化为服务水平术语https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/55c5bc0af80a676b7e2b04d71b53f3c5.png数据系统故障假设用户与我们的应用程序互动并每小时生成 X 量的数据进入我们的数据仓库如果进入仓库的行数突然大幅下降我们可以将其标记为问题。然后我们可以追踪管道中的时间戳来诊断并解决问题。我们希望捕获进入我们系统的数据的足够信息以便在发生异常时能够检测到。大多数数据团队倾向于从数据及时性开始。预期的数据是否在正确的时间到达这可以分解为以下指标数据可用性——预期的数据是否已经到达/可用数据新鲜度——新的数据是否按预期时间到达https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/57963d8ebfec1d046bd5532fc3ac9ba4.png数据质量维度转化为 SLIs 和 SLOs一旦系统稳定保持与客户的良好关系就变得重要以便设定对利益相关者有价值的正确目标。阈值的概念…我们如何实际确定期望多少数据以及何时到达对于我们所有不同的数据集正确的数据量是多少这时我们需要关注阈值概念因为它确实比较复杂。假设我们有一个应用程序用户主要在工作时间登录系统。我们预计每天 9 点到下午 5 点之间大约会有 2000 次 USER_LOGIN 事件而在其他时间则有 100 次。如果我们为一天使用一个单一的阈值它会得出错误的结论。在晚上 8 点接收 120 个事件是完全合理的但如果我们在下午 2 点只接收了 120 个事件那就值得关注并且应该进一步调查。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/735733c28a94f26393e0e1e0ae938481.png显示阈值线的图表绿色因此我们需要为一天中的每个小时以及每个不同的数据集计算不同的期望值——这就是阈值。需要定义一个元数据表动态地获取每小时到达的行数以便得出对每个数据源有意义的阈值。有些阈值可以使用时间戳作为代理提取正如上面所解释的那样。这可以通过统计度量如平均值、标准差或百分位数来迭代你的元数据表。根据你的创造性程度你甚至可以在这个过程的某一部分引入机器学习帮助你设定阈值。其他阈值或预期需要与利益相关者讨论因为这将依赖于对业务的具体了解知道该预期什么。在 Snowflake 中的技术实现开始的第一步是选择几个对业务至关重要的数据集在实现大规模的数据运维解决方案之前在其上构建。这是获取动力并感受数据可观察性工作影响的最简单方式。许多分析型数据仓库已经内建了相关功能。例如Snowflake 最近为企业账户推出了数据度量函数预览版帮助数据团队快速入门。数据度量函数是我们可能写的一些查询的包装器用来洞察我们的数据系统。我们可以从系统 DMF 开始。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/215c9afdc5449c2e9be8cca9b2d89f55.pngSnowflake 系统 DMF我们首先需要整理一些权限…https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6b46f55238e93746721c47cdf7ffc705.pngDMF 访问控制文档USE ROLE ACCOUNTADMIN;GRANT database role DATA_METRIC_USER TO role jess_zhang;GRANT EXECUTE data metric FUNCTION ON account TO role jess_zhang;## Useful queries once the above succeedsSHOW DATA METRIC FUNCTIONS IN ACCOUNT;DESC FUNCTION snowflake.core.NULL_COUNT(TABLE(VARCHAR));DATA_METRIC_USER是一个数据库角色这可能会让一些人感到困惑。如果你遇到问题重新查看文档非常重要。最可能的原因是由于权限问题。然后简单地选择一个 DMF …--Uniqueness SELECT SNOWFLAKE.CORE.NULL_COUNT(SELECT customer_id FROM jzhang_test.product.fct_subscriptions);--Freshness SELECT SNOWFLAKE.CORE.FRESHNESS(SELECT _loaded_at_utc FROM jzhang_test.product.fct_subscriptions)60;--replace60withyour calculated threshold value你可以使用数据度量调度 —— 一个对象参数或者你常用的编排工具来安排你的 DMF 运行。仍然需要做大量工作来确定自己的阈值以便为管道设置正确的 SLO。总结…数据团队需要与利益相关者合作通过使用服务水平指标和目标来设定关于数据的更合理预期。引入这些指标将帮助数据团队从被动的应急响应转变为更主动的方式防止数据事件的发生。这将使精力重新集中于交付业务价值并构建一个可信的数据平台。除非另有说明所有图片均由作者提供。

相关新闻

SAM3模型来了,手把手带你运行SAM3模型代码,SAM3模型初探!

SAM3模型来了,手把手带你运行SAM3模型代码,SAM3模型初探!

SAM3模型简介 SAM3(Segment Anything Model 3)是Meta推出的第三代通用图像分割模型,具备零样本迁移能力,支持多模态输入(如图像、文本提示)。相比前代,SAM3在精度、速度和交互方式上均有显著提…

2026/7/3 15:03:05 阅读更多 →
强烈建议立即搞个软考证!(政策风口)

强烈建议立即搞个软考证!(政策风口)

🔊注意:2026软考生恭喜了!让你一次上岸的机会来了!「2026软考上岸学习群」正式开放!25年软考已结束!你是不是也踩了这些坑😭:❎考点又多又杂,复习毫无重点;❎…

2026/7/2 20:12:34 阅读更多 →
140+页神奇的逻辑图(橄榄绿)

140+页神奇的逻辑图(橄榄绿)

扫描下载文档详情页: https://www.didaidea.com/wenku/16416.html

2026/7/3 15:03:09 阅读更多 →

最新新闻

KVAE-Audio在音频修复中的应用:如何提升损坏音频质量

KVAE-Audio在音频修复中的应用:如何提升损坏音频质量

KVAE-Audio在音频修复中的应用:如何提升损坏音频质量 【免费下载链接】KVAE-Audio 项目地址: https://ai.gitcode.com/hf_mirrors/kandinskylab/KVAE-Audio KVAE-Audio是一款连续全频段(48 kHz)音频自动编码器,能够将原始…

2026/7/4 7:23:02 阅读更多 →
Windows Research Kernel (WRK) 实战案例:如何通过修改内核实现自定义系统调用

Windows Research Kernel (WRK) 实战案例:如何通过修改内核实现自定义系统调用

Windows Research Kernel (WRK) 实战案例:如何通过修改内核实现自定义系统调用 【免费下载链接】Windows-Research-Kernel-WRK- Windows Research Kernel Source Code 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-Research-Kernel-WRK- Windows Re…

2026/7/4 7:23:02 阅读更多 →
CMS备份与恢复:Instatic完整灾难恢复演练

CMS备份与恢复:Instatic完整灾难恢复演练

CMS备份与恢复:Instatic完整灾难恢复演练 【免费下载链接】Instatic Instatic is a modern self-hosted visual CMS - get it running in 1 minute 项目地址: https://gitcode.com/GitHub_Trending/in/Instatic Instatic作为一款现代化自托管视觉CMS&#xf…

2026/7/4 7:21:01 阅读更多 →
status-go终极指南:构建去中心化社交应用的完整Go后端解决方案

status-go终极指南:构建去中心化社交应用的完整Go后端解决方案

status-go终极指南:构建去中心化社交应用的完整Go后端解决方案 【免费下载链接】status-go The "backend" library for Status Apps 项目地址: https://gitcode.com/gh_mirrors/st/status-go 想要快速构建去中心化社交应用?&#x1f68…

2026/7/4 7:16:59 阅读更多 →
为什么选择Slash?对比原生NSAttributedString,这款富文本工具到底强在哪里?

为什么选择Slash?对比原生NSAttributedString,这款富文本工具到底强在哪里?

为什么选择Slash?对比原生NSAttributedString,这款富文本工具到底强在哪里? 【免费下载链接】Slash A better way to create attributed strings 项目地址: https://gitcode.com/gh_mirrors/slash/Slash 如果你是iOS或macOS开发者&…

2026/7/4 7:16:59 阅读更多 →
如何将Statsig Status Page部署到自定义域名:完整教程

如何将Statsig Status Page部署到自定义域名:完整教程

如何将Statsig Status Page部署到自定义域名:完整教程 【免费下载链接】statuspage A simple, zero-dependency, pure js/html status page based on GitHub Pages and Actions. 项目地址: https://gitcode.com/gh_mirrors/sta/statuspage Statsig Status Pa…

2026/7/4 7:14:59 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻