Debezium系列之:记录一次数据库某张表部分数据未同步到hive表的原因

Debezium系列之:记录一次数据库某张表部分数据未同步到hive表的原因

一、背景

  • 反馈mysql数据库中某张表的数据没有同步到hive中,现在需要排查定位下原因

数据丢失一般常见需求排查的方向:

  • 数据是否采集到hdfs上
  • 采集到hdfs的话,进一步去确认数据是否是因为Spark任务资源不够导致没有加载到hive表中
  • 数据没有采集到的话,进一步定位分析没有采集到的原因,目前比较常见的是数据库原因导致、业务场景导致

二、查找数据丢失流程

  • 首先拿一条丢失数据的id,去确认这条数据是否采集到hdfs上,发现成功采集到了hdfs上
  • 观察hdfs文件生成时间,发现这张表的数据文件生成时间比较晚
    • 初步判断出现了数据库主从延迟或者采集延迟,但是spark任务会等到主从延迟或者采集延迟结束才会执行,这样应该能确保不会遗漏数据,进一步确认任务执行情况
    • 发现spark任务并没有出现延迟执行的情况,因此就出现了特殊情况
  • 再去查看数据库中其他表的采集情况,发现其他表的hdfs数据文件生成并没有延迟,这就说明只有这张数据丢失的表产生了采集延迟,进一步排查分析这张表
  • 发现丢失数据这张表近一天的hdfs文件生成时间是在同一时间点生成的,这表明近一天的数据是在同一时间采集到了hdfs
  • 查看这张数据丢失表数据情况,发现这张表在不同小时的数据工用了相同的gtid,这表明这些数据来自同一个事件
  • 进一步查看数据库其他表在不同小时gtid的情况,通过比较gtid,发现丢失数据这张表使用的gtid符合递增情况
  • 至此,基本找到数据没有加载到hive的原因
  • <

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 01:26:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 01:26:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 01:26:02       57 阅读
  4. Python语言-面向对象

    2024-07-10 01:26:02       68 阅读

热门阅读

  1. postman

    postman

    2024-07-10 01:26:02      20 阅读
  2. Redis

    Redis

    2024-07-10 01:26:02      20 阅读
  3. [Linux安全运维] Linux命令相关

    2024-07-10 01:26:02       26 阅读
  4. PCL 点云最小外接球形包围盒

    2024-07-10 01:26:02       20 阅读
  5. Pytest单元测试系列[v1.0.0][高级技巧]

    2024-07-10 01:26:02       19 阅读
  6. CLIP-EBC:通过增强的逐块分类,CLIP能够准确计数

    2024-07-10 01:26:02       24 阅读
  7. #pragma 指令

    2024-07-10 01:26:02       24 阅读
  8. C++休眠的方法

    2024-07-10 01:26:02       24 阅读
  9. Spring容器加载Bean和JVM加载类

    2024-07-10 01:26:02       21 阅读
  10. word 使用手册

    2024-07-10 01:26:02       30 阅读
  11. winform4

    winform4

    2024-07-10 01:26:02      25 阅读