HiveSQL经典优化案例一: 1.1 将要执行的查询(执行了 1个多小时才出结果): SELECT dt as DATA_DATE,STRATEGY,AB_GROUP,SOURCE, count (查询如下) jdbc:hive2://ks-hdp-master-01.dns.rightpad (default)> select count(*) from dwb_v8sp_tmp.base_report_bystrategy_byab_source_column_zkl 1.4 先看每个字段将会有多少分区(因为 Hive 表分区也不宜过多,一般一个查询语句涉及到的 hive分区 应该控制在2K内) jdbc:hive2://ks-hdp-master-01.dns.rightpad ; jdbc:hive2://ks-hdp-master-01.dns.rightpad (default)> show create table dwb_v8sp_tmp.base_report_bystrategy_byab_source_column_zkl HiveSQL经典优化案例二: 问题描述:一个复杂的SQL,查询执行一段时间后报错:基本上是查不出来; 分析函数对于大表来说不是 hive的强项,这个时候我们将其分解成很多子集,并且合理利用 hive
Hive综合案例 本案例对视频网站的数据进行各种指标分析,为管理者提供决策支持. job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(NullWritable.class); //本案例中没有 0:1);; } } 四、准备工作 1、 创建 hive 表 创建表:youtubevideo_ori,youtubevideo_user_ori 创建表:youtubevideo_orc
将每个顾客的cost按照日期进行累加 8. 求明细,以及每个月有哪些顾客来过 9.
介绍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 5 A 2015-01 8 B 2015-01 25 A 2015-01 5 A 2015-02 4 A 2015-02 方法二:使用Hive窗口函数max()、sum() select userid, month, count, sum(count) over(partition by userid order by
sc(Sno int,Cno int,Grade int) 11 row format delimited fields terminated by ','; 12 13 # 查看有哪些表 14 hive 数据准备 相关数据 1 [yun@mini01 exercise]$ pwd 2 /app/software/hive/exercise 3 [yun@mini01 exercise]$ ll ) 10 0: jdbc:hive2://mini01:10000> load data local inpath '/app/software/hive/exercise/sc.dat' into table | 7 | 3 | 8 | 8 | 4 | 7 | 9 | 5 | 6 | 10 | 6 | 5 | 11 +--------+-- 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
数据说明 (1) dept表 hive> select * from dept; # deptno(部门编号) dname(部门名称) loc(部门所在地区) 10 SALES CHICAGO 40 OPERATIONS BOSTON (2) emp表 hive hiredate) as min_date from emp) tmp on emp.hiredate = tmp.min_date; # 结果 SMITH 1980-12-17 # 注意,以下SQL在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
Hive会自动加载 conf/hive-site.xml 配置文件,官方在 conf/hive-default.xml.template 提供了一个模板文件,里面是 Hive 加载不到 hive-site.xml xml version="1.0" encoding="UTF-8" standalone="no"?> <? :JDBC类名,8.x版本Mysql jar的类名有所变化,需要注意 javax.jdo.option.ConnectionUserName:mysql用户名 javax.jdo.option.ConnectionPassword /hive-log4j2.properties Async: true Hive Session ID = 959e0cda-f8eb-4fc1-b798-cb5175e735d2 Hive-on-MR 以上就是Hive的完整搭建过程,小伙伴们就可以欢快地开始使用Hive了。 2.Hive应用案例 本案例对视频网站的数据进行各种指标分析,为管理者提供决策支持。
数据说明 (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 应用题,大家有兴趣先做着。我会在星球里公布正式答案。 已知表结构如下: ? by 子选项案例。 看这里: Spark SQL 与 Hive 的第一场会师 Spark 高难度对话 SQL Server 后记 周末两三事儿:大数据专栏以及百题SQL学习营
DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-<em>8</em>" DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-<em>8</em>" DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-<em>8</em>" addEmployee(Employee employee){ employeeDao.save(employee); return "redirect:/employee"; } 8. DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-<em>8</em>"
说明:hive的表存放位置模式是由hive-site.xml当中的一个属性指定的 <name>hive.metastore.warehouse.dir</name> <value>/user/hive/ TRUE TINYINT 1字节的有符号整数 -128~127 1Y SMALLINT 2个字节的有符号整数,-32768~32767 1S INT 4个字节的带符号整数 1 BIGINT 8字节带符号整数 1L FLOAT 4字节单精度浮点数1.0 DOUBLE 8字节双精度浮点数 1.0 DEICIMAL 任意精度的带符号小数 1.0 STRING 字符串,变长 “a”,’b’ VARCHAR 外部表说明 外部表因为是指定其他的hdfs路径的数据加载到表当中来,所以hive表会认为自己不完全独占这份数据,所以删除hive表的时候,数据仍然存放在hdfs当中,不会删掉。 2. 添加一个分区 alter table score add partition(month='201805'); 8.
本文中主要介绍了对表、分区和字段的各种操作 修改表 修改表主要是对表的结构和属性进行操作,包含: 重命名 alter table oldname rename to new_table; 修改表属性 alter table table_name set tblproperties (property_name=property_value); 修改表注释 alter table table_name set tblproperties('comment'=new_comment); 修改存储属性 al
@ 目录 基本数据类型 集合数据类型 案例实操 基本数据类型 ? ? 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数。 集合数据类型 ? Hive有三种复杂数据类型ARRAY、MAP 和 STRUCT。 案例实操 假设某表有如下一行,我们用JSON格式来表示其数据结构。 在Hive下访问的格式为 { "name": "songsong", "friends": ["bingbing" , "lili"] , //列表Array, "
从另外一个方面看,当红炸子鸡的Spark在支持SQL的时候也需要做到和HIVE的兼容,可见HIVE已经事实上成为了Hadoop平台上SQL和类SQL的标杆和事实的标准。 一聊天,不得了,做的是HIVE。也就是那一年姗姗来迟的HIVE的论文发了出来。再一聊天,那俩开发HIVE的印度小哥们都升职了,不一样了。 做Pig的人成了HIVE的主力,做HIVE的人却不知道去哪里了,鸠占鹊巢的故事哪里都能发生。 只不过我不太清楚那个当年Hackathon赶出HIVE的两位对于HIVE变成今天这样是什么感触。 只是今天HIVE在不停的发展,只要有公司还愿意不停砸人砸钱进去,HIVE和其他SQL on Hadoop的竞争就不会停止。Spark,比如说,的压力就一定多多少少的会存在。
从另外一个方面看,当红炸子鸡的Spark在支持SQL的时候也需要做到和HIVE的兼容,可见HIVE已经事实上成为了Hadoop平台上SQL和类SQL的标杆和事实的标准。 一聊天,不得了,做的是HIVE。也就是那一年姗姗来迟的HIVE的论文发了出来。再一聊天,那俩开发HIVE的印度小哥们都升职了,不一样了。 做Pig的人成了HIVE的主力,做HIVE的人却不知道去哪里了,鸠占鹊巢的故事哪里都能发生。 只不过我不太清楚那个当年Hackathon赶出HIVE的两位对于HIVE变成今天这样是什么感触。 只是今天HIVE在不停的发展,只要有公司还愿意不停砸人砸钱进去,HIVE和其他SQL on Hadoop的竞争就不会停止。Spark,比如说,的压力就一定多多少少的会存在。
(1)创建配置文件 $HIVE_HOME/conf/hive-default.xml.template -> $HIVE_HOME/conf/hive-site.xml $HIVE_HOME/conf --hive的数据存储目录,指定的位置在hdfs上的目录--> 8 9 <value>/user/hive/warehouse</value> 10 11 <description characterEncoding=UTF-8</value> 80 81 </property> 82 83 <property> 84 85 <name>javax.jdo.option.ConnectionDriverName 在数据库中生成对应的 hive 数据库 ? 启动Hive:hive ? -------------------------------------------------------------- 创建表 以及 查询案例 hive上创建表: CREATE TABLE testB