hbase和hive的差別是什麼,各自適用在什麼場景中?(轉載)
阿新 • • 發佈:2021-07-13
https://blog.51cto.com/xpleaf/2090122
先放結論:Hbase和Hive在大資料架構中處在不同位置,Hbase主要解決實時資料查詢問題,Hive主要解決資料處理和計算問題,一般是配合使用。
一、區別:
Hbase: Hadoop database 的簡稱,也就是基於Hadoop資料庫,是一種NoSQL資料庫,主要適用於海量明細資料(十億、百億)的隨機實時查詢,如日誌明細、交易清單、軌跡行為等。
Hive:Hive是Hadoop資料倉庫,嚴格來說,不是資料庫,主要是讓開發人員能夠通過SQL來計算和處理HDFS上的結構化資料,適用於離線的批量資料計算。
通過元資料來描述Hdfs上的結構化文字資料,通俗點來說,就是定義一張表來描述HDFS上的結構化文字,包括各列資料名稱,資料型別是什麼等,方便我們處理資料,當前很多SQL ON Hadoop的計算引擎均用的是hive的元資料,如Spark SQL、Impala等;
基於第一點,通過SQL來處理和計算HDFS的資料,Hive會將SQL翻譯為Mapreduce來處理資料;
二、關係
在大資料架構中,Hive和HBase是協作關係,資料流一般如下圖:
通過ETL工具將資料來源抽取到HDFS儲存;
通過Hive清洗、處理和計算原始資料;
HIve清洗處理後的結果,如果是面向海量資料隨機查詢場景的可存入Hbase
資料應用從HBase查詢資料;