Hive SQL資料型別和儲存格式

2021-09-12 11:12:16 字數 1418 閱讀 2114

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型別。資料型別之所以能限定欄位的資料儲存長度,是因為在建立表時在記憶體中嚴格劃定了位址空間,位...