十、数据仓库详细介绍(数据质量)流程与工具

news2024/11/20 6:17:19

上篇我们主要介绍了以下三部分内容。

  • 第一部分,介绍了五种常见的数据管理知识体系,数据质量在所有的知识体系中都有非常重要的地位,数据应用体现数据价值,数据质量为应用提供支撑。

  • 第二部分,我们介绍了数据质量评判的五大标准,它为数据质量管理工作提供了参考依据、评定标准、量化理论支撑。

  • 第三部分,我们介绍了四种数据质量保障体系,希望大家能够从多个不同维度去深度思考,然后结合自己的身份职位以及所处环境去制定行之有效的数据质量保障手段。

做为数据人必须对数据质量保持足够的重视。

  • 如果你是公司高层,可以从制度管理业务等多个方面,协调各个相关部门去保证数据质量。

  • 如果你是数据团队负责人,需要提高团队成员对于数据质量的重视程度,制定数据质量标准和规范,开发数据质量管理工具,使得相关工作能够更轻松有序的开展。

  • 如果你是一线数据开发,至少得保证自己负责的部分内容的数据质量。接到任务后不要急于上手,先去看看上游依赖的数据数据质量是否可用,同时跟需求方确认好口径,最后才是考虑具体的实现逻辑。

本篇,首先会参考阿里云文档给大家讲解下数据质量管理流程(阿里云的文章写得不太好理解,我又根据个人理解做了许多加工),然后大致介绍下数据质量管理工具设计思路。

0x01 数据质量管理流程

数据质量管理是通过划分数据资产等级和分析元数据的应用链路,对不同资产等级的数据采取相对应的质量管理方式。

数据质量管理流程图如下:

原文内容可以翻阅阿里巴巴大数据之路,第 15 章数据质量部分。

也可以查看阿里云文档:https://help.aliyun.com/document_detail/114560.html

数据资产等级定义

包含两部分内容:

  • 数据资产等级的定义

  • 根据资产等级分析数据处理链路

1、数据资产等级的定义

根据数据质量不满足完整性、准确性、一致性、及时性时,对业务的影响程度划分数据的资产等级。通常,划分为5个性质的等级:

  • 毁灭性质:数据一旦出错,将会引起重大资产损失,面临重大收益损失等。标记为A1。

  • 全局性质:数据直接或间接用于企业级业务、效果评估和重要决策等。标记为A2。

  • 局部性质:数据直接或间接用于某些业务线的运营、报告等,如果出现问题会给业务线造成一定的影响或造成工作效率降低。标记为A3。

  • 一般性质:数据主要用于日常数据分析,出现问题带来的影响极小。标记为A4。

  • 未知性质:无法明确数据的应用场景。标记为Ax。

从上到下重要性依次降低,即重要程度为A1>A2>A3>A4>Ax。如果一份数据出现在多个应用场景汇总,则根据其最重要程度进行标记。

2、根据资产等级分析数据处理链路

定义数据资产等级后,您可以从数据流转链路开始进行数据资产等级打标,完成数据资产等级的确认,给不同的数据处理链路定义不同的重要程度。

源端业务系统产生的数据,通过同步工具进入数据数仓系统。数据在数仓中进行清洗、加工、整合、算法、模型等一系列运算后,再通过同步工具输出到数据产品中进行消费。整个流程过程,数据都存放在表中,流转链路大致如下图所示。

在数据流转链路上,您需要整理各个表对应的最终应用业务产品。根据这些应用业务产品的数据资产等级,结合数据的上下游血缘,将整个链路打上某一类资产等级的标签。

关键节点控制

1、源端系统变更检测

源端的问题最好能在源端解决掉,比如数据准确性、一致性、稳定性等等。

我们需要事先跟源端系统负责人沟通确认清楚数据使用规则,确保数据抽取和计算环节的数据准确性。

在线业务系统复杂多变,每次变更都会产生数据的变化。为保证数据质量,就需要考虑如何能将源端业务系统的变更,更高效地通知给数据仓库维护人员。

首先,我们可以从人员管理入手,制定流程规范,要求前端业务变更发版上线前必须通知下游下游数仓运维人员。

其次,我们可以使用工具自动捕捉每一次业务的变化。如果数仓直接使用的是业务系统的表可以检测表结构的变化、业务关键字段的空值率、数据量同环比的波动等等。如果数仓接入的是业务系统日志,可以在入库前做格式校验和数据量同环比波动分析。

2、模型设计评审

模型设计师、架构师、需求人员、业务人员、运维人员参与,对数仓模型进行评审,优秀的数据模型除了满足业务需求外,还需要在性能、成本、效率、质量等方面有不错的助力。良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。

