java olap_如何进行OLAP分析?

Hive提供了多维数据分析的函数,如GROUPING SETS,GROUPING_ID,CUBE,ROLLUP,通过这些分析函数,可以轻而易举的实现多维数据分析。

下面会对这些函数的具体含义简单地介绍一下:

注意:在hive中使用这些函数之前,要确保开启了map端聚合,即set hive.map.aggr=true,否则会报错。

1、GROUPING SETS

在一个group by查询中,通过该子句可以对不同维度或同一维度的不同层次进行聚合,简单理解为一条sql可以实现多种不同的分组规则,用户可以在该函数中传入自己定义的多种分组字段,本质上等价于多个group by语句进行UNION,对于GROUPING SETS子句中的空白集'()'表示对总体进行聚集。

2、GROUPING__ID

当使用聚合时,有时候会出现数据本身为null值,很难区分究竟是数据列本身为null值还是聚合数据行为null,即无法区分查询结果中的null值是属于列本身的还是聚合的结果行,因此需要一种方法识别出列中的null值。grouping_id 函数就是此场景下的解决方案。注意该函数是有两个下划线。这个函数为每种聚合数据行生成唯一的组id。

3、ROLLUP

通用的语法为WITH ROLLUP,需要与group by一起用于在维的层次结构级别上计算聚合。功能为可以按照group by的分组字段进行组合,计算出不同分组的结果。

4、CUBE

CUBE表示一个立方体,apache的kylin使用就是这种预计算方式。即会对给定的维度(分组字段)进行多种组合之后,形成不同分组规则的数据结果。一旦我们在一组维度上计算出CUBE,就可以得到这些维度上所有可能的聚合聚合结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值