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、存儲句柄