大數據培訓經典面試題分析-Hive與傳統數據庫的區別
Hive與傳統的關系型數據庫有很多類似的地方,例如對SQL的支持。但是其基于HDFS與MapReduce的事實使得它與傳統的數據庫在很多方面有很大的不同,在一些特性的支持下也受到底層架構的限制,但是這些限制隨著版本迭代正在不斷被消除,使得Hive看起來越來越像傳統的數據庫。
1、數據存儲位置。Hive是建立在Hadoop之上的,所有的Hive的數據都是存儲在HDFS中的。而數據庫則可以將數據保存在塊設備或本地文件系統中。
2、數據格式。Hive中沒有定義專門的數據格式,由用戶指定,需要指定三個屬性:列分隔符,行分隔符,以及讀取文件數據的方法。數據庫中,存儲引擎定義了自己的數據格式。所有數據都會按照一定的組織存儲。
3、數據更新。Hive的內容是讀多寫少的,因此,不支持對數據的改寫和刪除,數據都在加載的時候中確定好的。數據庫中的數據通常是需要經常進行修改。
4、執行延遲。Hive在查詢數據的時候,需要掃描整個表(或分區),因此延遲較高,只有在處理大數據是才有優勢。數據庫在處理小數據是執行延遲較低。
5、索引。Hive沒有,數據庫有
6、執行。Hive是MapReduce,數據庫是Executor
7、可擴展性。Hive高,數據庫低
8、數據規模。Hive大,數據庫小