数据中台有一个非常重要的作用,就是做数据分析和支持决策的重要依据,而数据从业务系统等数据源入仓后,会经过几层甚至几十层的转换传递,这其中任何一个环节出现问题,都会导致被依赖数据的连锁反应,最终到达分析和决策层后,带来的影响不容小觑,这也是我们在大数据工作中,把数据测试的排期拉的甚至比开发时间还要长的重要原因!
我们要确保数据的准确性、一致性、完整性和及时性,以帮助公司做出明智的决策。由于发现了工具,研究了一下如何使用数据可观察性平台 Sifflet 来监控数据质量的。
为什么要监控数据质量?
数据质量是指数据在特定时间点的健康状况。以下标准可用于监测数据:完整性、唯一性、有效性、一致性、准确性和完整性。这里我就不做赘述了,相信从事数据开发相关工作的,对这些都并不陌生。
不过为了连贯,我还是通俗得阐述下他们的含义:
- 完整性:测试对象是否拥有所有数据?
- 唯一性:同一ID 是否对应了不同的实体?
- 一致性:不同的数据来源中的相同业务含义的数据是否一样?
- 准确性:数据的计算是否正确,数据转换过程中是否有精度损失等?
- 完整性:数据是否被替换或者篡改?
良好的数据质量对公司来说至关重要。
在处理大量数据时,必须实现质量控制自动化。Sifflet 平台是监控大量数据的理想解决方案。
什么是 Sifflet?
Sifflet 是一个全栈数据可观察性平台,使企业能够信任其数据,从而大规模地提供可操作的见解。重要的是要明白,数据可观察性并不等同于数据监控。Sifflet 平台有三大特点,随后我在介绍
数据可观察性和数据监控之间有何区别?
数据监控能够识别一组预定义的故障模式。而数据可观察性则更进一步,因为它有助于了解事件的源头。总之,数据监控属于数据可观察性的范畴。
Sifflet 可能被应用在什么地方?
- 监控和监测数据是否符合数据质量标准,确保数据质量;
- 通过数据血缘关系,来调查数据问题带来的影响
- 利用数据地图(目录)和元数据,轻松浏览数据并更好地理解数据
什么是数据血缘?它是一种数据传递流程,可让您创建一张地图,显示数据的起源和所经历的阶段。
零售项目数据质量使用案例
我从一遍博客中看到了这个案例,分享出来,大家共同学习一下
项目背景
数据从各种来源收集,并放入数据仓库。这些数据都是未经转换的原始数据。检索数据后,使用 DBT(数据构建工具)对数据进行转换。最后,数据分析师使用这些转换后的数据为用户创建仪表盘。
下面是实施Sifflet之前的数据管道架构
什么是 DBT?它是一种基于 Python 的开源环境,用于通过 DBT 测试进行数据管道和数据质量的数据转换。下文将详细介绍 DBT。
问题以及解决方案
问题:数据管道不包括任何数据质量检查。这可能会造成令人尴尬的后果,例如显示不完整或不正确的仪表盘。这就是选择可观察性平台 Sifflet 的原因。
Sifflet 与数据处理管道并行连接,以便在每个阶段检查数据质量是否正确。
实施Sifflet之后的数据管道架构
如何使用 Sifflet 提高数据质量?
在 Sifflet 上创建监控规则简单快捷。具体步骤如下: 首先,您需要将 Sifflet 连接到数据源。有关如何安装新数据源的更多详情,我建议查阅 Sifflet 文档,其中介绍每个步骤。
然后,在 “Monitors “选项卡中,可以在所需表格上创建新的监控规则。不要忘记配置规则的执行和通知。
如果出发了预定的事件,可以在 “incidents “选项卡中查阅,然后将其分配给自己。呈现数据生命周期的 “数据血缘 “有助于了解问题的起源,从而解决问题。
总结
虽然还没有实际在项目中使用过这个产品,但似乎这将会是一个非常有用的工具,这其中的功能其实和Dataphin很像,Dataphin毕竟是一个功能复杂庞大的系统,很多功能要和其他的模块相融合,无法真正做到某一件事情的“纯粹”,我不知道我是否表达清楚,什么都有,就会有所取舍和妥协,如果只做一个事情,比如只做数据监控,那么事情才能做到极致。
所以我非常希望有机会可以做项目中使用一下这个工具。
好啦,同志们如果也想试试,不妨去官网看看哈。