ANALYZE关键字可以收集数值统计信息。
加速查询,直接从统计信息中拿,而不会再启动mapreduce去查询。
用desc命令去查统计信息。
Hive性能优化包含以下点:
partition table 这是最好的优化,比如用年月日,部门
联合查询,可以先按xx做分区,再按别的做分区
bucket table
经常被join连接查询的这种column上建立bucket
这才能提高查询效率
index
每当数据更新时,也要去更新索引,所以维护成本也不小。
实际用的比较少。
几种好用的数据类型,
orc ,parquet等,都是基于列的,所以查询性能非常高。
(数据过滤等经常用)
数据压缩
第一,可以减少很多空间。
第二,数据shuffle过程中传输速度也会变快。
但是压缩了也要解压,所以也不能压缩的太狠。
有专门的算法叫snappy 用于快速压缩,压缩比适中。
data localization
处理引擎放到另一个集群。。。
数据和算法尽量不分离,
比如说我hadoop我把三个拷贝增加到六个拷贝。
&#