历史数据清洗(数据治理)需要关注的问题

news/2025/2/25 20:40:44

历史数据清洗(数据治理)

如果有基本了解的可以直接看总结

事务与幂等性

  • 使用事务(Transaction)

    • 若数据量大且涉及多表更新,尽量使用 批量提交(如每 1000 条提交一次)来提高效率,避免单条提交影响性能。

    • 避免长事务,防止锁表或数据库性能下降。

  • 保证幂等性

    • 处理数据时,避免重复执行导致数据异常,比如 先检查数据是否已被处理 再执行操作。

    • 可使用 唯一标识字段(如 processed_flag)或 日志记录 追踪处理进度。

清洗规则制定

  • 脏数据处理(最好查询时就排除大量的脏数据,脏数据太多代码是写不过来的)
  • 缺省字段处理(默认值)
  • 字段格式规范(日期、金额等)

性能

  • 大数据量分批处理

    • 避免一次性加载所有数据,可采用分页查询或分批更新(如 LIMIT 1000 OFFSET 0)。
    • 可采用 多线程并行清洗,但要注意数据一致性和锁冲突。
  • 使用索引加速查询

    • 确保 查询条件字段(如 ID、时间)有索引,避免全表扫描导致性能下降。
      避免死锁。
    • 避免多个进程并发更新同一条数据,必要时可加锁或分批处理。

记录数据清洗日志

  • 推荐直接记录日志文件,容查找追溯

异常回滚机制

  • 记录已处理 ID,只对未处理的数据重试。
  • 将错误数据存入 error_log 表,后续手动修复或自动重试。

总结-问题解决方案

  1. 数据清洗过程被中断的解决方案
    记录日志,例如记录已处理数据的 ID 或其他可区分的字段。
    在表中增加 标识字段,标记已清洗的数据行,并 按标识字段排序 进行清洗,以便恢复时能准确找到中断点。
    重新执行时,基于中断点设置相应条件,确保数据连续清洗。

  2. 如何处理错误数据
    数据本身错误:
    记录日志文件,包括错误原因和 主键 ID,以便后续分析和修正。
    程序执行错误:
    记录日志,包括错误原因和 主键 ID,便于后续重试。
    若涉及 随机数冲突 等问题,可基于错误数据重新执行修复逻辑。

  3. 接口需要的条件
    ID 方式:
    例如 “1232,4343,54545”,接口返回异常 ID,修改后可直接重新执行。
    时间方式:
    通过 创建时间 或其他时间字段,在中断时标记断点,后续清洗时从该时间点继续。
    也可使用 ID 方式,但查询时需 确保正确排序,避免数据遗漏或重复。

  4. 记录原始ID,清洗完成后可以进行 数据完整性校验,确保数据没有丢失或遗漏。


http://www.niftyadmin.cn/n/5865930.html

相关文章

【LeetCode Hot100】搜索二维矩阵 II[特殊字符]二分查找 vs 线性搜索,Java实现,图解+代码

💻 [LeetCode Hot100] 搜索二维矩阵 II🔥二分查找 vs 线性搜索,Java实现,图解代码 ✏️本文对应题目链接:搜索二维矩阵 II 📌 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 targ…

采用TypeHandler对隐私数据自动加解密

前言 当我们写项目的时候,要对隐私数据进行加密和解密操作,可以不用每次都手动去写加密解密的代码,可以用Mybatis的TypeHandler来解决。 TypeHandler 具体意思就是,当我们处理某些特定字段时,可以在这个类里面实现一…

前端面试题---vue和react的区别

文章目录 框架 vs 库:学习曲线:模板 vs JSX:数据绑定:状态管理:性能:社区支持: 框架 vs 库: Vue 是一个完整的框架,提供了从模板到状态管理的全套解决方案;R…

全面理解-深拷贝与浅拷贝

在 C 中,深拷贝(Deep Copy) 和 浅拷贝(Shallow Copy) 是两种完全不同的对象拷贝策略,主要区别在于对指针和动态分配资源的处理方式。正确理解二者的区别是避免内存泄漏、悬空指针和程序崩溃的关键。 一、核…

人工智能 阿里云算力服务器的使用

获取免费的阿里云服务器 阿里云免费使用地址: https://free.aliyun.com/ 选择 人工智能平台 PAI 选择交互式建模 再选建立实例。 选择对应的GPU 和镜像,点击确认。 注意:250个小时,用的时候开启,不用的时候关闭&…

虚拟机PING不通百度?NAT是什么?什么仅主机?

在虚拟机经常遇到一些网络问题,我也遇到了很多问题,在经过无数次试错后,我对这些有了一定的了解,和解决方式,下面我来谈谈我的经验,如有错误,请轻喷 下面都是我的口语,非正式&#…

LabVIEW中CFURL.llb 工具库说明

CFURL.llb 是 LabVIEW 2019 安装目录下 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\ 路径下的工具库,主要用于处理 LabVIEW 与 URL 相关的操作,涵盖 URL 解析、HTTP 请求发送、数据传输等功能模块,帮助开发者…

屏幕闪烁,相机能不能达到人眼视觉效果

你看着一个灯,光线稳定。然后你用相机拍照,结果发现有时并无光线。 你看着电子屏有字,用手机照相,只有部分字。如附图。 我想问,能不能从技术上改进,让照片、录像屏幕达到人眼视觉效果?