kettle开发-Day43-数据对比

前言:

        随着数字化的深入,各种系统及烟囱的建立,各系统之间的架构和数据存储方式不同,导致做数据仓库或数据湖时发现,因自建的系统或者非标准化的系统经常存在物理删除而不是软删除。这就延伸出一个问题,经常导致数仓里面的数据多余目标库的。导致做数据分析或者消息推送时,出现了很多“垃圾数据”。那我们怎么有效的去识别数仓和目标库的数据情况呢,今天我们介绍用kettle来标记不同库之间的数据对比。

一、数据对比

      ①出发点:

  1. 数据准确性验证

    • 数仓中的数据通常来源于多个源库,通过数据对比可以验证数仓中的数据是否准确反映了源库中的原始数据,从而确保数据分析和决策的准确性。
  2. 数据完整性检查

    • 数据对比有助于发现数仓中是否存在数据缺失或异常,确保数据的完整性。这对于数据分析和挖掘至关重要,因为不完整的数据可能导致错误的结论。
  3. 数据一致性维护

    • 在不同的业务系统或数据源之间,数据可能存在差异。通过数据对比,可以发现并解决这些差异,确保数仓中的数据在不同场景下保持一致。
  4. 数据质量提升

    • 数据对比是数据质量管理的重要环节。通过对比,可以发现数据质量问题(如错误、重复、缺失等),并采取相应的措施进行修正和改进。

       ② 常用方法 

  1. 行数对比

    • 对比源库和数仓中相同表的行数,以检查是否存在数据丢失或重复。这可以通过SQL语句中的SELECT COUNT函数来实现。
  2. 内容对比

    • 对比源库和数仓中相同表的数据内容,确保数据的准确性和一致性。这可以通过逐行比对数据或使用特定的数据对比工具来完成。
  3. 维度交叉对比

    • 在多维度的数据场景下,可以通过交叉对比不同维度下的数据汇总结果,以检查数据的一致性和准确性。例如,对比不同时间段、不同区域或不同产品线的数据汇总结果。
  4. 实时对比与离线对比

    • 根据业务需求,可以选择实时对比或离线对比。实时对比适用于对数据实时性要求较高的场景,而离线对比则适用于对数据实时性要求不高的场景。在实时对比中,可以使用数据流处理技术来实时同步和对比数据;在离线对比中,则可以使用批处理技术来定期同步和对比数据。
  5. DQC校验

    • DQC(Data Quality Check)校验是一种常用的数据质量检查方法。通过预设的检查规则和算法,对数据进行唯一性验证、最大/最小值验证等,以确保数据的准确性和合规性。

二、实际案例

        本次我们以OA系统中,我们常见的我们发起的流程,还没走完,然后被退回或者异常终止,然后被发起人删除的场景,刚开始我以为只是状态的改变,后面经过仔细分析,确实OA系统存在物理删除的操作,这导致我们进行OA流程分析的时候,推送提醒了很多异常的数据。比如这样,这样。

        因为频繁的出现,导致我不得不找OA负责人去分析原因,通过在OA系统里面查询对比,真的是被物理删除了,因此想到的解决方案就是通过新旧数据对比来标记数仓里面被删除的OA流程,然后进行过滤,来保证数据的一致性。

三、实现思路

         为了对比对应的数据,因此我们需要去定义比较数据的范围时,对比的主键(指标)。在本次数据对比中,我们通过对比近3个月的数据及通过ID作为主键进行对比,具体作业如下图所示。

        如上图所示,我们更新数据源近90天数据,作为新数据,用存储在数仓里面的对应的表做旧数据。然后通过主键进行对比就能发现新旧数据的修改情况。

         这里需要注意的是旧数据的比较范围要相对小点,即新数据更新的是近90天的数据,旧数据应该是89天的,这样就能有效避免误判的情况。

        然后我们通过主键排序和合并记录的功能,将数据对比的结果输出到一个对比结果表里面,然后我们再通过一个更新程序去更新对应目标表的数据即可。具体更新程序如下图所示。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪款开放式耳机好用?5款实力出众的开放式耳机按头安利!

随着耳机市场日益火爆,许多品牌与款式不断涌现。但是,不少劣质产品在核心性能上缺乏专业优化,且选用低质材料,在音质还原度和佩戴舒适性等关键方面存在明显短板,导致性能欠佳,聆听体验不佳,还可…

Unity资源打包Addressable资源保存在项目中

怎么打包先看“Unity资源打包Addressable AA包” 其中遗留一个问题,下载下来的资源被保存在C盘中了,可不可以保存在项目中呢?可以。 新建了一个项目,路径与“Unity资源打包Addressable AA包”都不相同了 1.创建资源缓存路径 在…

矩阵的各种计算:乘法、逆矩阵、转置、行列式等——基于Excel实现

在Excel中,可以使用内置的函数和公式来实现矩阵的各种计算。以下是具体方法: 矩阵乘法: 使用MMULT函数。如图矩阵A在单元格范围A1:B2,矩阵B在单元格范围D1:E2,结果矩阵的左上角单元格为G1:选中结果矩阵的区域(如G1:H2)。输入公式:=MMULT(A1:B2, D1:E2)。按Ctrl+Shift…

[ComfyUI]Flux:繁荣生态魔盒已开启,6款LORA已来,更有MJ6写实动漫风景艺术迪士尼全套

今天,我们将向您介绍一款非常实用的工具——[ComfyUI]Flux。这是一款基于Stable Diffusion的AI绘画工具,旨在为您提供一键式生成图像的便捷体验。无论您是AI绘画的新手还是专业人士,这个工具都能为您带来极大的便利。 在这个教程中&#xff…