数据仓库详细介绍(四.建模)理论篇

3、代码提交核查

即在 SQL 提交前进行相关规则校验。有工具最好,如果没有可以人工代码 review。规则分类如下:

  • 代码规范类规则。例如,表命名规范、生命周期设置及表注释等。

  • 代码质量类规则。例如,分母为0提醒、NULL 值参与计算影响结果提醒及插入字段顺序错误等。

  • 代码性能类规则。例如,分区裁剪失效、扫描大表提醒及重复计算检测等。

4、任务发布变更审查

为保障线上数据的准确性,每次变更都需要经过测试再发布到线上生产环境,上线后最好第一时间对相关应用和底层数据做检查。

在进行更新操作前,需要通知下游变更原因、变更逻辑、变更时间等信息。下游对此次变更没有异议后,再按照约定时间执行发布变更,这样可以将变更对下游的影响降到最低。

5、任务运行过程监控

ETL 运行过程每一步的执行情况都应该记录日志,如果有报错需要根据资产等级定义选择立即触发报警以及是否停止任务。

数据风险点监控

DQC Data Quality Center/Check 数据质量中心,还是数据质量检查?好吧,我们暂时叫它数据质量监控。我们在上一篇提到的五大数据质量评估标准,完整性、准确性、一致性、时效性、可访问性,DQC 通过配置质量检查规则,可以实现完整性、准确性、可访问性监控,从而间接实现了时效性监控。但是,一致性只能通过统一的模型设计和口径定义来保障。

SLA(Service Level Agreement)服务等级协议,它描述是双方的一种约定,是一种服务可用性的指标。SLA 提供的可用性越高,那么一年内停机的时间越小。SLA 是保证服务的可用性的。好吧,它的原始含义好像是跟运维相关的。在数据质量管理中,SLA 指的应该是最晚出数时间。

1、DQC 数据质量监控

通过配置 DQC 的数据质量校验规则,可以实现在数据处理过程中进行自动的数据质量监控。DQC 可以监控数据质量并报警,但它不对数据产出进行处理,需要报警接收人判断如何处理。

DQC 数据监控规则有强规则和弱规则:

  • 强规则:一旦触发报警就会阻断任务的执行(将任务置为失败状态,使下游任务不会被触发执行)。

  • 弱规则:只报警但不阻断任务的执行。

DQC 的工作流程如下图所示。

DQC 提供常用的规则模板,包括表行数较 N 天前波动率、表空间大小较 N 天前波动率、字段最大/最小/平均值相比 N 天前波动率、字段空值/唯一个数等。

DQC 的检查也可以通过运行 SQL 任务实现。该 SQL 任务嵌套在整体任务中,如果检查次数过多会影响整体的任务执行性能。因此,哪些数据需要配置 DQC 规则、应该配置什么规则,也需要根据数据资产等级来确定。例如 A1、A2 类数据监控率要达到 90% 以上,规则类型需要 3 种以上,而不重要的数据资产没有强制要求。

2、SLA 数据时效性监控

在确保数据准确性的前提下,您需要进一步让数据能够及时提供服务,否则数据的价值将大幅降低。确保数据及时性是保障数据质量的重要一环。为确保数据完整性,每天任务通常都是 0 点以后才开始执行,计算前一天的数据。这些任务大多在深夜运行,要确保数据按时产出,需要考虑任务的执行优先级以及任务执行失败或时间过长时的报警问题。

  • 降低您的配置成本。

  • 杜绝无效报警。

  • 自动覆盖所有重要任务。

  • 任务优先级。根据业务的资产等级,确定任务的优先级,对于优先级高的任务优先调度并占用计算资源,确保高等级业务的准时产出。

  • 任务报警。任务报警和优先级类似,任务执行过程中,可能出错或延迟,为了保障最重要数据(即资产等级高的数据)产出,需要立即处理出错并介入处理延迟。

数据质量衡量

在了解了以上保障数据仓库数据质量的方案后,我们还需要进一步学习如何制定一套标准度量方案,以及判断质量监控方案是否合适业务需求以及如何改进。

例如,针对每一个数据质量事件,必须分析原因和处理过程,制定后续同类事件预防方案。将严重的数据质量事件升级为故障,并对故障进行定义、等级划分、处理和总结。

0x02 数据质量管理工具设计思路

