HIVE中常见文件存储格式比较
文件格式
在HIVE中,常见的文件存储格式有
- TextFile
- Parquet
- ORC
- Sequence
- RC
- AVRO
建表语句
这里我们根据不同的文件格式,新建测试表。
--textfile文件格式
CREATE TABLE `test_textfile`(`id` STRING,…,`desc` STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS textfile;
--parquet文件格式
CREATE TABLE `test_parquet`(`id` STRING,…,`desc` STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS parquet;
--orc文件格式
CREATE TABLE `test_orc`(`id` STRING,…,`desc` STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS orc;
--sequence文件格式
CREATE TABLE `test_sequence`(`id` STRING,…,`desc` STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS sequence;
--rc文件格式
CREATE TABLE `test_rc`(`id` STRING,…,`desc` STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS rc;
--avro文件格式
CREATE TABLE `test_avro`(`id` STRING,…,`desc` STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS avro;
区别比较
我们从同一个源表新增数据到这六张测试表,为了体现存储数据的差异性,我们选取了一张数据量比较大的源表(源表数据量为30000000条)。
下面从存储空间和SQL查询两个方面进行比较。
其中SQL查询为包含group by的计量统计和不含group by的计量统计。
sql01:select count(*) from test_table;
sql02:select id,count(*) from test_table group by id;
相关的查询结果如下(为了防止出现偶然性,我们每条SQL至少执行三次,取平均值)
文件存储格式 | HDFS存储空间 | 不含group by | 含group by |
---|---|---|---|
TextFile | 7.3 G | 105s | 370s |
Parquet | 769.0 M | 28s | 195s |
ORC | 246.0 M | 34s | 310s |
Sequence | 7.8 G | 135s | 385s |
RC | 6.9 G | 92s | 330s |
AVRO | 8.0G | 240s | 530s |
结论
从上面的测试结果可以看出
- 从占用存储空间来看,ORC和Parquet文件格式占用的空间相对而言要小得多。
- 从执行SQL效率来看,Parquet文件格式查询耗时要相对而言要小得多。
实际情况
从目前所得的结论来看,Hive中选用ORC和Parquet文件格式似乎更好一点,但是为什么Hive默认的文件存储格式是TextFile?
这是因为大多数情况下源数据文件都是以text文件格式保存(便于查看验数和防止乱码),这样TextFile文件格式的Hive表能直接load data数据。
如果说我们想使用ORC文件或者Parquet文件格式的表数据,可以先通过TextFile表加载后再insert到指定文件存储格式的表中。而这些不同文件格式的表我们可以通过数据分层保存,便于后期进行数据统计。
HIVE中常见文件存储格式比较相关推荐
- 【Hive】hive表的文件存储格式
在Hive中,文件的存储格式主要有:TEXTFILE.SEQUENCEFILE.ORC.PARQUET. 其中,TEXTFILE.SEQUENCEFILE是基于行存储,ORC.PARQUET基于列存储 ...
- 3.2-3.3 Hive中常见的数据压缩
一.数据压缩 1. 数据压缩数据量小*本地磁盘,IO*减少网络IOHadoop作业通常是IO绑定的; 压缩减少了跨网络传输的数据的大小; 通过简单地启用压缩,可以提高总体作业性能; 要压缩的数据必须支 ...
- Linux中常见文件类型及文件系统类型
Linux中常见的七种文件类型: - 普通文件 d 目录文件 l 链接文件(指向另一个文件,类似于它的快捷方式) s 套接字文件 b 块设备文件,二进制文件 c 字符设备文件 p 命名管道文件 Lin ...
- IOS-项目中常见文件介绍
一.项目文件结构示意图 二.文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要用来放依赖的框架 3.test文件夹是 ...
- (转)ASP.NET中常见文件类型及用途
从入门导师那继承来的习惯,也是加上自己的所谓经验判断,一直对WEB开发不太感冒,可惜呀,从业近二十年,还得从头开始对付HTML.CSS.JS.ASPX,以前的经验,用不上啦!!!先从好好学习ASPX开 ...
- hive中常见的日期函数
常见hive的时间函数1.时间戳转化为日期函数 from_unixtime('1566390082') from_unixtime('1566390082', 'yyyy-MM-dd') from_u ...
- Verilog中常见文件操作($readmemb,$fopen,$fwrite,$fclose)
目录 一.$readmemb/$readmemh 二.$fopen,$fwrite,$fclose 三.仿真验证 四.参考 一.$readmemb/$readmemh $readmemb和$readm ...
- 关于Hive中的存储格式及压缩格式详解
最近面试,遇到了关于Hive的数据存储格式的问题,回答不尽人意,抽时间总结多看看关于Hive存储格式和压缩格式的内容. Hive底层数据是以HDFS文件的形式存储在Hadoop中的,选择一个合适的文件 ...
- sqlserver exec查询存储过程取某一个字段_ORC文件存储格式的深入探究
因为生病,另外还在做牙齿的根管治疗,痛不欲生,短更一篇. 年前都在梳理<大数据成神之路>的目录还有内容,另外Flink的公开课程也在规划大纲和目录.不知道我在说什么,看一下这里<20 ...
- linux怎么看文件是否orc格式,hive文件存储格式orc,parquet,avro对比
orc文件存储格式 ORC文件也是以二进制方式列式存储的,所以是不可以直接读取,ORC文件也是自解析的,它包含许多的元数据,这些元数据都是同构ProtoBuffer进行序列化的.文件结构如下 ORC文 ...
最新文章
- Pytorch张量tensor的使用
- 算法工程与计算机科学,合并的分水岭算法-计算机工程与科学.PDF
- BeanUtils的方法
- 微型计算机技术及应用选择题,微机(微型计算机技术及应用)选择题及答案(最终版).docx...
- 并查集——小米笔试题求朋友圈个数,分小组个数
- win10让一个绿色软件开机启动
- python基础知识-Python基础知识点总结
- matlab 指定路径保存图片_关于matlab图片保存方式
- 商务办公软件应用与实践【4】
- AHT20温湿度传感器数据采集
- (待补)(递归)九连环问题*
- python工作遇到的问题_工作中遇到的问题收集--.NET
- 十门峡旅游攻略:临安十门峡的春天
- txt文本怎么去除重复项
- 使用gdal的ogr创建shapefile文件(c++)
- ubuntu 内存占用过高导致卡死 解决办法
- html5 在线摄像头,HTML5在线摄像头使用
- 心心念念想打游戏,游戏 套路有哪些?怎么做留存?
- serverlet总结
- java byte与char互转原理_java byte与char互转原理