【设计模式】关联关系与依赖关系

UML 图将事物之间的联系分为 6 种:关联、依赖、聚合、组合、泛化、实现 我认为关联关系和依赖关系非常不好理解。 我们看下定义: 关联:表示一种拥有的关系。具有方向性。如果一个类单方向的访问另一个类,称为单向关联。如果两个类…

前端Cypress自动化测试全网详解

Cypress 自动化测试详解:从安装到实战 Cypress 是一个强大的端到端(End-to-End, E2E)功能测试框架,基于 Node.js 构建,支持本地浏览器直接模拟测试,并具有测试录屏功能,极大地方便了测试失败时的…

#渗透测试#SRC漏洞挖掘#云技术基础02之容器与云

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

Android 下内联汇编,Android Studio 汇编开发

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。 1. 基础语法 内联汇编在 C/C …

深入剖析【C++继承】:单一继承与多重继承的策略与实践,解锁代码复用和多态的编程精髓,迈向高级C++编程之旅

​​​​​​​ 🌟个人主页:落叶 🌟当前专栏: C专栏 目录 继承的概念及定义 继承的概念 继承定义 定义格式 继承基类成员访问⽅式的变化 继承类模板 基类和派⽣类间的转换 继承中的作⽤域 隐藏规则 成员函数的隐藏 考察继承【作⽤…

RHCE的学习(16)(shell脚本编程)

第一章、shell入门基础 1.1 为什么学习和使用Shell编程 对于一个合格的系统管理员来说,学习和掌握Shell编程是非常重要的。通过编程,可以在很大程度上简化日常的维护工作,使得管理员从简单的重复劳动中解脱出来。 Shell程序的特点&#xff…

信号量和线程池

1.信号量 POSIX信号量&#xff0c;用与同步操作&#xff0c;达到无冲突的访问共享资源目的&#xff0c;POSIX信号量可以用于线程间同步 初始化信号量 #include <semaphore.h> int sem_init(sem_t *sem, int pshared, unsigned int value); sem&#xff1a;指向sem_t类…

docker运行ActiveMQ-Artemis

前言 artemis跟以前的ActiveMQ不是一个产品&#xff0c;原ActiveMQ改为ActiveMQ Classic, 现在的artemis是新开发的&#xff0c;和原来不兼容&#xff0c;全称&#xff1a;ActiveMQ Artemis 本位仅介绍单机简单部署使用&#xff0c;仅用于学习和本地测试使用 官网&#xff1a;…

区块链技术在电子政务中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 区块链技术在电子政务中的应用 区块链技术在电子政务中的应用 区块链技术在电子政务中的应用 引言 区块链技术概述 定义与原理 发…

【AI换装整合包及教程】CatVTON与其他虚拟试衣技术的详细对比

一、概述 虚拟试衣技术近年来发展迅猛&#xff0c;尤其在电商领域的应用备受瞩目。CatVTON作为一种新兴的虚拟试衣技术&#xff0c;凭借其轻量化设计和高效训练策略脱颖而出。本文将从网络结构、训练策略、推理过程及应用场景四个方面详细对比CatVTON与其他主流虚拟试衣技术。…

图论基本术语

图论算法 —— 图论概述-CSDN博客 理论基础 —— 图_依附于顶点v是什么意思-CSDN博客 理论基础 —— 图 —— 图的存储结构_十字链表和链式前向星-CSDN博客 语雀版本 概括&#xff1a;图是计算机中常用的一种存储结构&#xff0c;图论是数学的一个分支&#xff0c;他以图为…

ffmpeg内存模型

文章目录 展示图拷贝packet 重要&#xff01;&#xff01;&#xff01;avpacket.c相关函数av_packet_alloc 简单的赋值 里面的还有没有进行初始化的指针av_packet_ref 展示图 拷贝packet 拷贝packet有两种情况 1&#xff1a; 两个packet的buf引用的是同一个数据缓冲空间&#…

NCC前端调用查询弹框

系统自带的查询模板 弹框 调启使用默认的 查询模板 是在 单据模板的 列表模板中&#xff0c;有个查询区域 &#xff0c;查询区域就是查询模板内容如果在列表页做客开 新增按钮 调启查询模板 无问题&#xff0c;但是目前需求是需要再卡片页面下调启系统标准的调启模板代码 //调…

Python用CEEMDAN-LSTM-VMD金融股价数据预测及SVR、AR、HAR对比可视化

全文链接&#xff1a;https://tecdat.cn/?p38224 分析师&#xff1a;Duqiao Han 股票市场是一个复杂的非线性系统&#xff0c;股价受到许多经济和社会因素的影响。因此&#xff0c;传统的线性或近线性预测模型很难有效、准确地预测股票指数的价格趋势。众所周知&#xff0c;深…

企业如何提高团队管理的能力?

企业如何提高团队管理的能力&#xff1f; 在当前竞争日益激烈的市场环境中&#xff0c;企业的成功不再仅仅依赖于个体的卓越能力&#xff0c;而是越来越多地依赖于团队的整体效能。一个高效、协作、富有创新精神的团队&#xff0c;能够激发员工的潜能&#xff0c;推动企业不断…

场景解决之mybatis当中resultType= map时,因某个字段为null导致返回的map的key不存在怎么处理

1、场景:通过查询数据表将返回结果封装到map当中返回,因某个字段为null,导致map当中key丢失 <select id"queryMyBonus" parameterType"com.cn.entity.student" resultType "map">SELECTb.projectName as "projectName",b.money…