对数据漂移的一些小思考

本文探讨了数据仓库中数据漂移的问题,分析了由于通道延迟和特殊业务场景导致的数据丢失。提出了延迟重传、更换时间切分字段、前后冗余和多时间字段共同限制等解决方案,强调在不同业务场景中解决数据漂移的挑战。
摘要由CSDN通过智能技术生成

一、前言

最近在ETL工作中遇到了一些数据漂移的问题,写在这里权当做一个记录以及自己的一些思考。

二、什么是数据漂移

通常我们把从源系统同步进入数据仓库的第一层数据成为ODS层,数据漂移是一个很容易发生的现象。通常指ODS的表在同一个业务日期数据中包含前一天或者后一天凌晨附近的数据或者丢失当天的变更数据。
在大数据领域有另外一个东西名字很相近,叫数据倾斜。当然他们完全不是一码事,关于数据倾斜的问题,如果我不偷懒的话会在不远的将来也写一篇博客阐述一番我的理解。

三、我们遇到了什么问题

ODS层往往承接了面向历史的细节数据查询需求,为了查询性能落地到ODS层的数据需要进行切分存储,通常是按照时间维度–天来切分,实际上就是这个时间字段的准确性导致的数据漂移。

实际场景

公司主营短信业务,因此有了一张数据量庞大的短信记录表,这张表按照客户的发送时间来切分分区,字段为smt。实际上这张表里的时间字段非常多,因为整个业务场景就涉及到好几段流程,大概总结为:
客户提交短信请求 → 我们接受请求 → 路由寻找合适的通道 → 提交给运营商 → 运营商返回结果报告 → 匹配发送记录和返回报告 → 反馈给客户发送结果


可以想见,每一段子流程里都会有相应的时间字段。 选择使用客户的提交时间来做分区字段,也是为了贴近客户的实际体验。即某一天的短信记录明细就应该是客户提交给我们的那一天的所有短信。
实际上并不是这样,主要有两种场景导致了异样的发生:

1、通道延迟

我们接受到客户的短信请求后,到提交给运营商这段时间理论上是很

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值