请教数据仓库设计--数据更新记录怎么处理?
需求描述:
现有业务表一张:产品批次表batchTable,字段包括ID,产品ID pid,产品数量count,批次状态status,创建时间ctime,更新时间utime。
其中,产品数量,批次状态都可能更新,每次更新时同时更新utime记录。
统计任务:
因为涉及到多个系统集成,所以统计需要在数据仓库中进行。需要统计的数据包括以下几个:
1.从某一时刻 t 开始计算,最新的产品总数量
2.从某一时刻 t 开始计算,最新的各状态下批次总数量
公司可用的技术:
hadoop,hive,spark
问题:
1、当业务数据库中某一条批次记录的数量或状态发生更新后,数据怎么载入数据仓库?是将数据仓库中原记录进行更新还是新插入一条记录?如果是更新的话,因为要更新的数据占总数据的比例实在太低,在数据量大的情况效率很低。
2.、如果每次数据更新后新数据都作为一个快照新插入数据仓库的话,那每天的统计任务都要按全量数据进行统计才行,因为需要对数据仓库中的数据进行去重后拿到最新的数据进行统计,这样的话随着数据的积累,统计任务耗时会越来越长。
针对这种情况,数据仓库应该怎么设计才能满足任务需求同时又执行效率比较高?