Hive-5-Hive SQL之資料型別和儲存格式
原文地址:https://www.cnblogs.com/qingyunzong/p/8733924.html
一、資料型別
1.1、基本資料型別
Hive 支援關係型資料中大多數基本資料型別,和其他的SQL語言一樣,這些都是保留字。需要注意的是所有的這些資料型別都是對Java中介面的實現,因此這些型別的具體行為細節和Java中對應的型別是完全一致的。例如,string型別實現的是Java中的String,float實現的是Java中的float,等等。
1.2、複雜型別
二、儲存格式
Hive會為每個建立的資料庫在HDFS上建立一個目錄,該資料庫的表會以子目錄形式儲存,表中的資料會以表目錄下的檔案形式儲存。
2.1、textfile
textfile為預設格式,儲存方式為行儲存。資料不做壓縮,磁碟開銷大,資料解析開銷大。
2.2、SequenceFile
SequenceFile是Hadoop API提供的一種二進位制檔案支援,其具有使用方便、可分割、可壓縮的特點。
SequenceFile支援三種壓縮選擇:NONE, RECORD, BLOCK。 Record壓縮率低,一般建議使用BLOCK壓縮。
2.3、RCFile
一種行列儲存相結合的儲存方式。
2.4、ORCFile
資料按照行分塊,每個塊按照列儲存,其中每個塊都儲存有一個索引。hive給出的新格式,屬於RCFILE的升級版,效能有大幅度提升,而且資料可以壓縮儲存,壓縮快 快速列存取。
2.5、Parquet
Parquet也是一種行式儲存,同時具有很好的壓縮效能;同時可以減少大量的表掃描和反序列化的時間。
三、資料格式
當資料儲存在文字檔案中,必須按照一定格式區別行和列,並且在Hive中指明這些區分符。Hive預設使用了幾個平時很少出現的字元,這些字元一般不會作為內容出現在記錄中。
Hive預設的行和列分隔符如下表所示: