`
amazon10
  • 浏览: 29483 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Hive优化的五种方式

阅读更多

hive执行优化:

1. 使用tez

[code language=”SQL”]

set hive.execution.engine=tez;

[/code]

设置以上属性后,每次hive查询都会利用tez执行任务。

2. 使用ORCFile存储数据

Hive支持ORCFile,

 

[code language=”SQL”]

 

CREATE TABLE A_ORC (

customerID int, name string, age int, address string

) STORED AS ORC tblproperties (“orc.compress" = “SNAPPY”);

 

INSERT INTO TABLE A_ORC SELECT * FROM A;

 

CREATE TABLE B_ORC (

customerID int, role string, salary float, department string

) STORED AS ORC tblproperties (“orc.compress" = “SNAPPY”);

 

INSERT INTO TABLE B_ORC SELECT * FROM B;

 

SELECT A_ORC.customerID, A_ORC.name,

A_ORC.age, A_ORC.address join

B_ORC.role, B_ORC.department, B_ORC.salary

ON A_ORC.customerID=B_ORC.customerID;

[/code]

 

3. 使用Vectorization

Vectorized查询执行会提高操作性能,例如scans、aggregations、filters和joins,通过一次执行1024行提高性能。

该属性在hive 0.13版本引入,该属性能够提高查询执行的时间。

通过设置以下两个参数:

[code language=”SQL”]

set hive.vectorized.execution.enabled = true;

set hive.vectorized.execution.reduce.enabled = true;

[/code]

4. 基于成本的查询优化

在提交最终的执行之前,hive会对每一次的逻辑和物理执行计划进行优化。这些优化到目前为止还不是基于成本的查询优化。

Cost-based optimization,在查询成本的基础上进行了优化,生成了一些不同的策略:how to order joins, which type of join to perorm, degree of parallelism and others.

[code language=”SQL”]

set hive.cbo.enable=true;

set hive.compute.query.using.stats=true;

set hive.stats.fetch.column.stats=true;

set hive.stats.fetch.partition.stats=true;

[/code]

5. Write goog SQL

例如:

[code language=”SQL”]

CREATE TABLE clicks (

timestamp date, sessionID string, url string, source_ip string

) STORED as ORC tblproperties (“orc.compress” = “SNAPPY”);

[/code]

 

[code language=”SQL”]

SELECT clicks.* FROM clicks inner join

(select sessionID, max(timestamp) as max_ts from clicks

group by sessionID) latest

ON clicks.sessionID = latest.sessionID and

clicks.timestamp = latest.max_ts;

[/code]

 

[code language=”SQL”]

SELECT * FROM

(SELECT *, RANK() over (partition by sessionID,

order by timestamp desc) as rank

FROM clicks) ranked_clicks

WHERE ranked_clicks.rank=1;

[/code]

分享到:
评论

相关推荐

    Hive思维导图之Hive优化

    Hive思维导图之Hive优化

    HIVE优化实战分享

    HIVE优化实战分享 大数据存储方案 很好的参考文档

    hive优化总结

    hive优化总结 Hive优化总结是Hive性能优化的总结,涉及HIVE的参数设置、HQL语言的写法、JOIN操作的优化、MapReduce操作的优化、列裁剪、分区裁剪等多个方面。 1. 配置文件优化 Hive的配置文件hive-site.xml是Hive...

    hive优化案例

    作为企业Hadoop应用的核心产品,Hive承载着FaceBook、淘宝等大佬 95%... 拥有1万多个Hive作业的大电商如何进行Hive优化的?本系列课结合企业实战和场景从作业架构层面、Hql(Hive sql)语法层面、Hive参数层面依次讲述。

    Hive优化.docx

    - **利用Hive对UNION ALL的优化**:Hive优化非嵌套的UNION ALL查询,但嵌套查询不受此优化影响。 5. **Hadoop通用关联实现**: - **关联通过二次排序实现**:关联列作为分区键,关联列和其他列组合形成排序的组键...

    工作总结hive优化

    ### 工作总结:Hive优化 在大数据处理领域,Hive作为一种常用的数据仓库工具,其性能优化一直是数据工程师关注的重点。本文将基于提供的“hive优化”文档内容,深入探讨Hive优化的关键策略与实践技巧。 #### 核心...

    Hive优化案例、Hive数据处理模式、Hive常见问题与优化、Hive实践

    Hive优化案例、Hive数据处理模式、Hive常见问题与优化、Hive实践 Hive是一种基于Hadoop的数据仓库工具,用于对大规模数据进行处理和分析。在大数据时代,Hive的应用非常广泛,本文将从Hive优化案例、Hive数据处理...

    hive参数优化总结

    控制 Map 数有两种方式:减少 Map 数和增加 Map 数。减少 Map 数可以通过合并小文件来实现,而增加 Map 数可以通过控制上一个 Job 的 reducer 数来控制。 1.2、Reduce 数 Reduce 数是 Hive 中另一个非常重要的参数...

    Hive优化方法整理

    Hive 优化方法整理 Hive 优化方法整理是 Hive 数据处理过程中的重要步骤,涉及到 Hive 的类 SQL 语句本身进行调优、参数调优、Hadoop 的 HDFS 参数调优和 Map/Reduce 调优等多个方面。 Hive 类 SQL 语句优化 1. ...

    hive 三种启动方式及用途

    这篇博客主要探讨了Hive的三种启动方式及其用途,这对于我们理解如何有效管理和操作Hive系统至关重要。 1. **独立模式(Standalone Mode)** 在独立模式下,Hive运行在本地模式,不与任何Hadoop集群交互。这种模式...

    Hive优化.xmind

    Hive优化.xmind

    Hive性能优化总结

    为了应对上述问题,可以采取以下几种优化策略: 1. **优化模型设计**:合理的设计能够显著提高查询效率。 2. **解决数据倾斜**:理解数据分布特征,并针对性地进行调整。 3. **减少Job数量**:通过批处理等方式减少...

    hive 优化思维导图

    hive 优化在面试以及工作中经常使用,我整理了一份思维导图供大家学习。

    hive优化经典.pdf

    在处理Hive优化的讨论中,关键因素之一是控制Hive任务中的Map数量,这直接影响作业的效率和资源消耗。在Hive中,一个作业是通过分析input目录下的数据文件来创建一个或多个Map任务的,而影响Map数量的主要因素包括...

    13-Hive分桶优化

    Hive函数思维导图,便捷整理思路,Hive参数、Hive分桶、Hive视图、Hive运行方式、Hive权限管理、Hive优化

    Hive 优化以及执行原理

    1. **表分区**:分区是Hive优化的基础,通过将大表划分为小的逻辑部分,可以显著提高查询速度。合理的分区策略应基于查询中常用的过滤条件,例如日期、地区等。 2. ** bucketing 和 sorting**:通过bucketing,数据...

    hive优化建议.docx

    然而,随着数据量的不断增长,Hive 的性能优化变得至关重要。本篇文章将深入探讨针对Hive进行优化的一些关键策略。 首先,我们来关注一个常见的问题——慎用 `count(distinct(columnA))` 函数。在处理大数据集时,...

    Hive优化以及执行原理

    一、Hive优化 1. **元数据优化**:Hive依赖于元数据服务(如MySQL或Derby)来存储表结构和分区信息。确保元数据服务器的性能稳定,可以减少查询解析时间。 2. **分区策略**:通过为大表创建合适的分区,可以显著...

Global site tag (gtag.js) - Google Analytics