HiveSQL经典优化案例一: 1.1 将要执行的查询(执行了 1个多小时才出结果): SELECT dt as DATA_DATE,STRATEGY,AB_GROUP,SOURCE, count 1.4 先看每个字段将会有多少分区(因为 Hive 表分区也不宜过多,一般一个查询语句涉及到的 hive分区 应该控制在2K内) jdbc:hive2://ks-hdp-master-01.dns.rightpad [hue@ks-hdp-client-v02 10:55:08 /usr/local/hue]$ python Python 2.7.12 (default, Dec 4 2017, 14:50:18 HiveSQL经典优化案例二: 问题描述:一个复杂的SQL,查询执行一段时间后报错:基本上是查不出来; 分析函数对于大表来说不是 hive的强项,这个时候我们将其分解成很多子集,并且合理利用 hive HiveSQL经典优化案例三: 如下SQL,用到了 PERCENTILE_APPROX 函数,问题描述:如下SQL,用到了 PERCENTILE_APPROX 函数,个人初步分析认为:由于用到该函数的次数太多
Hive综合案例 本案例对视频网站的数据进行各种指标分析,为管理者提供决策支持. Top50所关联视频的所属类别Rank --统计每个类别中的视频热度Top10 --统计每个类别中视频流量Top10 --统计上传视频最多的用户Top10以及他们上传的视频 --统计每个类别视频观看数 job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(NullWritable.class); //本案例中没有 0:1);; } } 四、准备工作 1、 创建 hive 表 创建表:youtubevideo_ori,youtubevideo_user_ori 创建表:youtubevideo_orc ; 2、统计视频类别热度Top10 思路:即统计每个类别有多少个视频,显示出包含视频最多的前10个类别。
通过hadoop提供给的Browsing HDFS在浏览器查看文件存储情况。访问路径:http://[master_ip]:50070/
我们光知道Hive,不会其语法怎么办呢?此篇博文专门为大家带来操作实例。 一. RLIKE子句是Hive中这个功能的一个扩展,其可以通过Java的正则表达式这个更强大的语言来指定匹配条件。 1. JOIN语句 8.1 等值JOIN Hive支持通常的SQL JOIN语句,但是只支持等值连接,不支持非等值连接。 c.t_id left join score s on s.c_id = c.c_id left join student stu on s.s_id = stu.s_id; 大多数情况下,Hive 注意,Hive要求DISTRIBUTEBY语句要写在SORTBY语句之前。对于distribute by进行测试,一定要分配多reduce进行处理,否则无法看到distribute by的效果。
查询每个顾客上次的购买时间 10. lead(col,n, default_val):某一列往后第n行数据 11. ntile(n): 把数据按行分为n组,返回组号 12.
介绍Hive查询中的行列转换的用法 1. 案例一:求数学成绩比语文成绩好的学生的ID (1) 需求分析 现有 hive 表 score, 内容如下: hive> select * from score; 1 1 yuwen 43 2 t2中的数据: 1 43 55 2 77 88 3 98 65 --(3) SELECT sid FROM t2 WHERE shuxue > yuwen; 结果: 1 2 2.案例二 :销售表的行列转换 (1) 需求 现有hive表sales,内容如下: hive> select * from sales; sales.y sales.season sales.sale 1991 案例三:学生成绩表的列转行 (1) 需求 有如下学生成绩表score: id sname math computer english 1 Jed 34 58
---- 介绍Hive查询中数值累加的思路的方法 1. 需求分析 现有 hive 表 record, 内容如下: hive> select * from record; OK A 2015-01 5 A 2015-01 15 B 2015-01 8 B 2015-01 25 A 2015-01 5 A 2015-02 4 A 2015-02 6 B 2015-02 10 B 2015-02 5 A 2015-03 16 A 2015-03 22 B 2015-03 23 B 2015-03 10 B 2015 方法二:使用Hive窗口函数max()、sum() select userid, month, count, sum(count) over(partition by userid order by
7 create table course(Cno int,Cname string) 8 row format delimited fields terminated by ','; 9 10 数据准备 相关数据 1 [yun@mini01 exercise]$ pwd 2 /app/software/hive/exercise 3 [yun@mini01 exercise]$ ll /exercise/course.dat 9 1,数据库 10 2,数学 11 3,信息系统 12 4,操作系统 13 5,数据结构 14 6,数据处理 15 [yun@mini01 exercise 0: jdbc:hive2://mini01:10000> load data local inpath '/app/software/hive/exercise/sc.dat' into table 6 7,y 7 8,u 8 [yun@mini01 exercise2]$ cat /app/software/hive/exercise2/b.dat 9 2,bb 10 3,cc 11 7,
Import 数据到指定 Hive 表中 注意:先用 export 导出后,再将数据导入。 hive (default)> import table student2 partition(month='201709') from '/user/hive/warehouse/export/student '; 2.数据导出Insert 导出 (1)将查询的结果导出到本地 hive (default)> insert overwrite local directory '/opt/module/datas /export/student' select * from student; (2)将查询的结果格式化导出到本地 hive(default)>insert overwrite local directory .txt; Hive Shell 命令导出 基本语法:(hive -f/-e 执行语句或者脚本 > file) [hadoop@hadoop102 hive]$ bin/hive -e 'select
解决痛点:对于工作中经常应用Hive,以及准备去面试的同学,相信此篇文章会让你有所收获。 01 Hive运行顺序 在应用Hive过程中,你是否有过这样的疑问? 10 哪些场景提供加速查询「limit场景」 众所周知,Hive查询是基于MR执行的,但调用Map/Reduce是存在时间成本的。 limit不生成Map/Reduce场景(推荐使用) Select * from A limit 10; Select * from A where ds = 20121212 limit 10; limit 生成Map/Reduce场景 Select * from A where ds = 20220101 and guid=’xxx’ limit 10; Select a from A limit 10; Select a from A where ds = 20220101 limit 10; 以上就是本期的内容分享,希望能让你对Hive有更深入的理解。
数据说明 (1) dept表 hive> select * from dept; # deptno(部门编号) dname(部门名称) loc(部门所在地区) 10 SALES CHICAGO 40 OPERATIONS BOSTON (2) emp表 hive 05-01 2850.0 0.0 30 7782 CLARK MANAGER 7839 1981-06-09 2450.0 0.0 10 07-13 3000.0 0.0 20 7839 KING PRESIDENT NULL 1981-11-07 5000.0 0.0 10 hiredate) as min_date from emp) tmp on emp.hiredate = tmp.min_date; # 结果 SMITH 1980-12-17 # 注意,以下SQL在hive
table_name; -- 指定显示的分区 SHOW PARTITIONS table_name PARTITION(ds='2010-03-03'); -- (Note: Hive 0.6 and later) SHOW PARTITIONS table_name PARTITION(hr='12'); -- (Note: Hive 0.6 and later) SHOW PARTITIONS table_name PARTITION(ds='2010-03-03', hr='12'); -- (Note: Hive 0.6 and later EXTENDED [IN|FROM database_name] LIKE 'identifier_with_wildcards' [PARTITION(partition_spec)]; -- demo hive
不明就里的读者可以看上一篇: Hive 的入门级 Group By 全案例 昨晚发文之后,有读者陆陆续续在星球发问了,脚本到底该怎么写? 环境: Hive: 2.7.7 Oracle SQL Developer Cloudera JDBC Driver 案例 - 1 : Group by 的常规化应用 select schema_id image 案例 - 2 : Group by 之 Grouping Sets 应用 select schema_id , type_desc , count(object_id 案例 - 3 : Group by 之 with cube select schema_id , type_desc , count(object_id) as object_count type_desc grouping sets((schema_id,type_desc),schema_id,type_desc,()) order by schema_id ,type_desc 案例
题目要求 现有hive表temp,其中只有一个字段(temp_record string),每一行代表某一天的气温,比如,2014010114代表,2014年1月1日的气温为14度,表中数据如下: hive 2010010216 2010010317 2010010410 2010010506 2015010649 2015010722 2015010812 2015010999 2015011023 要求:用hive temp; /* temp_column表中数据: 2014 0101 14 2014 0102 16 2014 0103 17 2014 0104 10 0105 29 1 2001 0101 16 2 2001 0102 12 3 2001 0104 11 4 2001 0103 10
以上就是Hive的完整搭建过程,小伙伴们就可以欢快地开始使用Hive了。 2.Hive应用案例 本案例对视频网站的数据进行各种指标分析,为管理者提供决策支持。 Rank 统计每个类别中的视频热度Top10 统计每个类别中视频流量Top10 统计上传视频最多的用户Top10以及他们上传的视频 统计每个类别视频观看数Top10 2)项目表字段 视频表 字段 备注 ; 2)统计视频类别热度Top10 思路:即统计每个类别有多少个视频,显示出包含视频最多的前10个类别。 ③ 最后按照热度排序,显示前10条。 ; 6)统计上传视频最多的用户Top10以及他们上传的观看次数在前10的视频 思路: ① 先找到上传视频最多的10个用户的用户信息 ② 通过uploader字段与youtubevideo_orc表进行
数据说明 (1) student表 hive> select * from student; # 学生ID 学生姓名 性别 年龄 所在系 # sid sname 95013 Matthew male 21 CS 95014 Nicholas female 19 CS ...... (2) course表 hive Math 3 English 4 Physics 5 Chemistry 6 Biology (3) sc表 hive <1> 查询全体学生的学号与姓名 select sid, sname from student; <2> 查询选修了课程的学生姓名 select distinct sid from sc; (2) hive 4 95006 6 95007 4 95011 4 95012 4 95013 4 95015 4 95018 4 95019 5 95022 4 */ (3) hive
熟悉 sql server 一定不陌生,其实就是从 sql server 导了一张系统表 sys.objects 到 Hive 里面。 具体方法可以参考这里: 使用 Sqoop 将 30W+ MySQL 数据导入 Hive 这是 Hive 的第一篇公开文,讲解 group by 用法。 其余的文章存着,大家热情起来了,我再慢慢放。 扯远了,回归正题,这里是 5 道 Hive 的 group by 应用题,大家有兴趣先做着。我会在星球里公布正式答案。 已知表结构如下: ? image 表的前 10 行数据 sample 如下: ? image 需求得: 按照 schema_id, type_desc 为分组的记录总数,如下: ? by 子选项案例。
win10安装Hadoop3.0.0:https://blog.csdn.net/qq262593421/article/details/105927625 win10搭建hive3.0.0:https /dist/hive/hive-3.0.0/ 下载文件:apache-hive-3.0.0-bin.tar 二、配置环境变量 1、解压安装包到:D:\Hadoop\Hive\apache-hive 3、配置hive环境变量 变量名:HIVE_HOME 变量值:D:\Hadoop\Hive\apache-hive-3.0.0-bin 变量名:HIVE_CONF_DIR 变量值:D:\Hadoop \Hive\apache-hive-3.0.0-bin\conf # hive的lib库目录 export HIVE_AUX_JARS_PATH=D:\Hadoop\Hive\apache-hive-3.0.0 hive version hive 注意事项: hive的log4j和hadoop的log4j包冲突 jdbc连接需要配置 hive数据库的原数据要配置 hive官方文档 https://cwiki.apache.org
目录 一、下载 Hive3.0.0 二、配置环境变量 三、添加MySQL依赖包 四、HDFS添加Hive目录 五、解决依赖包冲突 六、修改配置文件 七、初始化 Hive 元数据 八、启动 Hive 服务 七、注意事项 win10安装Hadoop3.0.0:https://blog.csdn.net/qq262593421/article/details/105927625 win10安装Hive3.0.0 /dist/hive/hive-3.0.0/ 下载文件:apache-hive-3.0.0-bin.tar 二、配置环境变量 配置hive环境变量 变量名:HIVE_HOME 变量值:D:\Hadoop \Hive\apache-hive-3.0.0-bin 变量名:HIVE_CONF_DIR 变量值:D:\Hadoop\Hive\apache-hive-3.0.0-bin\conf %HIVE_HOME \Hive\apache-hive-3.0.0-bin\lib hive-site.xml <!
一、窗口函数的概念 首先,需要认识到,窗口函数并不是只有 hive 才有的,SQL 语法标准中,就有窗口函数。 并且 mysql,oracle等数据库都实现了窗口函数。 而 hive 自带的窗口函数功能,则是对原有 hive sql 语法的补充和加强。 那么什么时候,会用到窗口函数? 用户花费表' row format delimited fields terminated by "," location '/tmp/person_cost' 数据为: jack,2015-01-01,10