hive从两个角度对表的存储进行管理,分别是行格式(row format)和文件格式(file format),行格式指行和一行中的字段如何存储
1、默认存储格式:分割的文本
在创建表时没有 row format或 sored as 子句,那么hive所使用的数据格式是分割的文本,每行存储一个数据行
默认的行内分隔符不是制表符,二是ASCII控制码集合中的Control-a。表中各行之间用换行符分割
集合类元素的默认分隔符是ontrol-b,用于分割array或struct或map的键-值对中的元素。默认的映射键(map key)分隔符为字符 control-c,用于分割map的键和值
默认存储格式通过属性:hive.default.fileformat设置,默认是 TextFile
create table …
等价于:使用八进制来表示分隔符,如001表示control-a
create table
row format delimited
fields terminated by ‘\001’
collection items terminated by ‘\002’
map keys terminated by ‘\003’
lines terminated by ‘\n’
sored as textfile;
2、二进制存储格式:顺序文件、avro数据文件、parquet文件、rcFile与ORCFile
3、使用定制的SerDe: RegexSerDe
4、存储句柄