看到这里,我们再来回忆下以上的数据质量管理流程。

  • 首先,进行数据资产等级定义。我们需要定义好最终应用以及对应的数据加工任务的重要性等级。

  • 其次,进行关键节点控制。我们需要监控好源端的数据质量以及关键内容的变动,同时要把控好代码提交和任务的上线运行变更等环节,发现问题及时处理。

  • 再次,进行数据风险点监控。我们使用 DQC 工具对核心风险点进行检查,同时监控好 SLA(最晚出数时间),发新问题及时告警触发后续处理。

  • 最后,进行数据质量衡量。主要是对以上行为进行复盘,及时发现问题并纠正。

以上提到的环节,我们可以通过提高参与者的技术能力以及重视程度来尽可能的保障数据质量,但如果有条件还是希望能够采用技术手段(比如使用任务流程监控、数据稽核校验、告警通知等)去完成。

元数据管理工具

记录好数据存储模型、表/字段的词根库命名规则、ETL 任务流、数据资产等级、数据血缘、指标定义(口径)、ETL 运行日志、数据质量稽核规则及稽核日志等等关键元数据。

数据仓库详细介绍(八.元数据)

开发保障类工具

预设规则,可以在新增或变更时候启动检查,也可以定期自动化的触发,去检查数据存储模型质量、ETL 代码质量、各种数据应用的使用热度等等。

结合数据资产等级和数据血缘,及时发现设计和实施过程中的数据质量隐患以及影响程度。

ETL 过程检查工具

ETL 代码规范得到保障的前提下,我们通过浏览 ETL 运行日志发现问题,然后根据影响程度去触发告警或通知,同时考虑是否暂停后续任务。

数据仓库详细介绍(七.监控告警)

源端变更识别工具

数据部门在公司有一定话语权话语权的情况下,建议跟源端系统把流程固化下来,源端的表结构变更、字段使用规则变更,需要通知到数据方并且要有一定的提前量否则会根据影响程度问责。另外数据方也要提前告知端系统,自己用到了哪些数据。有时候源端直接处理的成本和效果会比数据端好很多。

源端解决不了或者不给解决的就只能及时发现然后触发告警,但这通常都会有滞后性,建议还是要事先往上“闹一闹”的,这个锅不应该有咱背且有时候咱也背不动啊。

使用工具的话,最简单的方法,我们可以在稽核校验工具里配置规则,比如在业务系统压力小的时候,或者固定的上线发版日,检查源端重要表的可访问性、空值率、数据分布等等,发现问题及时触发告警通知。

数据质量稽核工具

详细的设计思路,可以参考这篇文章:数据仓库详细介绍(监控告警)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序优化 - ABAP并行处理

SAP的并行方式有很多种: SPTA框架,参考debug可以看出这个核心也是异步bgRFC 异步RFC,使用CALL FUNCTION “XXXXXX” STARTING NEW TASK XXXX CALLING XXXX ON END OF TASK BANK_PP_JOBCTRL框架 拆分成多个后台JOB执行 这里只说SPTA框架…

【高危】Linux Kernel OverlayFS 权限提升漏洞(POC公开)

漏洞描述 Linux Kernel OverlayFS 是 Linux 内核提供的一种文件系统,允许将多个文件系统合并为一个单一的虚拟文件系统。 在 Linux Kernel OverlayFS 受影响版本中,当用户将具备特权的文件从 nosuid 的挂载点复制到另一个挂载点时,未授权的…

【严重】ejs 存在服务端模板注入漏洞(存在POC)

漏洞描述 EJS 是开源的 JavaScript 模板引擎,允许在HTML代码中使用JavaScript代码块,closeDelimiter 参数是 EJS 模板中的结束标记,用于指定结束分隔符。 由于对 CVE-2022-29078 漏洞修复不完全,当应用程序使用 EJS 模板引擎&am…

如何恢复已删除或丢失的音乐文件

您是否遇到过您或其他人不小心删除了您的音乐文件的情况?作为我自己的音乐爱好者,我知道这种感觉有多么毁灭性。听音乐让我们平静和放松,它可以帮助一些人在工作时提高工作效率或缓解他们感受到的压力。 这就是为什么如果您不小心丢失了您心…

springcloud-alibaba (04)Gateway与Nacos结合使用

Gateway与Nacos结合使用 🎉欢迎来到这里,今天我将为大家介绍如何将Spring Cloud Gateway和Nacos结合使用,实现一个高效稳定的服务网关!在微服务架构中,API网关是必不可少的一部分,它提供了路由请求、负载均…

java版企业工程项目管理系统源代码-功能清单 图文解析

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…

新手如何写新闻稿?一文带你了解记者稿的写作步骤与技巧

