自定义Hive文件和记录格式

来源:互联网 发布:2016有什么网络神书 编辑:程序博客网 时间:2024/06/14 11:56
文件格式

文本格式 :textfile(默认)
二进制存储格式:
Sequencefile 是含有键-值对的二进制文件,是Hadoop本身就支持的一种标准的文件格式,在定义表结构是可通过stored as Sequencefile语句指定。

RCfile 
大多数的Hadoop和Hive都是按照行式存储的,在大多数情况下,都是比较高效的。
这种高效原因:大多数的表的具有字段个数都不大;对文件按块进行压缩对于需要处理重复数据的情况比较高效;同时很多的处理和调试工具都可以很好的应用于行式存储的。

然而并非所有的工具盒数据存储都是按照行式存储的,对于特定的数据类型的数据和应用,采用列式存储有时会更好。如一张表有成百上千个字段,而大多数的查询只需要其中的一小部分字段,这时扫描所有的行过滤掉大部分的数据显然是浪费的。
列式存储进行压缩非常高效。同时一些列式存储并不需要物理存储null值的列。

记录格式:SerDe 序列化/反序列化的简写形式
一个SerDe包含了将一条记录的非结构化字节转化成Hive可以使用的一条记录的过程。可以使用Java实现SerDe.
Hive本身自带了几个内置的SerDe  RegexSerDe、CSV和TSV SerDe、Json SerDe及一些第三方可供选择。

0 0