`
superlxw1234
  • 浏览: 552421 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:44571
社区版块
存档分类
最新评论

Hive索引原理机制与使用

    博客分类:
  • hive
阅读更多

 

文章来自:http://lxw1234.com/archives/2015/05/207.htm

 

Hive是支持索引的,但基本没用过,只做了下试验。
为什么大家都不用,肯定有它的弊端。

 

Hive索引机制:

 

在指定列上建立索引,会产生一张索引表(Hive的一张物理表),里面的字段包括,索引列的值、该值对应的HDFS文件路径、该值在文件中的偏移量;

 

在执行索引字段查询时候,首先额外生成一个MR job,根据对索引列的过滤条件,从索引表中过滤出索引列的值对应的hdfs文件路径及偏移量,输出到hdfs上的一个文件中,然后根据这些文件中的 hdfs路径和偏移量,筛选原始input文件,生成新的split,作为整个job的split,这样就达到不用全表扫描的目的。

 

Hive索引建立过程:

  • 创建索引:

 

create index lxw1234_index on table lxw1234(key)
as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'
with deferred rebuild;

 之后在Hive中会创建一张索引表,也是物理表:

 

 

http://7xipth.com1.z0.glb.clouddn.com/0507-3.jpg

 

 

其中,索引表中key字段,就是原表中key字段的值,_bucketname 字段,代表数据文件对应的HDFS文件路径,_offsets 代表该key值在文件中的偏移量,有可能有多个偏移量,因此,该字段类型为数组。

其实,索引表就相当于一个在原表索引列上的一个汇总表。

  • 生成索引数据

alter index lxw1234_index on lxw1234 rebuild;

 用一个MR任务,以table lxw1234的数据作为input,将索引字段key中的每一个值及其对应的HDFS文件和偏移量输出到索引表中。

  • 自动使用索引

  • SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
    SET hive.optimize.index.filter=true;
    SET hive.optimize.index.filter.compact.minsize=0;
     查询时候索引如何起效:
select * from lxw1234 where key = '13400000144_1387531071_460606566970889';

 

       剩下的流程图不贴了,到原文看吧: http://lxw1234.com/archives/2015/05/207.htm

1
1
分享到:
评论

相关推荐

    hive实现原理

    3. **SQL优化技巧**:熟悉 Hive 的执行流程可以帮助编写更高效的 SQL 语句,如合理使用索引、优化 Join 语句等。 4. **定制需求**:针对特定的需求,可能需要对 Hive 进行扩展或定制,这需要深入了解其实现原理。 #...

    Hive优化以及执行原理

    6. **使用索引**:虽然Hive的索引功能有限,但在某些场景下,例如优化join条件,使用bucketing和sort by可以提升性能。 7. **SQL语句优化**:避免使用子查询,使用连接(JOIN)代替子查询,合理使用WHERE和HAVING,...

    大数据系列-Hive

    2. **MapReduce与Hive的交互**:Hive默认使用MapReduce执行查询,了解MapReduce的工作原理有助于理解Hive查询的执行流程。 3. **Hive与Spark集成**:Spark作为更快的计算框架,与Hive集成后,能提升查询效率,尤其...

    《企业级Hive实战课程》大纲

    - 通过具体的案例演示Hive的使用方法与技巧,包括但不限于表的设计、HiveQL语句的编写与优化等。 3. **Hive高级话题** - 生产环境中问题的分析与解决; - Hive源代码的调试与bug修复; - Hive元数据表结构的...

    大数据技术之Hive - 副本.doc

    4. **索引机制**:Hive在数据加载时并不创建索引,这与数据库的索引机制不同,影响了查询速度。 总的来说,Hive是为大数据分析而设计的工具,它的出现极大地简化了非实时大数据处理的复杂性,但也存在性能和功能上...

    尚硅谷 hive 课程教学文档

    ### 尚硅谷大数据技术之Hive课程教学文档 #### 第一章 Hive基本概念 ##### 1.1 Hive简介 **Hive** 是一个基于 **Hadoop**...了解Hive的基本概念、架构原理及其与传统数据库的区别,对于充分利用Hive的优势至关重要。

    hive实现原理--------from淘宝.pdf

    总的来说,学习 Hive 的实现原理有助于我们更好地理解大数据处理背后的机制,从而更好地利用 Hive 进行数据分析和管理,尤其是在面对淘宝这样的大型电商平台海量数据时,有效运用 Hive 可以极大地提升数据处理效率。

    HBase与hive整合 和 hive与hdfs结合的效率对比1

    3. 根据value过滤:对于value过滤,Hive on HBase的性能与Hive on HDFS相近,因为这需要全表扫描,而HBase的缓存机制在此类查询中的效果不如rowkey过滤明显。 三、性能瓶颈与优化策略 1. Map Task:由于HBase默认...

    2021年-Hive大数据仓库-期末考试知识点重点-笔记整理.pdf

    Hive与Hbase的区别: * Hive是基于Hadoop的大数据仓库工具,可以将结构化的数据文件映射为一个表,并提供简单的SQL查询功能。 * HBase是Hadoop的数据库,一个面向列、分布式、可扩展、大数据的存储。 * Hive是逻辑...

    hive-0.8.1.tar.gz.zip下载

    9. **性能优化**:Hive-0.8.1可以通过创建合适的索引、使用Bucketing(分桶)和Sorting(排序)等技术来提升查询性能。此外,还可以通过调整MapReduce的参数,如mapred.reduce.tasks数量,来优化执行效率。 10. **...

    hive实用-hadoop数据仓库指南【英文about云】1

    7. **安全性与权限**:讨论 Hive 的安全特性,如 Hive Metastore 的访问控制、SQL 标准授权和认证机制,以及与 Kerberos 集成的安全实践。 8. **Hive 与其他工具集成**:介绍如何将 Hive 与 Pig、Presto、Impala 等...

    大数据技术之Hive

    #### 一、Hive简介及原理 **Hive**是由Facebook开源的一款强大的数据仓库工具,主要用于处理海量结构化日志数据,提供类似于SQL的查询功能,使用户能够更加便捷地进行数据分析工作。它通过将结构化的数据文件映射为...

    站在hadoop上看hive

    ### 知识点二:Hive执行原理与优化 Hive的工作流程主要分为以下几个步骤: 1. **解析阶段**:将HQL查询转换成抽象语法树(AST),并对AST进行优化。 2. **编译阶段**:基于优化后的AST生成执行计划。 3. **执行阶段*...

    Hive编程指南

    通过《Hive编程指南》,读者可以深入理解Hive的工作原理,学习如何有效地使用HQL进行大数据分析,并掌握Hive在实际项目中的应用技巧。这本书对于想要提升Hadoop环境中数据分析能力的开发者和数据分析师来说,是一份...

    08_Hive.pdf

    Hive由于没有索引机制和MapReduce框架固有的高延迟,查询延迟相对较高,对于实时性要求不高的大数据分析是一个好的选择。在执行延迟方面,数据库执行延迟较低,这是在数据规模较小的情况下。当数据规模超出数据库...

    hive,阿帕奇蜂巢.zip

    综上,"hive,阿帕奇蜂巢.zip"提供的内容对于理解Hive的工作原理、学习如何使用HQL进行大数据处理,以及深入了解Hadoop生态系统的运作,都是非常宝贵的资源。无论是数据工程师、数据分析师还是数据科学家,都可以从中...

    第14章-基于Hadoop的数据仓库Hive.pdf

    此外,还会介绍Hive的系统架构、工作原理、高可用性(HA)机制以及与Hadoop生态系统中的其他组件的关系。最后,通过实际的编程实践和企业应用案例,来说明Hive的实际部署和应用情况。 数据仓库概念起源于面向主题的...

    大数据基础面试题hadoop,zookeeper,hbase,hive,spark,kafka,flink,clickhouse

    例如,Hadoop 的数据块大小设置、Zookeeper 的会话超时机制、HBase 的 Region 分裂、Hive 的分区表设计、Spark 的容错机制、Kafka 的生产者消费者模型、Flink 的状态持久化和ClickHouse 的索引策略等都是常见的面试...

Global site tag (gtag.js) - Google Analytics