网站大量收购闲置独家精品文档,联系QQ:2885784924

e4_30 hive数据仓库4课件71 - hive数据仓库4.ppt

e4_30 hive数据仓库4课件71 - hive数据仓库4.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Greenplum Hadoop 分布式平台的大数据解决方案 Greenplum Hadoop 讲师:迪伦(北风网版权所有) Hive数据仓库(4) HiveQL常用操作 Hive的优化 课程目标 HiveQL常用操作-多表插入 多表插入指的是在同一条语句中,把读取的同一份元数据插入到不同的表中 hive create table mutil1 as select id,name from userinfo; hive create table mutil2 like mutil1; hive from userinfo insert overwrite table mutil1 select id,name insert overwrite table mutil2 select count(distinct id),name group by name; 查询结果 hive select id,name from mutil1; hive select id,name from mutil2; HiveQL常用操作-修改/删除表 修改表 删除表 对普通表,drop操作把元数据和数据文件删除掉,对于外部表,只是删除元数据 HiveQL常用操作-连接 HiveQL的连接分为内连接、左外连接、右外连接、全外连接和半连接5种 内连接 select userinfo.*,choice.* from userinfo join choice on (userinfo.id=choice.userid); 左外连接 select userinfo.*,choice.* from userinfo left outer join choice on (userinfo.id=choice.userid); 右外连接 select userinfo.*,choice.* from userinfo right outer join choice on (userinfo.id=choice.userid); 全外连接 select userinfo.* from userinfo full outer join choice on (userinfo.id=choice.userid); 半连接(IN操作的替代方案) select userinfo.* from userinfo left semi join choice on (userinfo.id=choice.userid); HiveQL常用操作-子查询/创建视图 HiveQL对子查询的支持很有限,只能在from子句中出现子查询 select teacher, MAX(class_num) from (select teacher, count(classname) as class_num from classinfo group by teacher) subq group by teacher; 创建视图 更多HiveQL语法 地址:/confluence/display/Hive/LanguageManual Hive的优化 列裁剪(Column Pruning) 读取数据时,只读取需要用到的列,而忽略其他列。例如: SELECT a,b FROM t WHERE e10; 分区裁剪(Partition Pruning) 在查询过程中减少不必要的分区。例如: SELECT * FROM (SELECT c1, COUNT(1) FROM T GROUP BY c1) subq WHERE subq.prtn=100; 要实现分区裁剪,须设置hive.optimize.pruner=true Join操作 进行JOIN操作时,应将记录少的表/子查询放在Join操作符的左边。 对于一条语句中有多个Join的情况,如果Join的条件相同,不管有多少个表,都会合并成为一个MapReduce Hive的优化 Map Join操作 Map Join操作无须reduce操作就可以在map阶段全部完成,前提是在map过程中可以访问到全部需要的数据。例如: INSERT OVERWRITE TABLE pv_users SELECT /*+ MAPJOIN(pv) */ pv.pageid,u.age FROM user u ON (pv.userid=u.userid); Group By操作 Map端部分聚合。很多聚合操作都可以先在map端进行部分聚合,然后在reduce端得出最终结果。相关参数:hive.map.aggr=true,hive.groupby.mapaggr.checkinterval=100000 有数据倾斜(数据分布不均

文档评论(0)

183****7931 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档