Hive的三种文件格式:TEXTFILE、SEQUENCEFILE、RCFILE中,TEXTFILE和SEQUENCEFILE的存储格式都是基于行存储的,RCFILE是基于行列混合的思想,先按行把数据划分成N个row group,在row group中对每个列分别进行存储。另:hive能支持自定义格式,详情见:Hive文件存储格式

基于HDFS的行存储具备快速数据加载和动态负载的高适应能力,因为行存储保证了相同记录的所有域都在同一个集群节点。但是它不太满足快速的查询响应时间的要求,因为当查询仅仅针对所有列中的 少数几列时,它就不能跳过不需要的列,直接定位到所需列;同时在存储空间利用上,它也存在一些瓶颈,由于数据表中包含不同类型,不同数据值的列,行存储不 易获得一个较高的压缩比。RCFILE是基于SEQUENCEFILE实现的列存储格式。除了满足快速数据加载和动态负载高适应的需求外,也解决了SEQUENCEFILE的一些瓶颈;

做个简单介绍

TextFile:

Hive默认格式,数据不做压缩,磁盘开销大,数据解析开销大。
可结合Gzip、Bzip2、Snappy等使用(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。

SequenceFile:

SequenceFile是Hadoop API 提供的一种二进制文件,它将数据以<key,value>的形式序列化到文件中。这种二进制文件内部使用hadoop 的标准的Writable 接口实现序列化和反序列化。它与Hadoop API中的MapFile 是互相兼容的。Hive 中的SequenceFile 继承自Hadoop API 的SequenceFile,不过它的key为空,使用value 存放实际的值, 这样是为了避免MR 在运行map 阶段的排序过程。

RCFile

RCFile是Hive推出的一种专门面向列的数据格式。 它遵循“先按列划分,再垂直划分”的设计理念。当查询过程中,针对它并不关心的列时,它会在IO上跳过这些列。需要说明的是,RCFile在map阶段从 远端拷贝仍然是拷贝整个数据块,并且拷贝到本地目录后RCFile并不是真正直接跳过不需要的列,并跳到需要读取的列, 而是通过扫描每一个row group的头部定义来实现的,但是在整个HDFS Block 级别的头部并没有定义每个列从哪个row group起始到哪个row group结束。所以在读取所有列的情况下,RCFile的性能反而没有SequenceFile高。

基于Hadoop系统行存储结构的优点在于快速数据加载和动态负载的高适应能力,这是因为行存储保证了相同记录的所有域都在同一个集群节点,即同一个 HDFS块。不过,行存储的缺点也是显而易见的,例如它不能支持快速查询处理,因为当查询仅仅针对多列表中的少数几列时,它不能跳过不必要的列读取;此 外,由于混合着不同数据值的列,行存储不易获得一个极高的压缩比,即空间利用率不易大幅提高。

结论: 表现反应在大小数据集上,RCFILE的查询效率高于SEQUENCEFILE,在特定字段数据读取时,RCFILE的查询效率依然优于SEQUENCEFILE;

原文出自 csdn博客 http://blog.csdn.net/czw698/article/

转载于:https://blog.51cto.com/xingyue2011/1958919

hive 数据存储格式详解相关推荐

  1. 浮点型数据存储格式详解

    本文是对 Computer Systems__A Programmer's Perspective 一书中 Chapter2__2.4 Floating Point一节的理解 在1985年之前,每个p ...

  2. Thinking in BigData(八)大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解

          纯干货:Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解. 通过这一阶段的调研总结,从内部机理的角度详细分析,HDFS.MapReduce.Hbase.H ...

  3. 图解大数据 | 海量数据库查询-Hive与HBase详解

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  4. Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解

    编者按:HDFS和MapReduce是Hadoop的两大核心,除此之外Hbase.Hive这两个核心工具也随着Hadoop发展变得越来越重要.本文作者张震的博文<Thinking in BigD ...

  5. hive linux进程数,控制Hive MAP个数详解

    控制Hive MAP个数详解 Hive的MAP数或者说MAPREDUCE的MAP数是由谁来决定的呢?inputsplit size,那么对于每一个inputsplit size是如何计算出来的,这是做 ...

  6. 为什么写《大数据架构详解》这本书

    花了差不多一年半时间,牺牲了每个周末,费了九牛二虎之力,终于完成个人人生的第一本书<大数据架构详解:从数据获取到深度学习>.整个过程其实挺痛苦的,时常想放弃,幸好坚持下来了. 回想这我50 ...

  7. 《大数据架构详解》读后感

    <大数据架构详解> -- 读后感 作者:朱洁 罗华霖 出版商:中国工信出版社 电子工业出版社 版次:2016年10月第1版 印数:7001 ~ 12000册 定价:69.00元 本书花了大 ...

  8. 每日一练:Python爬虫爬取全国新冠肺炎疫情数据实例详解,使用beautifulsoup4库实现

    Python 爬虫篇 - 爬取全国新冠肺炎疫情数据实例详解 效果图展示 第一章:疫情信息的下载与数据提取 ① 爬取页面数据到本地 ② json 字符串正则表达式分析 ③ 提取数据中的 json 字符串 ...

  9. 稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox

    [索引页] [源码下载] 稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 详解ListBox 作者:webabcd 介绍 Silverlight 2.0 详解DataG ...

最新文章

  1. 阿里面试题:分库分表无限扩容后的瓶颈以及解决方案
  2. PCL中的OpenNI点云获取框架(OpenNI Grabber Framework in PCL)
  3. 不契合市场,Bitcoin SV愿景未必是给矿工的一个好选择
  4. 电脑故障检测软件_有什么软件可以检测出电脑配置是否达到游戏配置。
  5. ORB-SLAM2源代码中ROS部分ros-mono源代码中subscribe /camera/image_raw topic谁发布publish的
  6. 槽点才是G点,LiveVideoStack主编是如何吐槽内容的?
  7. 关于 ASP.NET 内存缓存你需要知道的 10 点
  8. 浅尝EffectiveCSharp_1
  9. 【转】.NET 自带的动态代理+Expression 实现AOP
  10. 树莓派7寸触屏,略贵
  11. 加入收藏 设为首页代码收藏本页的代码和收藏本站的代码设为首页代码
  12. MSI GT60 16F4升级、超频、解锁功耗限制的研究
  13. CPU数据总线和地址总线 内存和外存
  14. 计算机CPU风扇的功能及作用,CPU和风扇之间涂的是什么东西
  15. 选购国外虚拟主机的一些心得体会
  16. AB(罗克韦尔)PLC如何通过程序直接与外插SD卡进行数据读写?
  17. 关于员工激励的思考-期望理论
  18. Java基本概念(世外隐者——隐居深山的“关键字”)
  19. MATLAB Mapping toolbox 地图工具箱 用户指南 2 地理几何学
  20. ARM:NVIC VIC GIC SCB

热门文章

  1. CString类的转换
  2. 基于epoll实现一个IO多路复用的回声服务器
  3. 第二十二章:动画(十五)
  4. 公开羞辱邻座大码乘客 美国一女乘客被逐下客机
  5. django安装--mac系统
  6. webstorm 配置 babel
  7. 网站入口页双栏对称布局实现思路
  8. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记32 NSNotification
  9. Nginx如何反向代理网站和设置虚拟主机
  10. Read file, CSV read String