Hive学习笔记 --- ORCFile介绍
来源:互联网 发布:windows清除arp 编辑:程序博客网 时间:2024/06/12 01:39
这种文件格式可以提供一种高效的方法来存储Hive数据。它的设计目标是来克服Hive其他格式的缺陷。
运用ORC File可以提高Hive的读、写以及处理数据的性能。
和RCFile格式相比,ORC File格式有以下优点:
(1)、每个task只输出单个文件,这样可以减少NameNode的负载;
(2)、支持各种复杂的数据类型,比如: datetime, decimal, 以及一些复杂类型(struct, list, map, and union);
(3)、在文件中存储了一些轻量级的索引数据;
(4)、基于数据类型的块模式压缩:a、integer类型的列用行程长度编码(run-length encoding);b、String类型的列用字典编码(dictionary encoding);
(5)、用多个互相独立的RecordReaders并行读相同的文件;
(6)、无需扫描markers就可以分割文件;
(7)、绑定读写所需要的内存;
(8)、metadata的存储是用 Protocol Buffers的,所以它支持添加和删除一些列。
ORC File包含一组组的行数据,称为stripes,除此之外,ORC File的file footer还包含一些额外的辅助信息。
在ORC File文件的最后,有一个被称为postscript的区,它主要是用来存储压缩参数及压缩页脚的大小。
在默认情况下,一个stripe的大小为250MB。大尺寸的stripes使得从HDFS读数据更高效。
在file footer里面包含了该ORC File文件中stripes的信息,每个stripe中有多少行,以及每列的数据类型。
当然,它里面还包含了列级别的一些聚合的结果,比如:count, min, max, and sum。
下图显示出可ORC File文件结构:
Stripc结构:
从上图我们可以看出,每个Stripe都包含index data、row data以及stripe footer。
Stripe footer包含流位置的目录;Row data在表扫描的时候会用到。Index data包含
每列的最大和最小值以及每列所在的行。行索引里面提供了偏移量,它可以跳到正确的
压缩块位置。具有相对频繁的行索引,使得在stripe中快速读取的过程中可以跳过很多行,
尽管这个stripe的大小很大。在默认情况下,最大可以跳过10000行。拥有通过过滤谓词而
跳过大量的行的能力,你可以在表的 secondary keys 进行排序,从而可以大幅减少执行时
间。比如你的表的主分区是交易日期,那么你可以对次分区(state、zip code以及last name)进行排序。
如何在Hive中使用ORCFile格式:
在建Hive表的时候我们就应该指定文件的存储格式。所以你可以在Hive QL语句里面指定用ORCFile这种文件格式,如下:
CREATE TABLE ... STORED AS ORC
ALTER TABLE ... [PARTITION partition_spec] SET FILEFORMAT ORC
SET hive.default.fileformat=Orc
下面的例子是建立一个没有启用压缩的ORCFile的表
create table Addresses (
name string,
street string,
city string,
state string,
zip int
) stored as orc tblproperties ("orc.compress"="NONE");
- Hive学习笔记 --- ORCFile介绍
- hive入门们学习:orcFile和parquet存储格式简介
- Hive学习笔记 --- RCFile介绍
- hive使用orcfile parquet sequencefile
- Hive学习笔记(一) 框架介绍
- hive中rcfile orcfile和parquetfile对比
- Hive学习笔记--Hive 优化
- Hive学习笔记--Hive JDBC
- HIVE学习笔记:初识HIVE
- HIVE的学习笔记
- Hive学习笔记汇总
- hive学习笔记1
- hive学习笔记
- HIVE学习笔记
- Hive学习笔记
- hive学习笔记
- hive学习笔记
- hive学习笔记
- 在Windows7下用Gitblit搭建Git服务器
- kmap_atomic/kunmap_atomic
- 【算法题】回文序列
- nginx
- Jacob 环境配置 + word/excel/ppt 转 PDF
- Hive学习笔记 --- ORCFile介绍
- XListView之多条目加载
- oracle11g dg从库动态注册不上
- jQuery选择器基本总结
- ubuntu下安裝tomcat
- jQuery中的事件与动画
- SystemUI启动流程及主体布局介绍
- 多态
- 关于计算机字符编码的研究