数据晚到或者历史数据有变化(数仓场景)

刘超 13天前 ⋅ 97 阅读   编辑

一、描述

  历史数据变更:我们会从波兰bigquery拉取收入数据与我们这边通过impr、click、install计算的收入汇总到一起。我们发现从波兰拉取的历史数据会变化,例如20200322上午拉取20200321号的数据,下午再拉取20200321数据,发现和上午时的不一样了。业务明确表示,这种场景是正常的,所以我们得重新拉取,从新计算 😢

  数据晚到:一朋友问,他们有这样场景,他们是按业务日期来做统计的,所以昨天的数据可能会有几条前天的数据,造成这种情况的原因有很多,比如kafka消息堆积等等,这里不讨论什么原因导致的,咱们讨论一下出现这种情况该怎么处理,比如20200320的数据出现20200318的数据,怎么处理

二、聊聊

  1、首先既然数据变了,肯定要重跑任务。但是这个代价怎么才能最小,就因为一点数据异常,那天的数据重新计算一遍,不仅浪费集群资源,还会影响当前正在跑的任务;

  2、像上面这些场景,不会仅出现一次,很可能隔三差五就出现,即需要人为盯着,又需要手动重跑相关任务,这样既浪费时间又费精力,但又不得不跑。当然可以弄些脚本啥的,监控数据,出现这类情况,发邮件通知

  3、在想怎么才能避免重算???

三、方案

  方案一、就是重新计算那天的数据,现在我们也是采用这种方式

  方案二(这种只是一种设想,还没验证过)、我们在数仓时,分了ODS、DWD、DWS等层,其中ODS保留原始数据,DWS存储

  


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: