开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

想问一下有没有大佬知道,因为ods层数据变更导致计算出的每日统计不对,这个问题有没有解决方案?正常情

想问一下有没有大佬知道,因为ods层数据变更导致计算出的每日统计不对,这个问题有没有解决方案?正常情况每天汇总计算的数据不会变更的,但是业务带来的数据变更导致的汇总计算不对了要怎么搞?比如退款,今天买后天退,肯定会带来汇总计算的结果不对的影响。

展开
收起
十一0204 2023-04-03 17:14:19 297 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    1、增量计算

    如果每日统计数据量不大,可以采用增量计算的方式来处理数据变动,而不是每次都重新计算。具体操作可以通过在每次计算时根据变动表进行增量统计。

    2、定时全量计算

    如果每日统计数据量比较大,增量计算的效率较低,则可以采用定时全量计算的方法。在业务相对比较闲时,设置一个定时任务,对全量数据进行统计。

    3、数据重跑

    如果变动较大,增量计算的效果还不如全量计算,可以通过“数据重跑”功能重新计算每日统计。具体操作是删除现有的每日统计数据,重新运行任务进行计算。但需要注意,重跑任务对系统资源和业务容灾性等要求较高,需要谨慎操作。

    2023-04-24 16:45:02
    赞同 展开评论 打赏
  • 意中人就是我呀!

    数据量不太大就全量计算。 ADS使用A+B的统计模式,小表实时计算,A表是原任务跑定结果,B表是修正任务跑定结果,在出现退款,异步数据的时候触发。 如果统计口径需要退到支付日期。 那这个数据是一个长期变化的值 特别是订单没有生命周期的情况下,A+B的方式非常复杂, 一种方式就是拉链 做统计的是时候过滤最新状态 一种方式是 直接在dws做全量日汇总的计算 牺牲点计算资源。在不是非常大的数据的情况下这种方式可以试试 ,如果仅仅是按自然日做支付和退款统计 可以直接分开计算 做A-B的方式。此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-04-05 09:11:05
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    这个问题是非常常见的,通常可以通过以下几种方式来解决:

    1、将每日统计的数据备份:当每日统计的数据变更时,可以通过备份数据的方式来保留历史数据。这样就可以在计算出现问题时,回溯到历史数据进行重算或比对分析。

    2、实时处理变更数据:对于实时变更的数据,需要实时对每日统计进行更新,以确保每日统计的准确性。可以使用触发器或者定时任务的方式来实现数据的实时更新。

    3、使用时间维度和快照表:引入时间维度和快照表,以记录每个数据的时间变化情况。在进行每日统计时,使用最新的数据和时间维度进行计算,以确保准确性。这种方法需要对数据模型进行相应的调整。

    4、使用事实表和维度表:引入事实表和维度表,将每日统计的数据和维度信息进行分离。每次数据变更时,只需要更新相应的事实表数据,而不需要更新维度表,以提高计算效率和准确性。

    需要根据具体业务情况和数据特点选择合适的方法,并对数据模型和计算逻辑进行相应的调整。同时,需要对数据变更进行严格的控制和日志记录,以便快速定位和解决问题。

    2023-04-03 17:42:42
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载