3 資料型別和檔案格式

2021-09-18 06:56:50 字數 2541 閱讀 2682

個人記錄學習,大佬不喜勿噴。。。

hive 支援多種不同長度的整型和浮點型資料型別,支援布林型別,也支援無長度限制的字串型別。

hive v0.8.0版本中增加了時間戳資料型別和二進位制陣列資料型別。

資料型別

長度例子

tinyint

1byte有符號整數

20smalint

2byte有符號整數

20int

4byte有符號整數

20bigint

4byte有符號整數

20boolean

布林型別,true或者false

true

float

單精度浮點

3.14159

double

雙精度浮點

3.14159

string

字串行,可以指定字符集,也可使用單引號或者雙引號

『now is the time』,「for all good men」

timestamp(v0.8.0+)

整數/浮點數/字串

~binary(v0.8.0+)

位元組陣列

講乙個字串型別的列轉換為數值

…cast (s as int)…;

hive 中的列支援 struct map array 集合資料型別

在大資料系統中,不遵循標準格式的乙個好處就是可以提供更高吞吐量的資料。

hive 中並沒有鍵的概念,但是,使用者可以對錶建立索引。

逗號分隔值 csv 製表符分隔值 tsv

分隔符

描述\n

對於文字檔案來說,每一行都是一條記錄

\a用於分隔字段(列)。在create table 語句中可以使用八進位制編碼 \001 表示

^b用於分隔attary 或者 struct中元素,或用於map中鍵-值對之間的分隔。在create table 語句中可以使用八進位制編碼\002表示

^c用於map中鍵和值之間的分隔。在create table 語句中可以使用八進位制編碼\003表示

使用者可以不使用這些預設的分隔符

create table employees(

name string,

salary float,

subordinates array,

deductions map,

address struct)

row format delimited

fields terminated by '\001'

collection items terminated by '\002'

map keys terminated by '\003'

lines terminated by '\n'

stored as textfile;

row format delimited fieldsterminated by』\001』 表示hive將使用^a字元座位列分割符。

row format delimited fcollection items terminated by 『\002』 表示 hive 將使用^b作為集合元素間的分隔符。

row format delimited map keys terminated by 『\003』 表示 hive 將使用^c作為map的鍵和值之間的分隔符。

lines terminated by 和 stroed as 不需要 row format delimited 關鍵字

hive 中 lines terminated by 僅支援字元『\n』也就是行與行之間的分隔符只能為『\n』

大多數情況下,大多數子句使用預設分隔符,只需要明確指定那些需要替換的分隔符即可。

以上規則只會影響到hive在讀區檔案後將如何進行劃分。

傳統資料庫是寫時模式(schema on write), 即資料在寫入資料庫時對模式進行檢查。

hive 對底層儲存並沒有這樣的控制。對於hive 要查詢的資料,有很多種方式對其進行建立、修改、甚至損壞。因此,hive不會在資料載入時進行驗證,而是在查詢時進行也就是讀時模式(schema on read)

hive(2)資料型別和檔案格式

hive支援關係型資料中大多數基本的資料型別,同時也支援關係型資料庫中很少出現的三種集合資料型別。hive中的列支援使用struct map array集合資料型別,下表中的語法示例是呼叫的內建函式。例如 建立表 hive create table emp name string,salary fl...

搜尋資料庫內部資訊和檔案格式

在之前的文章中,我展示過如何用乙個簡單的基於文字格式來儲存記錄,並且對於讀 寫這些記錄又意味著什麼。在這樣乙個系統中搜尋意味著你有相當多的工作要做,因為你需要掃瞄整個檔案。它不會真的為我們工作。所以,我們需要引入索引。索引其實是乙個很簡單的概念。鑑於我們有原始檔案,我們將有以下使用者名稱的索引 基本...

3DS檔案格式

1 讀取規則 3ds檔案的讀取規則如下 位元組 直接讀取 字 先讀低位位元組,後讀高位位元組,如ed 3c讀出後的字為3c ed 雙字 先讀低位字,後讀高位字,如ed 3c 25 43讀出後的雙字為43 25 3c ed 浮點數 直接讀取四個位元組。2 chunk chunk是3ds檔案的基本構成單...