关于数据漂移的学习

数据漂移在数据仓库的ODS层中是一个常见问题,表现为时间戳不一致导致的数据错位或遗漏。文章分析了四种时间戳类型及其可能导致的漂移场景,并提出通过冗余数据和多重时间戳限制来缓解这一问题。解决方案包括向前、向后冗余数据以减少遗漏,以及结合多个时间戳字段来提高数据准确性。
摘要由CSDN通过智能技术生成

  数据漂移产生的原因

  通常我们把从源系统同步进入数据仓库的第一层数据成为ODS层数据,我们公司目前只有ODS一层,虽说只有一层,但是仍然有有一个顽疾:数据漂移,简单来说就是ODS表的同一个业务日期数据中包含前一天或者后一天凌晨附近的数据或者丢失当天的变更数据。更新表来说会丢失变更数据,流水表一般会丢失上一天数据,或者说上一天数据漂移到下一天。

  由于ODS需要承接面向历史的细节数据查询需求,这就是需要物理落地到数据仓库的ODS表按时间段来进行分区存储,通常的做法是按某些时间戳字段来切分,二实际上往往由于时间戳字段的准确性问题导致发生数据漂移。当然我们目前切分的字段是datetime类型的updatetime字段。

  通常时间戳字段分为四类:

  (1)数据库表中用来表示数据记录更新时间的时间戳字段(假设这类字段叫modified_time);

  (2)数据库日志中用来表示数据记录更新时间的时间戳字段(假设这类字段叫log_time);

  (3)数据库表中用于记录具体业务过程发生时间的时间戳字段(假设这类字段叫proc_time);

  (4)标识数据记录被抽取到时间的时间戳字段(假设这类字段叫extract_time)当然这种还是比较少用的;

  理论上这几个时间应该是一致的,但是在实际生产中,这几个时间往往会出现差异,可能的原因有以下几点:

  (1)由于数据抽取是需要时间的,extract_time往往会万余前三

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值