- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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_usersSELECT /*+ MAPJOIN(pv) */ pv.pageid,u.ageFROM user u ON (pv.userid=u.userid); Group By操作 Map端部分聚合。很多聚合操作都可以先在map端进行部分聚合,然后在reduce端得出最终结果。相关参数:hive.map.aggr=true,hive.groupby.mapaggr.checkinterval=100000 有数据倾斜(数据分布不均
您可能关注的文档
- 铜玉铁路缺陷整治报告最终打印版1 17 1标4-tytj-1-垄隧道.pdf
- 内容文本讲义210325写作ielts-band-9-vocab-secrets.pdf
- 05节点电压法和替代定理.ppt
- 参考半导体微电子学ee5517-teaching_notes-lecture_3-22_august-2007-part_1.pdf
- 07-创新性说明创新性说明.pdf
- 新媒体在工程领域的应用-工程师角色.pptx
- 未来隧道施工的探索与创新-行业趋势与技术革新深度解析.pptx
- 操作级船员适任考试指南复习测试卷附答案.doc
- 培训项目总结-总结培训,为未来参考.pptx
- 智能电力,未来共赢-携手拓展绿色智能电力市场.pptx
文档评论(0)