Hive
文章平均质量分 76
mashroomxl
这个作者很懒,什么都没留下…
展开
-
Hive.WHERE子句的“陷阱”
前天遇到这样一个场景: Hive数据仓库里有一个用户访问日志表my_table,这个表对日期字段date (String类型)进行了分区。此外,这个表还有一个字段page_id(Int类型),假定page_id = 9是一个特殊页面。 比如我现在要针对日期范围2014-03-17到2014-03-23内去查询每天的UV,并且需要排除对以上提到的特殊页面的统计。那我原创 2014-03-26 23:18:13 · 22793 阅读 · 4 评论 -
Hive.GROUP BY子句的“陷阱”
做SQL或类SQL查询工作,跟GROUP BY打交道太频繁了,使用人士应该都晓得:在SELECT子句中出现的字段或属性,如果不是在聚合函数中,那就必须要放到GROUP BY子句里面去,反过来,没有出现在GROUP BY子句中的字段或属性,只能在聚合函数中。。。。。。 有时候,我们也需要对一个字段/属性作处理,假设有这样一个场景:在Hive数据库里有表my_table,my_ta原创 2014-03-25 19:55:45 · 27242 阅读 · 9 评论 -
Hive.LEFT SEMI JOIN子句
公司的数据仓库和离线数据分析是建立在Hadoop + Hive基础上的,现在的工作主要是数据分析,自然也就跟HQL查询经常打交道了。刚来公司几乎完全不懂数据库知识,神马结构化查询语言也只是听说而已,不过,这没关系,实际工作一来,学习起来还是很快~~ 年前有一个同事叫帮忙查某个产品的月度留存UV这个数据,当时业务不熟,还去参照了一下别人是怎么定义留存用户这个指标的。。。然后根据自己原创 2014-03-09 15:51:43 · 10073 阅读 · 0 评论 -
Hive.分组排序和TOP
HQL中的order by子句执行的排序操作始终是全局的,我们有时候想要的却是分组排序,即按fieldA排序以后,然后针对fieldA的每个值所对应的fieldB和(或)fieldC排序,而不是像order by那样,针对所有fieldA的值对fieldB和(或)fieldC排序。原创 2014-04-16 18:09:53 · 19072 阅读 · 3 评论 -
Hive.GROUPING SETS的“陷阱”
HQL查询中,对GROUPING SETS出来的数据与其它数据进行连接操作时,需要小心处理数据过滤的问题。而且,需要注意的还有,grouping__id这个函数的返回值不是整型,是字符串。原创 2014-04-06 11:20:33 · 8578 阅读 · 1 评论 -
Hive.GROUPING SETS
如果说聚合函数(Simple UDAF / Generic UDAF)是HQL聚合数据查询或分析的中枢处理器,那GROUP BY可以说是聚合函数的神经了,GROUP BY收集和传递材料,然后交给聚合函数们去处理。这些材料的组织形式显得尤为重要,它们表达着分析者想要的观察维度或视角,管理着聚合函数们的操作对象。 而分析者经常想要在一次分析中从多个维度去获得分析数据,对包含多个维度或多原创 2014-03-30 11:45:36 · 28574 阅读 · 2 评论 -
Hive.GROUPING SETS有BUG?
随着Hive 0.10版的发布,GROUPING SETS出现了,并提供了ROLL UP和CUBE这两个特殊场景的子句,真是喜闻乐见的特性啊。不过最近在写两个HQL查询脚本的时候,GROUPING SETS子句里出现的元素名称或表达式有形式上的限定呢!似乎和Java里switch...case的case子句对枚举值名称有一样的限制。原创 2014-04-27 17:08:01 · 6438 阅读 · 2 评论