Hive與資料庫比較 hive中4個By的比較

2021-10-05 02:19:08 字數 920 閱讀 3069

hive 和資料庫除了擁有類似的查詢語言,再無類似之處。

1資料格式:hive資料格式可以使用者自定義,mysql有自己的系統定義格式;

2資料規模:hive儲存的資料量超級大,而mysql只是儲存一些少量的業務資料;

3資料儲存位置:hive 儲存在 hdfs 。資料庫將資料儲存在塊裝置或者本地檔案系統中。

4資料更新 :hive 中不建議對資料的改寫。而資料庫中的資料通常是需要經常進行修改的

1)sort by:分區內有序;

不是全域性排序,其在資料進入reducer前完成排序,也就是說它會在資料進入reduce之前為每個reducer都產生乙個排序後的檔案。因此,如果用sort by進行排序,並且設定mapreduce.job.reduces>1,則sort by只保證每個reducer的輸出有序,不保證全域性有序。

2)order by:全域性排序,只有乙個 reducer;

order by會對輸入做全域性排序,因此只有乙個reducer(多個reducer無法保證全域性有序),然而只有乙個reducer,會導致當輸入規模較大時,消耗較長的計算時間

3)distrbute by:類似 mr 中 partition,進行分割槽,結合 sort by 使用。

distribute by是控制在map端如何拆分資料給reduce端的。類似於mapreduce中分割槽partationer對資料進行分割槽

hive會根據distribute by後面列,將資料分發給對應的reducer,預設是採用hash演算法+取餘數的方式。

4)cluster by:當 distribute by 和 sorts by 字段相同時,可以使用 cluster by 方式。cluster

by 除了具有 distribute by 的功能外還兼具 sort by 的功能。但是排序只能是公升序排序,不能

指定排序規則為 asc 或者 desc

Hive和資料庫比較

由於 hive 採用了 sql 的查詢語言 hql,因此很容易將 hive 理解為資料庫。其實從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。本文將從多個方面來闡述 hive 和資料庫的差異。資料庫可以用在 online 的應用中,但是 hive 是為資料倉儲而設計的,清楚這一...

Hive和資料庫比較

由於 hive 採用了類似sql 的查詢語言 hql hive query language 因此很容易將 hive 理解為資料庫。其實從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。本文將從多個方面來闡述 hive 和資料庫的差異。資料庫可以用在 online 的應用中,但是...

HIVE倉庫擴充套件 連線hive資料庫

一 命令列客戶端工具 hivecli cli是和hive互動的最簡單 最常用方式,你只需要在乙個具備完整hive環境下的shell終端中鍵入hive即可啟動服務。beeline beeline是hive新的命令列客戶端工具。hive客戶端工具後續將使用beeline 替代hivecli 並且後續版本...