`
cumtheima
  • 浏览: 253519 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

hive学习总结(5)—分区、分桶和索引

    博客分类:
  • Hive
阅读更多

1.分区

 

分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在, 但是该字段不存放实际的数据内容,仅仅是分区的表示(伪列)。

 

(1)静态分区

create table if not exists sopdm.wyp2(id int,name string,tel string)

partitioned by(age int)

row format delimited

fields terminated by ','

stored as textfile;

 

 --overwrite是覆盖,into是追加

insert into table sopdm.wyp2

partition(age='25')

select id,name,tel from sopdm.wyp;

 

(2)动态分区

--设置为true表示开启动态分区功能(默认为false)

set hive.exec.dynamic.partition=true;

--设置为nonstrict,表示允许所有分区都是动态的(默认为strict)

set hive.exec.dynamic.partition.mode=nonstrict;

 

--insert overwrite是覆盖,insert into是追加

set hive.exec.dynamic.partition.mode=nonstrict;

insert overwrite table sopdm.wyp2

partition(age)

select id,name,tel,age from sopdm.wyp;

 

2. 分桶 

 

CREATE TABLE bucketed_user (id INT) name STRING)

CLUSTERED BY (id) INTO 4 BUCKETS;

 

对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分。Hive也是 针对某一列进行桶的组织。Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。

把表(或者分区)组织成桶(Bucket)有两个理由:

(1)获得更高的查询处理效率。桶为表加上了额外的结构,Hive 在处理有些查询时能利用这个结构。具体而言,连接两个在(包含连接列的)相同列上划分了桶的表,可以使用 Map 端连接 (Map-side join)高效的实现。比如JOIN操作。对于JOIN操作两个表有一个相同的列,如果对这两个表都进行了桶操作。那么将保存相同列值的桶进行JOIN操作就可以,可以大大较少JOIN的数据量。

(2)使取样(sampling)更高效。在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上试运行查询,会带来很多方便。

 

3.索引

 

索引可以加快含有group by语句的查询的计算速度

 

create index employees_index on table employees(country)

as  'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'

with deferred rebuild

in table employees_index_table ;

 

1
1
分享到:
评论
2 楼 icecloudsky 2016-11-04  
1 楼 cumtheima 2014-11-24  
文章不错,有待进步!

相关推荐

    Hive的分区表

    Hive分区表对应的是HDFS上独立的文件夹,该文件夹存放的是该分区的所有数据,其实分区就是分目录。Hive通过分区把一个大的数据集根据业务需要分割成小的数据集,在查询时能够通过where关键词选择指定分区,从而提高...

    第6章:Hive性能优化及Hive3新特性1

    第6章:Hive性能优化及Hive3新特性课程学习目标掌握Hive中分区表及分桶表的设计及优化实现了解Hive中索引的设计及应用场景掌握Hive中文件格式与数据

    大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南

    大数据学习路线 大数据技术栈思维导图 大数据常用软件安装...Hive 分区表和分桶表 Hive 视图和索引 Hive 常用 DML 操作 Hive 数据查询详解 Spark、Storm、Flink、HBase、Kafka、Zookeeper、Flume、Sqoop等技术的学习

    hive2.1.1中orc格式读取报数组越界错误解决方法

    hive2.1.1orc格式读取报数组越界错误,替换jar包。hive-exec-2.1.1-cdh6.3.2.jar、hive-orc-2.1.1-cdh6.3.2.jar。分发各个服务器即可。

    Hive用户指南(Hive_user_guide)_中文版.pdf

    表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 3、 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及 查询计划的生成。生成的查询计划存储在 HDFS 中,...

    大数据底层原理和基础概念面试题30道

    15、Hive中的数据分区和分桶对查询性能有哪些影响? 16、Hadoop中的YARN是什么?它和MapReduce有什么关系? 17、YARN中的资源分配分为哪几种类型?它们分别适用于哪些场景? 18、YARN中的ResourceManager和...

    非常好的大数据入门目资源,分享出来.zip

    Hive 分区表和分桶表 Hive 视图和索引 Hive 常用 DML 操作 Hive 数据查询详解 三、Spark Spark Core : Spark 简介 Spark 开发环境搭建 弹性式数据集 RDD RDD 常用算子详解 Spark 运行模式与作业提交 Spark 累加器与...

    大数据精选入门指南,包括大数据学习路线、大数据技术栈思维导图

    Hive 分区表和分区表 Hive 视图和索引 Hive 使用 DML 操作 Hive数据详细查询解 三、火花 火花核心: 斯帕克简介 Spark开发环境搭建 弹性式数据集 RDD RDD使用算子详解 Spark运行模式与作业提交 Spark 累加器与广播...

    hive仓库元数据管理系统

    1.hive元数据信息的查看,包括表基本信息,数据库基本信息,字段信息,分区信息,索引信息等; 2.对hive元数据的检索,包括表、字段、数据库等内容的检索 3.元数据信息更新(目前只提供对库、表、字段的描述信息进行...

    Hadoop+Hive+Spark+Kafka+Zookeeper+Flume+Sqoop+Azkaban+Scala

    分区表和分桶表 视图和索引 常用 DML 操作 数据查询详解 三、Spark Spark Core Spark SQL Spark Streaming 五、Flink 核心概念综述 开发环境搭建 Data Source Data Transformation Data Sink 窗口模型 状态管理与...

    hiveMetaMgr:hive仓库元数据管理系统

    #hive仓库元数据管理系统##有如下功能: 1.hive元数据信息的查看,包括表基本信息,数据库基本信息,分区信息,分区信息,索引信息等; 2.对hive元数据的检索,包括表,分段,数据库等内容的检索3.元数据信息更新...

    大数据学习笔记

    第四部分HIVE学习 70 第19章 HIVE介绍 71 19.1 HIVE是什么? 71 19.2 HIVE特点 71 19.3 HIVE架构 71 19.5 HIVE工作流 72 第20章 HIVE 安装 74 20.1 Hadoop安装 74 20.2 HIVE安装 77 20.3 Derby安装与设置 78 第21章 ...

    大数据之运维.pptx

    大数据运维 郭现伟 大数据之运维全文共12页,当前为第1页。...Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 解释器、编译器、优化器、执行器 解释器、编译

    Hadoop权威指南(中文版)2015上传.rar

    1.6.2 分区(Partitions)和桶(Buckets) 1.6.3 存储格式 1.6.4 导入数据 1.6.5 表的修改 1.6.6 表的丢弃 1.7 查询数据 1.7.1 排序(Sorting)和聚集(Aggregating) 1.7.2 MapReduce脚本 1.7.3 连接 1.7.4 子查询 ...

    Hadoop权威指南 第二版(中文版)

     1.6.2 分区(Partitions)和桶(Buckets)  1.6.3 存储格式  1.6.4 导入数据  1.6.5 表的修改  1.6.6 表的丢弃  1.7 查询数据  1.7.1 排序(Sorting)和聚集(Aggregating)  1.7.2 MapReduce脚本  1.7.3 连接  ...

    ES-Fastloader:利用Hadoop容错性和并行性快速构建大规模ElasticSearch索引

    加载程序将创建一个Hadoop作业,以从HDFS中的数据文件中读取数据,在每个节点的基础上对其进行分区,最后将生成的索引写入ES分片。 在DiDi中,我们一直在使用ES-Fastloader从Hive中的TB / PB级别序列文件创建大规模...

    Hadoop实战(第2版)

    10.2.1 序列化和反序列化技术点64 载入日志文件10.2.2 UDF、分区、分桶和压缩技术点65 编写UDF 和压缩分区表10.2.3 数据合并技术点66 优化Hive 合并10.2.4 分组、排序和explain 10.3 本章小结11 ...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    10.2.2 UDF、分区、分桶和压缩 技术点65 编写UDF 和压缩分区表 10.2.3 数据合并 技术点66 优化Hive 合并 10.2.4 分组、排序和explain 10.3 本章小结 11 Pig 流管道 11.1 Pig 基础 11.1.1 安装 ...

    nosql 入门教程

    8.3.2 创建唯一索引和稀疏索引 138 8.3.3 基于关键字的搜索和多重键 139 8.4 CouchDB的索引与排序 140 8.5 Apache Cassandra的索引与排序 141 8.6 小结 143 第9章 事务和数据完整性的管理 144 9.1 RDBMS和ACID...

    大数据学习笔记.pdf

    第5章 Spark调度与高级编程 ............................................................................................. 20 5.1 Spark应用程序例子 ..........................................................

Global site tag (gtag.js) - Google Analytics