1. Hive中的表是純邏輯表,就只是表的定義等,即表的元資料。Hive本身不儲存資料,它完全依賴HDFS和MapReduce。這樣就可以將結構化的資料檔案對映為為一張資料庫表,並提供完整的SQL查詢功能,並將SQL語句最終轉換為MapReduce任務進行執行。 而HBase表是物理表,適合存放非結構化的資料。
2. Hive是基於MapReduce來處理資料,而MapReduce處理資料是基於行的模式;HBase處理資料是基於列的而不是基於行的模式,適合海量資料的隨機訪問。
3. HBase的表是疏鬆的儲存的,因此使用者可以給行定義各種不同的列;而Hive表是稠密型,即定義多少列,每一行有儲存固定列數的資料。
4. Hive使用Hadoop來分析處理資料,而Hadoop系統是批處理系統,因此不能保證處理的低遲延問題;而HBase是近實時系統,支援實時查詢。
5. Hive不提供row-level的更新,它適用於大量append-only資料集(如日誌)的批任務處理。而基於HBase的查詢,支援和row-level的更新。
6. Hive提供完整的SQL實現,通常被用來做一些基於歷史資料的挖掘、分析。而HBase不適用與有join,多級索引,表關係複雜的應用場景。
1. Hive中的表是純邏輯表,就只是表的定義等,即表的元資料。Hive本身不儲存資料,它完全依賴HDFS和MapReduce。這樣就可以將結構化的資料檔案對映為為一張資料庫表,並提供完整的SQL查詢功能,並將SQL語句最終轉換為MapReduce任務進行執行。 而HBase表是物理表,適合存放非結構化的資料。
2. Hive是基於MapReduce來處理資料,而MapReduce處理資料是基於行的模式;HBase處理資料是基於列的而不是基於行的模式,適合海量資料的隨機訪問。
3. HBase的表是疏鬆的儲存的,因此使用者可以給行定義各種不同的列;而Hive表是稠密型,即定義多少列,每一行有儲存固定列數的資料。
4. Hive使用Hadoop來分析處理資料,而Hadoop系統是批處理系統,因此不能保證處理的低遲延問題;而HBase是近實時系統,支援實時查詢。
5. Hive不提供row-level的更新,它適用於大量append-only資料集(如日誌)的批任務處理。而基於HBase的查詢,支援和row-level的更新。
6. Hive提供完整的SQL實現,通常被用來做一些基於歷史資料的挖掘、分析。而HBase不適用與有join,多級索引,表關係複雜的應用場景。