Hive的存储格式与对比

官网:https://cwiki.apache.org/confluence/display/Hive/FileFormats
对于很多的东西,还是你要多多观看官网,更加权威,

一:行式存储和列式存储

在这之前先补充一个概念:

二:TestFile

这个就是普通的文本格式 ,
TextFile文件不支持块压缩,默认格式,数据不做压缩,磁盘开销大,数据解析开销大

文本格式里面都是字符串类型 对于文本来说是一个全量的 行式存储
比如:我们只需要3列的话,他是要全部加载的,而相对于列式存储来说不是这样的,列式存储是可以直接查看3列的
这样就会有一个很大的 区别:磁盘和 io的使用情况不是一个级别的,现在工作很少使用,空间的节省性能很差啊

三:SequenceFile


SequenceFile 其实是key value的方式存储 数据的存储体积要比text file的大一些
(读起来方便 ,用的也很少的)在使用 压缩的时候是对value压缩

操作的时候 :
如果你想把文本格式text file 转换为sequence file 导入数据的时候
格式不对,没有办法读取的 需要做中间的一步转换 的

load data local inpath '/home/hadoop/data/page' overwrite into table page_seq;insert into table page_seq select * from page;
要做insert操作的

这两种形式性能太低了 在工作中很少使用的,所以官网也没有做过多的介绍

注意:

并不代表查询的 时候 列式存储就比行式存储快
例如:select * 时的查询时,还是行式存储要快的,很简单,行式存储在一起,列式存储把它分割开的额 但是在大数据的情况下,是几乎不会使用select * 的

生产上在etl之后,几乎都是列式存储 列式存储占据了百分之90的份额
当然还有一个重要的原因:
因为文本里面的数据是各种各样的不同数据 ,如果使用列式存储的话,可以对不多的数据格式,采取不同的压缩格式,更好的做到优化,
重要的一点就是:存储格式与压缩是紧密结合的

四:RCFile

官网:https://cwiki.apache.org/confluence/display/Hive/RCFile

RCFile其实就是 行列混合存储的,性能也不怎么样,现在也很用(比如百度 ) ,测试的效果不好

RCFile结合了行存储和列存储的优点,以满足快速数据加载和查询处理的需求,存储空间的有效利用以及对高度动态工作负载模式的适应性。
作为行存储,RCFile保证同一行中的数据位于同一节点中。
作为列存储,RCFile可以利用逐列数据压缩并跳过不必要的列读取。

五:ORC Files

官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC

存储方式:数据按行分块 每块按照列存储 ,压缩快 快速列存取,效率比rcfile高,是rcfile的改良版本,相比RC能够更好的压缩,能够更快的查询,但还是不支持模式演进。

他底层有默认的压缩格式
orc.compress default ZLIB
high level compression (one of NONE, ZLIB, SNAPPY)

create table Addresses (name string,street string,city string,state string,zip int
) stored as orc tblproperties ("orc.compress"="SNAPPY");

六:Parquet

官网:https://cwiki.apache.org/confluence/display/Hive/Parquet

Hive 0.13 and laterCREATE TABLE parquet_test (id int,str string,mp MAP<STRING,STRING>,lst ARRAY<STRING>,strct STRUCT<A:STRING,B:STRING>)
PARTITIONED BY (part string)
STORED AS PARQUET;

其实他不是hive里面的,是其他的一个项目 现在是主流框架 存储的角度和计算的角度
支持的版本很多 ,0.13之后直接写一个parquet就可以了

Parquet是不跟任何数据处理技术绑定在一起的,可以用于多种数据处理框架。
查询引擎:Hive,Imapla,Presto等
计算框架:Map-Reduce,Spark等
数据模型:Avro,Thrift,PB

七:性能的对比


结论:
1.ORC Files存储文件读效率最好
2.耗时比较:ORC<Parquet<RC<Text
3.ORC Files压缩效率最高
4.占用空间 :ORC<Parquet<RC<Text

