当前位置: 首页 > news >正文

ETL核对

ETL:本身就是缩写,全称是 Extract, Transform, Load(抽取、转换、加载)。ETL核对指的是在ETL(抽取、转换、加载)过程的前、中、后各个阶段,对数据的准确性、完整性和一致性进行检查与验证的一系列活动。

它的核心目的不是简单地搬运数据,而是确保搬运过程中的数据是正确、可信的


ETL核对的三个主要阶段

1. 抽取后的核对 - 确保“拿对了、拿全了”

在从源系统(如业务数据库、日志文件)抽取数据后立即进行。主要回答:“我拿到的原始数据是否完整和准确?”

  • 数据量核对:今天抽取的记录总数,与源系统同期记录数是否一致?环比、同比是否在合理波动范围内?
  • 字段非空核对:关键业务ID(如order_id, user_id)是否存在空值?
  • 唯一性核对:关键业务ID是否有重复?例如,同一个bill_no不应该出现两次。
  • 值域核对:字段值是否在预期范围内?例如,“状态”字段是否只包含已知的"COLLECTING", "CLOSED"等。
2. 转换中的核对 - 确保“洗对了、算对了”

在数据清洗、业务规则计算过程中进行。这是最复杂、业务逻辑最密集的核对阶段。主要回答:“我的转换逻辑是否正确应用了?”

  • 业务逻辑核对您提供的SQL就是这个阶段的典型例子!
    • 业务逻辑:一个案件如果状态是“催收中”且逾期本金大于0,那么它对应的账单应该是有未还金额的(即 charge_on_amount - charge_off_amount > 0)。
    • 核对逻辑:找出那些违反这个业务逻辑的数据(即 charge_on_amount - charge_off_amount = 0)。
    • 目的:发现系统间的数据不一致(催收系统状态未及时更新)或数据错误。
  • 数据映射核对:代码转换是否正确?例如,把源系统中的1/0正确映射为"是"/"否"
  • 数据关联核对:表连接(JOIN)后,是否有数据丢失或异常增多?例如,左连接bill_itemcollection_case_item_detail后,发现大量bill_item记录没有匹配到案件,这可能意味着数据关联关系有问题。
3. 加载前的核对 - 确保“能装进去、装进去后是对的”

在将数据加载到目标数仓表之前进行。主要回答:“加载后的数据是否符合目标要求?”

  • 主键/唯一键冲突核对:准备加载的数据,其主键是否在目标表中已存在?(这取决于你的加载策略是覆盖、更新还是追加)。
  • 目标表约束核对:数据是否符合目标表的NOT NULLCHECK等约束条件。
  • 数据一致性核对:核对跨表、跨系统的关键指标是否一致。例如,从订单系统汇总的总销售额,是否与财务系统记录的总收入大致吻合(考虑时间差等因素)。

ETL核对的常见方法与产出物

  • 统计值比对:比较源表和目标表的记录数、某字段的SUM、AVG、MAX、MIN等统计值。
  • 抽样比对:对关键数据表进行记录级别的抽样,人工或通过脚本验证数据是否正确。
  • 稽核平台/工具:大型公司会建设专门的数据稽核平台,将上述核对逻辑配置化、任务化,定期运行并生成数据质量报告

产出物通常是数据质量报告:

ETL任务: bill_item_daily
执行时间: 2023-10-27 02:00:00
- 抽取阶段: 通过。记录数 1,000,052 条,与源系统一致。
- 转换阶段: **警告**。发现 125 条异常记录,违反“催收中案件应有未还金额”规则。
- 加载阶段: 通过。成功加载 999,927 条记录(125条异常记录已隔离至异常表)。
http://www.dtcms.com/a/564748.html

相关文章:

  • Hangfire 入门与实战:在 .NET Core 中实现可靠后台任务处理
  • python ppt转pdf以及图片提取
  • 大连做公司网站的公司用php做网站要用什么软件
  • 中国建设银行网站口公关工资一般多少钱一个月
  • 线性矩阵不等式 (LMI)
  • 基于无六环H校验矩阵和归一化偏移minsum算法的LDPC编译码matlab性能仿真
  • Linux DMA 技术深度解析:从原理到实战
  • PsTools 学习笔记(7.14):PsFile——谁占用了我的文件?一键查清并安全释放
  • 企业级数智化解决方案:行云创新 AI-CloudOS 产品矩阵引领转型价值落地
  • 华为发布Atlas 900 DeepGreen AI服务器:单机柜100PF算力重构AI训练基础设施
  • 线性代数 - 矩阵求逆
  • 什么网站做生鲜比较好企业网站建设注意什么
  • 前端技术栈 ——nvm与Node.js环境安装
  • 具身智能(一)关于VLA模型π0
  • 企业门户网站的意义做淘宝的人就跟做网站一样
  • 私人做网站图片企业网站的建设与维护是什么
  • Enterprise architect工具绘制活动图时如何使用Call Behavior Actions
  • 华为openEuler 22.03 (LTS-SP3) 手动安装单点clickhouse
  • 用docker搭建selenium grid分布式环境
  • App 上架苹果商店全流程详解 从开发者账号申请到开心上架(Appuploader)跨平台免 Mac 上传实战指南
  • SpringBoot中使用tess4j进行OCR(在macos上面开发)
  • Debian开发板3568配置打印机驱动
  • 基于 Debian 服务器的前端项目部署完整教程
  • Debian 服务器环境搭建全指南:从工具选型到项目部署实战
  • app网站如何做推广方案山东进一步优化
  • 长沙网站关键词seo苏州建设工程招投标网
  • 【数据结构】二维数组中的元素查重
  • 软件设计模式(tyutJAVA 状态模式实验)
  • 【LeetCode】最大连续1的个数 III
  • Java 中 组合 (Composition)、接口 (Interface) 和 委托 (Delegation) 这三个概念的区别