saiku限制日期查询

saiku在公司内部推广开来之后,得到了产品、运营、策略等同事一致好评,由此带来了一大波需求,就连打点、日志数据的需求都来了,笔者觉得这种数据不适合用来做多维分析,但是迫于公司内部压力,又不得不做,只好硬头皮上了;日志类型的数据每天大概有几个亿条,对kylin的压力太大(目前kylin集群只有3台),由此只好限制用户查询数据时间的跨度;在大数据量的情况下,估计网友也会有这种情况的,由此笔者把自己的思路与实现方式分享出来,或许有其它更好的实现方式,望网友不吝赐教;

方案选择
经过分析saiku的代码,结合笔者使用saiku的经验,笔者针对这个问题想到了3个方向:
1.直接在MDX语句上加入限制条件 ;
2.在MDX转换后的SQL上加上限制条件;
3.直接加入日期维度限制;
经过笔者持续研究,最终选择了方案3,;说下放弃方案1、2的理由:方案1,由于对MDX语法不太熟悉,而将前端的参数传到后台之后,转换出来的MDX语句,比较灵活多变,这时就需要判断多种情况了,此时便有可能不会兼顾所有的case;方案2与方案1有点类似,其实更甚,在SQL上添加限制条件其实就是在where后面加入and 【字段】的条件,经过mondrian之后转换出的sql可能会有多条,而且SQL的结构有可能不同,在where后面加入条件就需要考虑更多的case了(至于详细的分析过程,笔者就不在赘述了);

解决过程
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值