美文网首页
【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】优化

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