详解:Hive的存储格式与对比相关推荐

  1. php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)

    1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 1 echo() 可以同时输出多个字符串,可以多 ...

  2. 详解hive的列分隔符和行分隔符的使用

    hive中在创建表时,一般会根据导入的数据格式来指定字段分隔符和列分隔符.一般导入的文本数据字段分隔符多为逗号分隔符或者制表符(但是实际开发中一般不用着这种容易在文本内容中出现的的符号作为分隔符),当 ...

  3. (转载)详解Hive配置Kerberos认证

    Hive提供了运行SQL语句查询存储在HDFS上数据的能力,Hive提供的查询引擎,可以将SQL语句转化成MapReduce任务,提交到Hadoop集群上执行.MapReduce任务运行的结果会存在H ...

  4. 详解下一代神经网络-无监督对比学习框架SimCLR

    背景 今天介绍下SimCLR,也是Hinton老爷子在今年提出的工作.首先介绍下为什么下一代神经网络需要无监督对比学习.目前整个人工智能行业的落地,其实都依赖于监督学习模式,无论是OCR.ASR.TT ...

  5. C#中Hashtable、Dictionary详解以及写入和读取对比

    转载:http://www.cnblogs.com/chengxingliang/archive/2013/04/15/3020428.html 在本文中将从基础角度讲解HashTable.Dicti ...

  6. SpringBoot 整合 Redis 使用详解(StringRedisTemplate 和 RedisTemplate 对比分析)

    背景: 最近项目采用前后端分离的架构,单点登录系统采用Redis存储用户session信息,在这里总结下springboot整合redis的详细过程,以及部分源码分析 1.前期准备 首先保证安装好re ...

  7. 最全面的HIVE详解

    Hive简介 hive详解 hive入门必看 上图是OLAP引擎整体架构图,分为三个层面:数据存储层,计算资源层以及OLAP服务层.(我们从olap引入hive,如果重点关注hive,这部分作为扩展即 ...

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

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

  9. python海量数据分析师职业技能_大数据分析师技能图谱详解与零基础自学内容大全...

    全球的数据量正在以每18个月翻一倍的惊人速度增长,世界正在高速数字化,大数据堪比石油,如何掘金大数据是所有个人.企业和国家的机遇和挑战.中国是人才大国,能理解和应用大数据的创新人才更是稀缺资源.大数据 ...

最新文章

  1. java设计模式---观察者模式
  2. c++学习笔记之构造函数
  3. python按章节分割txt_python爬虫,爬取小说
  4. python-2:工欲善其事,必先利其器 修改jupyter保存文件目录(亲测)
  5. 归并排序的时间复杂度为什么为nlogn
  6. ip 十进制 整型 java_IP地址转换成10进制整数(zt)
  7. 《Adobe Photoshop大师班:经典作品与完美技巧赏析》即将上市
  8. 二叉树 中序遍历 python_leetcode No.105 从前序与中序遍历序列构造二叉树
  9. 【DL-CV】正则化,Dropout
  10. 七周七语言——Prolog(二)
  11. android imagebutton 动画,android – ImageButton Icon Tint基于State
  12. 2021年老杨通信工程师中级互联网技术视频讲解
  13. 网络安全工程师视频教程从入门到精通学习_网络安全入门教程
  14. surfacepro4黑苹果触屏_surface pro 4 黑苹果 (surface book 1适用)
  15. 思科网络模拟器7.3.1版本的下载和安装
  16. 百度地图根据经纬度定位
  17. 为什么家里要有公网IP
  18. 【C++教程】04.求1加到100
  19. Xperf 使用方法
  20. Flutter 3.0 发布啦~快来看看有什么新功能-2022 Google I/O

热门文章

  1. CentOS 7第一次使用时的基础配置
  2. 分布式大型互联网企业架构
  3. 一个web图片热点生成工具(winform开发) 附源码
  4. 用 Servlet 进行上载的原理和实现
  5. web后端http协议使用过程中安全防范及https协议实现原理
  6. 计算机专业男生宿舍,实拍大学男生宿舍,男生们不是玩电脑游戏,就是瘫在床上看手机!...
  7. java jmx 监控tomcat_jmx监控之Tomcat
  8. java jpanel 叠加_如何添加多个扩展JPanel到Java中的一个JFrame中?
  9. verilog实现多周期处理器之——(一)基本概念以及总体框架
  10. (二)PowerLink理论知识