全周期累计指标,在dm层用什么方式来支持报表查询
0
做数据经常遇到报表需要展示全周期累计值这种指标。我们有一个班级收入简单堆积表,记录班级每天的收入。
问题: 报表需要根据时间条件查询任意某天的累计收入(截止到某天之前所有收入的和),我们dm模型需要怎样支持这种需求??
我能想到的方案有三种:
1. 直接提供班级收入的简单堆积表,让报表开发人员自己去做累计。
优点:简单
缺点:可能需要对很大的数据进行合计
2.每天对所有班级的累计收入做一个快照
优点:不用计算
缺点:会有很大的空间浪费
3.做一个拉链表,来描述班级的累计收入
优点:节省空间,不用计算,但是得从拉链表取数
缺点:实现优点复杂, 最关键的是模型好像不像是标准的星形模型了
这个问题困扰我好长时间了 ,这种累计指标,大家都是怎么处理的
问题: 报表需要根据时间条件查询任意某天的累计收入(截止到某天之前所有收入的和),我们dm模型需要怎样支持这种需求??
我能想到的方案有三种:
1. 直接提供班级收入的简单堆积表,让报表开发人员自己去做累计。
优点:简单
缺点:可能需要对很大的数据进行合计
2.每天对所有班级的累计收入做一个快照
优点:不用计算
缺点:会有很大的空间浪费
3.做一个拉链表,来描述班级的累计收入
优点:节省空间,不用计算,但是得从拉链表取数
缺点:实现优点复杂, 最关键的是模型好像不像是标准的星形模型了
这个问题困扰我好长时间了 ,这种累计指标,大家都是怎么处理的
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-12-14 回答
赞同来自:
功能性需求:
1. 需求比较固定,比如就是按照本年累积,去年同期累积,季度,之类的对比分析
2. 需求是动态的,简言之就是随便每个阶段都可以动态累积对比
非功能需求:
1. 基础数据量大,而汇总后数据规模锐减
2. 并发多
3. 此类的需求是否可以合并,比如多张报表/分析均有此类需求,则建一张汇总表即可解决多张报表需求问题
技术方案的选择:
1. 传统RDBMS
2. 基于列存,或者MPP,内存数据库等为了OLAP而生的数据库
这几种情况的选择其实是不同的,如果是动态的对比需求,你预计算也没用;如果并发多,以及多张报表均有这类的需求,可能还是建立汇总表好一些;而如果你选择的数据库在汇总方面有很大的优势,也可以不考虑存储汇总数据,以上,具体问题具体分析。