1、基本資料型別
hive支援關係型資料中大多數基本資料型別
型別描述
示例boolean
true/false
true
tinyint
1位元組的有符號整數
-128~127 1y
smallint
2個位元組的有符號整數,-32768~32767
1sint
4個位元組的帶符號整數
1bigint
8位元組帶符號整數
1lfloat
4位元組單精度浮點數
1.0double
8位元組雙精度浮點數
1.0deicimal
任意精度的帶符號小數
1.0string
字串,變長
「a」,』b』
varchar
變長字串
「a」,』b』
char
固定長度字串
「a」,』b』
binary
位元組陣列
無法表示
timestamp
時間戳,納秒精度
122327493795
date
日期『2018-04-07』
2、複雜型別
型別描述
示例array
有序的的同型別的集合
array(1,2)
mapkey-value,key必須為原始型別,value可以任意型別
map(『a』,1,』b』,2)
struct
字段集合,型別可以不同
struct(『1』,1,1.0), named_stract(『col1』,』1』,』col2』,1,』clo3』,1.0)
二、儲存格式
hive會為每個建立的資料庫在hdfs上面建立乙個目錄,該資料庫的表會以子目錄的形式進行儲存,表中的資料會以表目錄下的檔案形式儲存,對於default資料庫,預設的預設資料庫沒有自己的目錄,default和資料庫下的表預設存放在/user/hive/warehouse目錄下。
sequencefile
rcfile
orcfile
rarquet
三、資料格式
資料儲存在文字檔案中,必須按照一定格式區別行和列,並且在hive中指明這些分隔符。hive預設使用了幾個平時很少出現的字元,這些字元一般不會作為內容出現在記錄中
分隔符描述
\n對於文字檔案來說,每行是一條記錄,所以\n 來分割記錄
^a (ctrl+a)
分割字段,也可以用\001 來表示
^b (ctrl+b)
用於分割 arrary 或者 struct 中的元素,或者用於 map 中鍵值之間的分割,也可以用\002 分割。
^c用於 map 中鍵和值自己分割,也可以用\003 表示。
資料型別和儲存
在c和c 中的浮點分為float和double。這2個浮點型別的區別在於寬度,在儲存方式上沒有區別。首先需要說明一點二進位制是沒辦法表示負數的,所以負數的二進位制表示有各種規範。c和c 採用的是ieee標準,下面用乙個float的例子來說明吧 先將這個實數的絕對值化為二進位制格式 將這個二進位制格式...
HiveSQL中複雜資料型別操作
hivesql執行優化引數配置 hivesql常用資料處理語句 hivesql中複雜資料型別操作 hive有三種複雜資料型別array map和struct,複雜資料型別允許任意層次的巢狀。目錄 array型別 map型別 struct型別 name與locations之間製表符分隔,locatio...
MySQL資料型別和儲存機制
資料型別算是一種字段約束,它限制每個欄位能儲存什麼樣的資料 能儲存多少資料 能儲存的格式等。mysql mariadb大致有5類資料型別,分別是 整形 浮點型 字串型別 日期時間型以及特殊的enum和set型別。資料型別之所以能限定欄位的資料儲存長度,是因為在建立表時在記憶體中嚴格劃定了位址空間,位...