Hive常见数据格式及存储(一)

本文通过实测对比了Hive中多种数据存储格式的优劣,包括TEXTFILE、SEQUENCEFILE、RCFILE、ORC、PARQUET及JSONFILE,发现ORC和PARQUET在存储效率上显著优于其他格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言:

大数据应用中,我认为最核心的两个点就是 “存储” 和 “计算”, 在现在的大数据计算中,各种计算引擎的出现,迭代优化 使得数据计算能够快速的产生结果,但是数据存储以及数据格式,始终属于最为基本的,合理的数据存储以及数据格式,配合适合的计算引擎,能够使数据计算得到最大的提升,并且减少磁盘开销;

这里,我使用Hive作为计算引擎,来说明 数据格式对存储的重要性;

常见的数据存储格式

在hive中,提供的以下几种数据的存储格式:

  : SEQUENCEFILE
  | TEXTFILE    -- (Default, depending on hive.default.fileformat configuration)
  | RCFILE      -- (Note: Available in Hive 0.6.0 and later)
  | ORC         -- (Note: Available in Hive 0.11.0 and later)
  | PARQUET     -- (Note: Available in Hive 0.13.0 and later)
  | AVRO        -- (Note: Available in Hive 0.14.0 and later)
  | JSONFILE    -- (Note: Available in Hive 4.0.0 and later)
  | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname

其中,TEXTFILE是最最基本的格式,也是默认的格式,后面我们会针对其余几种数据格式来做测试,让数据来说话!!!
在这里插入图片描述

验证

文本格式

在这里插入图片描述
在这里插入图片描述
上述两幅图中,创建了一种基本的hive表,并没有指定数据格式,可以看出 TEXTFILE 就是作为最基本的数据格式类型,下面开始导入数据;
在这里插入图片描述在这里插入图片描述
使用TEXTFILE的数据格式,导入的数据大小为18.1M;

SEQUENCEFILE

创建 sequencefile 格式的表;
在这里插入图片描述
导入数据 查看数据大小;
在这里插入图片描述
在这里插入图片描述
在使用sequencefile 格式的数据 大小为 19.6M ,竟然比文本的数据还要大,搞笑了~~~

RCFILE

创建rc 格式表 并导入数据;
在这里插入图片描述
查看文件大小;
在这里插入图片描述
嗯,用rcFile格式之后,文件大小小了10% 左右,嗯,终于少了~~~

ORC

好了,重头戏开始了;创建ORC格式表,并导入数据;
在这里插入图片描述
查看文件大小。
在这里插入图片描述
嗯,OMG~~ 这么小了么。发生了啥呢,别急后面细细说来;

PARQUET

创建 PARQUET 格式表,导入数据
在这里插入图片描述
查看文件大小
在这里插入图片描述
嗯,PARQUET 格式的数据,虽然小了,但是好像和ORC对比起来,没减少多少嘛~ ,其实ORC的数据格式是自带压缩的,默认采用了ZLIB 的压缩格式,所以,如果我们 让没有压缩格式的PARQUET 和带了 压缩 的ORC 对比,似乎不怎么公平;下面个PARQUET 来个压缩试试

PARQUET (有压缩)

首先,我们先设置 PARQUET 的压缩格式;
在这里插入图片描述
然后在创建一张 parquert 表,从新测试看看;
在这里插入图片描述
查看文件大小
在这里插入图片描述
在采用了 压缩之后的 parquet 大小还是看的下去的;那么好奇的小伙伴,可能对 不压缩的ORC 敢兴趣了,下面我们就来试试看不压缩的ORC,怎么样;

ORC (不压缩)

创建一张数据格式为ORC 并且指定ORC的压缩格式为空的表;
在这里插入图片描述
查看文件大小;
在这里插入图片描述
嗯,嗯,嗯,还是比较厉害的啊~~

总结

对比数据

数据格式文件大小
TEXTFILE18.1M
RCFILE17.9 M
SEQUENCEFILE19.6 M
ORC(有压缩)2.8 M
ORC(无压缩)7.7 M
PARQUET(有压缩)3.9 M
PARQUET(无压缩)13.1 M

上表发现,如果从存储的角度对比 ORC 和 PARQUET 明显优于别的格式数据;这两种也是工作中,常用的两种格式;

预知原因,请继续关注,后一篇文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值