1 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
1. Hive中的表是純邏輯表,就只是表的定義等,即表的元數(shù)據(jù)。Hive本身不存儲數(shù)據(jù),它完全依賴HDFS和MapReduce。這樣就可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,并將SQL語句最終轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。 而HBase表是物理表,適合存放非結(jié)構(gòu)化的數(shù)據(jù)。
2. Hive是基于MapReduce來處理數(shù)據(jù),而MapReduce處理數(shù)據(jù)是基于行的模式;HBase處理數(shù)據(jù)是基于列的而不是基于行的模式,適合海量數(shù)據(jù)的隨機(jī)訪問。
3. HBase的表是疏松的存儲的,因此用戶可以給行定義各種不同的列;而Hive表是稠密型,即定義多少列,每一行有存儲固定列數(shù)的數(shù)據(jù)。
4. Hive使用Hadoop來分析處理數(shù)據(jù),而Hadoop系統(tǒng)是批處理系統(tǒng),因此不能保證處理的低遲延問題;而HBase是近實(shí)時(shí)系統(tǒng),支持實(shí)時(shí)查詢。
5. Hive不提供row-level的更新,它適用于大量append-only數(shù)據(jù)集(如日志)的批任務(wù)處理。而基于HBase的查詢,支持和row-level的更新。
6. Hive提供完整的SQL實(shí)現(xiàn),通常被用來做一些基于歷史數(shù)據(jù)的挖掘、分析。而HBase不適用與有join,多級索引,表關(guān)系復(fù)雜的應(yīng)用場景。
- 1 回答
- 0 關(guān)注
- 843 瀏覽
添加回答
舉報(bào)