hive入门们学习:orcFile和parquet存储格式简介
hive的的表格的存储格式默认情况下是textfile格式的,textfile格式的数据是按照行存储数据。但是在这里介绍的两种企业最常用的数据存储格式orcfile和parquet存储格式,这两种存储格式是根据我们的业务需求--经常需要按照对一列的数据进行存取和处理,例如,机器学习中我们抽样出每一个特征(一列数据)进行特征学习,这个时候,列存储就可以发挥很大的作用了,由下面的图片来看看行存储和列存储的区别:
对于上面的存储格式来说,我们在机器学习中我们在提取A,B,C,D,ED的时候,行存储格式要加载全部的数据,但是看看列存储,优势就来了,只需要存储行存储的1/3的数据就可以啦,还要深究的话,有内存中的页的的大小情况,就太多了。下面我们来看看具体的案例:
创建一个表,存储格式按照orc存储,加载数据可以用select和insert函数:有可能是由于数据集太小,这里的orc存储格式的数据量却大于textfile的函数。一个556B,一个264B,不知道为什么。
这里我们在看看另一个存储格式就是parquet存储,他的存储格式大小是553B,又变大了。。。
在改变存储格式的时候,按照如下格式来写就可以:因为大部分情况都是文本的列存储格式数据的,所以,首先我们是创建一个简单的表格,然后再用select语句创建表格的同时改变数据的存储方式。
create table xxx( )
stored as orc
select xxx from yyy