营销中心数据优化-当离线没有数据取redis

背景:用户的分日离线数据是数据部门每天统计完成后写入离线分日表中,那么写入的时候就会有时间差,大概凌晨-3点基本用户是看不到昨日的数据的,为了优化这个痛点,我们做了优化当昨日离线没有值的时候,我们会去redis实时数据(生命周期是3天都有)。虽然是业务相关的,但也体现了商业广告数据统计的维度:1.商品分天维度(一个商品按天统计-离线数据)。2.商品分时维度(一个商品一天各小时数据数据-离线/实时)。3.用户产品类型维度(该用户所有商品的推广数据)。

取数据逻辑:

有离线取离线,离线没有就会取缓存。

1.离线有数据:

当离线表有数据的时候,使用数据中心查看分成3中场景

场景1:只选择日期,不选择商品,日期开始结束不是同一天

离线数据取自 tdb_adstat.daily_data_adproduct_promote

造数据如图:

adstat日志,查询入参

返回结果:

场景2:选择日期,开始结束为同一天,不选择商品

数据中心查询如图:

数据取自tdb_adstat.hourly_data_adproduct_promote,如图:

adstat查询日志

结果返回:

场景3:选择日期,选择商品,日期开始结束不是同一天

离线数据取自tdb_adstat.daily_data_product_promote表,该表示按照promotionId查询,注意区分promotionid对应优店通查询条件

数据库造数据如图:

adstat查询日志

2.没有离线数据:

场景1:只选择日期,不选择商品,日期开始结束不是同一天

保证离线数据查询日志没有,在操作redis设置分日缓存

页面返回:

场景3:选择日期,选择商品,日期开始结束不是同一天

首选保证离线表没有数据,然后操作redis设置分日缓存(这种按日期取直接取分日缓存,不会sum分时缓存,同时缓存key设置按照promotionid)

redis造数据如图:

返回结果:

测试点:

除了redis的key要写对,有一些是到分日的,有一些是分时的,还有就是场景:离线没有取redis->离线有了取离线,有个动作变化,其他没有了。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值