美文网首页
【Hive】优化

【Hive】优化

作者: 抬头挺胸才算活着 | 来源:发表于2022-02-11 08:26 被阅读0次

分区表的设计和优化

  • 普通表结构问题


  • 使用分区表可以优化上述查询问题

分桶表的设计和优化

  • Join问题


  • 分桶表设计


  • Join可以在同一个桶之间Join,减少不必要的判断
    注意Join的字段和分桶的字段要一致


索引的优化和设计

分桶和索引常常是优于分区的,分区的粒度比较大
分桶的优化比较严格,分桶和Join的字段要一致
索引在3.0之后不再支持
分桶是哈希,索引是子列判断

  • 原理


  • 缺点
    1、MR程序创建索引,效率较低
    2、表数据更新的时候,索引表不会更新,如果查询的时候需要更新表,运行MR,效率更低了。

文件存储格式

Hive数据存储的本质还是HDFS,可以有多种存储格式,TextFile、SequenceFile、ORC、Parquet等。

  • TextFile


  • SequenceFile


  • Parquet



  • ORC


压缩算法选择

image.png

存储优化——小文件场景


存储优化——ORC索引、矢量化查询

explain可以查看执行计划

MR属性优化

  • 本地模式
    在本地执行MR在数据量小的时候可能会更快,可以开启自动模式,它会根据一系列的条件选择本地模式

  • 并行执行
    Union和Join等语句可以划分为多个没有依赖关系的Stage,并行执行可以提高效率。

优化器——关联优化


CBO优化和Analyze分析器



分析器分析数据的分布等供CBO优化


谓词下推


第一个例子就是第二个的谓词下推



左/右连接或者外连接即使on条件不成立也会保留,因此谓词下推对于保留的表不会起作用,而如果在where里面是一定会起作用的


数据倾斜

某一个数据出现的频率过高









skew join将大的分开,单独使用多个任务,那么每个任务跑的join就小,即使每个很大,算下来也不大。


相关文章

  • 数仓--Hive-面试之Hive优化策略

    Hive的优化策略大致分为:配置优化(hive-site.xml和hive-cli执行前配置)、表优化、hive数...

  • Hive优化

    Hive简单优化与定期ETL Hive优化 Hive的执行依赖于底层的MapReduce作业,因此对Hadoop作...

  • Hive优化

    Hive优化 今天的主要内容——Hive优化 Fetch抓取Hive 中对某些情况的查询可以不必使用 MapRed...

  • Hive优化

    Hive数据倾斜优化总结 Hive数据倾斜优化分为配置优化和SQL优化 优先原则: 数据不怕多,避免倾斜。 减少J...

  • Hive 企业使用优化一

    Hive优化之一fetch task。 优化场景, 1、当在hive中执行select * from emp全部查...

  • Hive优化实践1-数据倾斜及join无关的优化

    Hive SQL的各种优化方法基本 都和数据倾斜密切相关。 Hive的优化分为join相关的优化和join无关的优...

  • Hive的性能优化以及数据倾斜

    hive性能优化 一、Map阶段的优化: (控制hive任务中的map数,确定合适的map数,以及每个map处理合...

  • Hive优化

    Hive HQL优化 Hive优化目标在有限的资源下,执行效率更高 常见问题数据倾斜map数设置reduce数设置...

  • 坑合集

    Flume flume细节 Hive 数据倾斜Hive优化 Hive分区表新增字段为null的bug及解决方法 S...

  • 大数据开发之Hive优化篇8-Hive Job优化

    备注:Hive 版本 2.1.1 Hive job优化概述 实际开发过程中,经常会遇到hive sql运行比较慢的...

网友评论

      本文标题:【Hive】优化

      本文链接:https://www.haomeiwen.com/subject/dqfpkrtx.html