作为一名新手记者,写稿件是必须掌握的基本技能。记者稿的写作方式有很多种,但基本的步骤和技巧是相同的。在这篇文章中,我将向大家介绍记者稿的写作步骤和技巧,希望能对想要成为一名优秀记者的你有所帮助。 一、确定新闻价值 在写…

代码随想录训练营Day50| 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV

目录 学习目标 学习内容 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV 学习目标 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV 学习内容 123.买卖股票的最佳时机III 123. 买卖股票的最佳时机 III - 力扣(LeetCode)https://lee…

深度分析:智能照明百亿赛道,Yeelight易来如何做到智能照明和定制照明双C位

日前,艾瑞咨询发布了《2023年中国家用智能照明行业研究报告》,报告显示,中国家用智能照明市场迎来爆发式增长,市场占有率从2016年仅2.0%上升到2022年的20.4%,7年间占比增长20%。预计2023年家用智能照明市场规模将突破1…

千呼万唤始出来!从源码到架构的Spring全系列笔记,已全部分享

因粉丝强烈要求小编整理一套spring全系列资料集合,不然就要集体给小编寄刀片了,今天终于是千呼万唤始出来,给大家连夜整理这一套可以说是全网最全最细的Spring全系列资料,今天毫无保留的给大家分享出来一起学习!一起牛…

【JavaSE】Java基础语法(七):二维数组

文章目录 🪂1. 二维数组概述🪂2. 二维数组动态初始化🪂3. 二维数组访问元素的细节问题🪂4. 二维数组静态初始化🪂5. 二维数组遍历🪂6. 二维数组求和 🪂1. 二维数组概述 概述 : 二维数组也是一种…

数据库范式理论

目录 1、1NF 2、2NF 3、3NF 4、BCNF 5、4NF 1、1NF 在实际应用中,数据库表的每一列(也称为属性)都是不可分割的原子数据项,不能是集合,数组,记录等非原子数据项。即在实际应用中实体中的某个属性有多个…

直播电商迈入新周期,快手如何抢跑?

文 | 螳螂观察 作者 | 图霖 直播电商迈入第七个发展年头,来到了新周期的变革前夜。 行业竞争逐年加剧,但截至2022年已迅速攀升至35000亿元的直播电商市场交易规模,仍诱惑着新玩家挤进这张拥堵的牌桌。 美团方面,继今年1月底在…

局域网唤醒工具UpSnap

什么是 UpSnap ? UpSnap 是使用 SvelteKit、Go、PocketBase 和 nmap 编写的简单局域网唤醒应用程序。 v3 更新日志: ⚙️ 后端: 用 Go 重写。之前的版本是 Python 写的;不再支持不同的数据库。后端现在使用基于 SQLite 的 PocketB…

Qt+QtWebApp开发笔记(三):http服务器动态html连接跳转基础交互

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130840894 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

电脑密码忘了怎么解除?试试这3个方法!

案例:我的电脑太久没有使用,导致我忘记了密码,试了好几次还是显示密码错误。怎样才能找回电脑的开机密码? 【我忘记了电脑密码,导致我无法使用电脑,给我的生活带来了很大的困扰。有没有小伙伴遇到过相同的…

开发最佳实践|集成声网 iOS SDK,实现语音聊天室

大家好,我是声网 RTE 开发者社区作者 小曾同学。本次主要分享集成声网SDK实现语音聊天室。 01 前言 在日常生活中经常会看到一些聊天场景,比如在线KTV、连麦开黑、多人相亲、娱乐聊天室等应用场景,随着移动应用开发的需求不断增加&#xff…

提高记忆力的 10 种记忆技巧和工具

人工智能的迅速发展,让人不禁猜想是否有一天我们也能靠AI来提高自己的记忆力?哈哈也许真的可行🤖 其实现在已经有很多记忆技巧和工具,不仅可以帮助我们存储信息,还可以更好地回忆和记忆更大的信息集。 实际上&#x…

lwIP更新记07:TCP 控制块申请失败可以检测到了

从 lwIP-2.0.0 开始,TCP 控制块申请失败可以检测到了。 这个更新应用在 TCP 服务器模式中,处于监听状态的 TCP_PCB ,如果收到客户端发送的 SYN 同步标志,表示一个客户端在请求建立连接了。lwIP 会为这个新连接申请一个 TCP_PCB &…

APP启动页和闪屏的知识点

APP启动页和闪屏的知识点_51CTO博客_app启动屏广告 启动页与闪屏的区别 1.启动页 (launch screen ) 当app被用户打开时,在app启动过程中被用户所看到的过渡页面(或动画)都被我们统称为启动页。 优点: 1.打开一个产品时,需要有一定的时间加载&#xff…