开发者社区> 问答> 正文

我有一个应用场景,想请教下大家有没有遇过,有什么好的方案?

hi,社区的小伙伴,大家好!我有一个应用场景,想请教下大家有没有遇过,有什么好的方案。 > 场景就是:按照user和day的维度统计订单表里的有效订单数,同时存在历史的订单状态随时可能被更新,比如可能当前把2个月前的订单状态置未true,所以没法根据历史结果预统计,翻译称sql就是select user,day,count() from table where state = true group by user,day;目前我已经用flink-sql-cdc-connector实现了,但是有一个问题就是state,因为按user day组合 那么如果全部状态都保存后期回越来越大,但是如果设置ttl,那么如果历史订单变化,最终更新出去的值也不对。 > 希望社区的小伙伴给我出出主意来自志愿者整理的flink邮件归档

展开
收起
游客sadna6pkvqnz6 2021-12-07 17:36:35 910 0
1 条回答
写回答
取消 提交回答
  • 我觉得我们遇到的问题有些类似,看下我们的方案对你是否有所帮助。首先,我们会把day这个条件控制在3天(select * where day >now-3),状态的TTL也是3天,即flink保留3天的状态,这样即使有3天前的数据到来也不会更新我们的结果表;这样可以解决更新错误的问题。然后,通过离线任务来定时修正3天前的结果数据。这样可以保证数据的最终一致性。*来自志愿者整理的flink

    2021-12-07 21:38:08
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据运营系统的核心应用场景实现方案浅析 立即下载
企业级安全加速-技术架构以及核心能力解析 立即下载
HTAP能力持续增强 立即下载