列式儲存和行式儲存
5.png
上圖左邊為邏輯表,右邊第乙個為行式儲存,第二個為列式儲存。
** 行儲存的特點: **查詢滿足條件的一整行資料的時候,列儲存則需要去每個聚集的字段找到對應的每個列的值,行儲存只需要找到其中乙個值,其餘的值都在相鄰地方,所以此時行儲存查詢的速度更快。
** 列儲存的特點: **因為每個欄位的資料聚集儲存,在查詢只需要少數幾個欄位的時候,能大大減少讀取的資料量;每個欄位的資料型別一定是相同的,列式儲存可以針對性的設計更好的設計壓縮演算法。
hive中常用的儲存格式
textfile
textfile為預設格式,儲存方式為行儲存。
orcfile
hive/spark都支援這種儲存格式,它儲存的方式是採用資料按照行分塊,每個塊按照列儲存,其中每個塊都儲存有乙個索引。特點是資料壓縮率非常高。
6.png
parquet
parquet也是一種行式儲存,同時具有很好的壓縮效能;同時可以減少大量的表掃瞄和反序列化的時間。
根據不同的格式建立表
textfile
建立表create table textfile(
row format delimited fields terminated by '\t'
stored as textfile;
insert into table textfile select * from source_log;
檢視占用的磁碟空間
7.png
orc建立表
create table orc(
row format delimited fields terminated by '\t'
stored as orc;
insert into table orc select * from source_log;
檢視占用的磁碟空間
8.png
parquet
建立表create table parquet(
row format delimited fields terminated by '\t'
stored as parquet;
insert into table parquet select * from source_log;
檢視占用的磁碟空間
9.png
磁碟空間占用大小比較
orc(7.8m)
查詢語句的比較
textfile表
hive (count_log)> select id from textfile limit 30;
10.png
orc表
hive (count_log)> select id from orc limit 30;
11.png
parquet表
hive (count_log)> select id from parquet limit 30;
12.png
把設定儲存格式和壓縮結合使用,可以最大的減少儲存空間。
hive儲存格式
textfile 預設格式,行儲存,匯入資料時直接把資料檔案拷貝到hdfs的hive表目錄 hive location 資料檔案可先經過gzip等壓縮,再導hive表 系統自動檢查,執行查詢時自動解壓 但使用這種方式,hive不會對資料進行切分,從而無法對資料進行並行操作.優點 資料載入快 load...
Hive儲存格式
hive的四種儲存格式 textfile sequencefile rcfile parquet 列式儲存和行式儲存的比較 優點缺點 行式儲存 一行資料是一條記錄,放在同乙個block塊中 只查詢幾個列時,也會讀取整行的資料,當資料量大時,影響效能 方便進行insert update操作 不同型別的...
hive 儲存格式
hive有textfile,sequencefile,rcfile三種檔案格式。textfile為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理。sequencefile,rcfile格式的表不能直接從本地檔案匯入資料,資料要先匯入到textfile格式的...