text TODO Hive优化SQL优化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text TODO Hive优化SQL优化相关的知识,希望对你有一定的参考价值。
参考链接1: http://lxw1234.com/archives/2015/06/317.htm
参考链接2: https://zhuanlan.zhihu.com/p/25307921
参考链接3: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins#LanguageManualJoins-MapJoinRestrictions
1. JOIN操作将大表放后头(其他join例如left outer join因为链接顺序问题, 无法使用此优化)
Hive假定查询中最后的一个表是大表。它会将其它表缓存起来,然后扫描最后那个表。
因此通常需要将小表放前面,或者标记哪张表是大表:/*streamtable(table_name) */
2. JOIN时使用相同的连接键
当对3个或者更多个表进行join连接时,如果每个on子句都使用相同的连接键的话,那么只会产生一个MapReduce job。
否则有n个表就会产生n-1个mr job
四. transform+python
一种嵌入在hive取数流程中的自定义函数,通过transform语句可以把在hive中不方便实现的功能在python中实现,然后写入hive表中。
语法:
select transform({column names1})
using '**.py'
as {column names2}
from {table name}
如果除python脚本外还有其它依赖资源,可以使用ADD ARVHIVE
\!h 五. limit 语句快速出结果
一般情况下,Limit语句还是需要执行整个查询语句,然后再返回部分结果。
有一个配置属性可以开启,避免这种情况---对数据源进行抽样
hive.limit.optimize.enable=true --- 开启对数据源进行采样的功能
hive.limit.row.max.size --- 设置最小的采样容量
hive.limit.optimize.limit.file --- 设置最大的采样样本数
缺点:有可能部分数据永远不会被处理到
以上是关于text TODO Hive优化SQL优化的主要内容,如果未能解决你的问题,请参考以下文章
text Hive优化小文件合并
Hive SQL优化思路
Hive SQL优化思路
Hive SQL优化思路
hive sql 优化 - 2.0
Hive Sql/ Spark Sql 数据倾斜优化方案