hive 之 Cube, Rollup介绍】的更多相关文章

1. GROUPING SETS GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统维度,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起来. 为方便理解,以testdb.test_1为例: hive> use testdb; hive> desc test_1; user_id string      id                 device_id      string      设备类型:手…
说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统计选项,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起来,下面是几个实例可以帮助我们了解, 以acorn_3g.test_xinyan_reg为例: [dp@YZSJHL19-87 xjob]$ h…
cube  rollup NVL (expr1, expr2)->expr1为NULL,返回expr2:不为NULL,返回expr1.注意两者的类型要一致 NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2:为NULL,返回expr3.expr2和expr3类型不同的话,expr3会转换为expr2的类型 NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1…
在我们制作报表的时候常常需要分组聚合.多组聚合和总合.如果通过另外的T-SQL语句来聚合难免性能太差.如果通过报表工具的聚合功能虽说比使用额外的T-SQL语句性能上要好很多,不过不够干脆,还是需要先生成整个结果集然后再聚合,而且最最重要的时很多情况下报表的聚合功能可能没办法达到我们需要的效果.GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID这几个聚合函数的作用就是在原始语句的基础上完成很多像财务报表需要的聚合功能. GROUPING SETS相…
java常用数据格式转化,类似数据库group by cube rollup单循环一条sql返回格式如:List<Map<String, List<Record>>> List<Record> operationList = operationService.getByUserId(getCurrentUserId(), "qxpt");List<Map<String, Object>> showList = ne…
cube 数据立方体(Data Cube),是多维模型的一个形象的说法.(关于多维模型这里不讲述,在数据仓库设计过程中还挺重要的,有兴趣自行查阅) 立方体其本身只有三维,但多维模型不仅限于三维模型,可以组合更多的维度 为什么叫数据立方体? 一方面是出于更方便地解释和描述,同时也是给思维成像和想象的空间: 另一方面是为了与传统关系型数据库的二维表区别开来 下图为数据立方体的形象图 其实并不用把cube理解得很高大上,只要理解为分别按照不同维度进行聚合. hive中也有cube函数,可以实现多个任意…
参考:lxw大数据田地:http://lxw1234.com/archives/2015/04/193.htm 数据准备: CREATE EXTERNAL TABLE test_data ( month STRING, day STRING, cookieid STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile location '/user/jc_rc_ftp/test_data'; select…
例1: hive -e" select type ,status ,count(1) from usr_info where pt='2015-09-14' group by type,status grouping sets ((type,status),( type),()); ">one.txt Grouping sets按照各种指定聚类汇总方式,如group by type,status grouping sets ((type,status),( type),()) 表…
最近在优化一个报表系统.leader 提示我可以用cube函数.在此记录一下使用: 1) cube 简称数据魔方. 可以实现hive多个任意维度的查询. cube(a,b,c)  首先会对(a,b,c)进行group by,然后依次是(a,b),(a,c),(a),(b,c),(b),(c), 最后在对全表进行group by,他会统计所选列中值的所有组合的聚合. 也就是可以合并我们的一些组内group by系列任务. 2)案例:…
hive当中的数据存储格式: 行式存储:textFile sequenceFile 都是行式存储 列式存储:orc parquet 可以使我们的数据压缩的更小,压缩的更快 数据查询的时候尽量不要用select * 只选取我们需要的字段即可 hive的数据存储格式:用的比较多的一种行式存储 : textfile 用的比较多的列式存储: orc parquet 其中orc底层有自带的一种压缩算法,会对数据进行压缩的比较厉害 实际工作当中,很多时候,列式存储的数据格式都是选择orc或者parquet…
原文链接:https://blog.csdn.net/a2011480169/article/details/51482799…
firehose---clickhouse 在Hive中适不适合像传统数据仓库一样利用维度建模hive新功能 Cube, Rollup介绍https://blog.csdn.net/moon_yang_bj/article/details/17200367 大数据领域里面,实时分析(在线查询)系统是最常见的一种场景,通常用于客户投诉处理,实时数据分析,在线查询等等过.因为是查询应用,通常有以下特点:a. 时延低(秒级别).b. 查询条件复杂(多个维度,维度不固定),有简单(带有ID).c. 查询…
-- GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统计选项,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起来. select device_id ,os_id ,app_id ,count(user_id) from test_xinyan_reg group by device_id,os_id,app_id grouping sets((device_id),(os_id),(device_id,o…
概述 GROUPING SETS,GROUPING__ID,CUBE,ROLLUP 这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时.天.月的UV数. 数据准备 数据格式 ,,cookie1 ,,cookie5 ,,cookie7 ,,cookie3 ,,cookie2 ,,cookie4 ,,cookie4 ,,cookie2 ,,cookie3 ,,cookie5 ,,cookie6 ,,cookie3 ,,cookie2 ,,cookie1…
SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 USE [tempdb] GO )) GO INSERT INTO [#temptb] ( [id], [NAME] ) ,'中国' UNION ALL ,'中国' UNION ALL ,'英国' UNION ALL ,'英国' UNION ALL ,'美国' UNION ALL ,'美国' UNION ALL SELECT null, '法国' UNION ALL ,'法…
1.创建表 Staff CREATE TABLE [dbo].[Staff]( ,) NOT NULL, ) NULL, ) NULL, ) NULL, [Money] [int] NULL, [CreateDate] [datetime] NULL ) ON [PRIMARY] GO 2.为Staff表填充数据 INSERT INTO [dbo].[Staff]([Name],[Sex],[Department],[Money],[CreateDate]) ,'2011-11-12' UNIO…
其实还是写一个Demo 比较好 USE tempdb IF OBJECT_ID( 'dbo.T1' , 'U' )IS NOT NULL BEGIN DROP TABLE dbo.T1; END; GO CREATE TABLE dbo.T1 ( id INT , productName ) , price MONEY , num INT , amount INT , operatedate DATETIME ) GO DECLARE @i INT DECLARE @rand MONEY DEC…
oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句.CUBE ROLLUP 是用于统计数据的. 实验使用SCOTT用户的EMP表测试 1.仅使用GROUP BY分组,GROUP BY后的单列可以用括号,也可以不用.以下两种写法作用一样: SCOTT@bys1>SELECT deptno, avg(sal) FROM emp  GROUP BY deptno; SCOTT@bys1>SELECT…
一些函数不太会,查了些资料,分享一下 Hive已定义函数介绍: 1.字符串长度函数:length 语法: length(string A)返回值: int举例:[sql] view plain copyhive> select length(‘abcedfg’) from dual; 7 2.字符串反转函数:reverse 语法: reverse(string A)返回值: string说明:返回字符串A的反转结果举例:[sql] view plain copyhive> select rev…
http://yugouai.iteye.com/blog/1908121 分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行.开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化 drop table if exists student; create table student(   name           string,   class          tinyint,   cooperat…
http://blog.csdn.net/yu616568/article/details/50548967 为什么需要使用视图 Kylin在使用的过程中使用hive作为cube的输入,但是有些情况下,hive中的表定义和数据并不能满足分析的需求,例如有些列的值需要进行处理,有些列的类型不满足需求,甚至有时候在创建hive表时为了图方便,hive中的所有列都被定义成了string,因此很多情况下在使用Kylin之前需要对hive上的数据格式进行适当的修剪,但是使用alter table的方式修改…
转自:http://blog.163.com/yuer_d/blog/static/76761152201010203719835 SQL语句中Group by语句的详细介绍                                                一.创建数据表(表名:Sales)                        Create table Sales(ID numeric(28,0) identity,InvNo char(8),InvDate datetim…
0. 说明 Hive 的高级聚合函数 union all | grouping sets | cube | rollup pv //page view 页面访问量 uv //user view 访问人数 1. union all 表联合操作 1.0 准备数据 pv.txt cookie1 cookie5 cookie7 cookie3 cookie2 cookie4 cookie4 cookie2 cookie3 cookie5 cookie6 cookie3 cookie2 cookie1 c…
1.窗口函数2015年4月份购买过的顾客及总人数 select distinct name,count(1) over() as cnt from test_window_yfwhere substr(orderdate,1,7)='2015-04'; select name,count(1) over() as cnt from test_window_yfwhere substr(orderdate,1,7)='2015-04' group by name; 顾客的购买明细及月购买总额将co…
Spark1.4发布,支持了窗口分析函数(window functions).在离线平台中,90%以上的离线分析任务都是使用Hive实现,其中必然会使用很多窗口分析函数,如果SparkSQL支持窗口分析函数,那么对于后面Hive向SparkSQL中的迁移的工作量会大大降低,使用方式如下: 1.初始化数据 创建表 create table window_test2 (url string, rate int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',…
因为最近在面试,发现sql优化这个方面问的特别特别的多.之前都是零零星星,不够全面的了解一点,刚刚在网上查了一下,从 http://blog.csdn.net/zhushuai1221/article/details/51740846 博客比较全面的了解了一些具体的优化策略,在此做个笔记方面自己以后的复习,并且以上介绍的博客中有比较系统全面的对数据库优化介绍. 先看一下sql查询的逻辑执行顺序 1. FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1        //减小笛卡尔积的…
一数据准备 cookie1,2015-04-10,1 cookie1,2015-04-11,5 cookie1,2015-04-12,7 cookie1,2015-04-13,3 cookie1,2015-04-14,2 cookie1,2015-04-15,4 cookie1,2015-04-16,4 创建数据库及表 create database if not exists cookie; use cookie; drop table if exists cookie1; create ta…
摘要 本文提出了分布式内存抽象的概念——弹性分布式数据集(RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算.现有的数据流系统对两种应用的处理并不高效:一是迭代式算法,这在图应用和机器学习领域很常见:二是交互式数据挖掘工具.这两种情况下,将数据保存在内存中能够极大地提高性能.为了有效地实现容错,RDD提供了一种高度受限的共享内存,即RDD是只读的,并且只能通过其他RDD上的批量操…
LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL) 与LAG相反 LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值 第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL) select cookieid, createtime, url…
hive窗口函数/分析函数 在sql中有一类函数叫做聚合函数,例如sum().avg().max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数.窗口函数又叫OLAP函数/分析函数,窗口函数兼具分组和排序功能. 窗口函数最重要的关键字是 partition by 和 order by. 具体语法如下:over (partition by xxx order by xx…