hive與關係型數據庫對比

  1. 關係數據庫裏,表的加載模式是在數據加載時候強制確定的(表的加載模式是指數據庫存儲數據的文件格式),如果加載數據時候發現加載的數據不符合模式,關係數據庫則會拒絕加載數據,這個就叫“寫時模式”,寫時模式會在數據加載時候對數據模式進行檢查校驗的操作。Hive在加載數據時候和關係數據庫不同,hive在加載數據時候不會對數據進行檢查,也不會更改被加載的數據文件,而檢查數據格式的操作是在查詢操作時候執行,這種模式叫“讀時模式(schema on read)”。在實際應用中,寫時模式在加載數據時候會對列進行索引,對數據進行壓縮,因此加載數據的速度很慢,但是當數據加載好了,我們去查詢數據的時候,速度很快。但是當我們的數據是非結構化,存儲模式也是未知時候,關係數據操作這種場景就麻煩多了,這時候hive就會發揮它的優勢。
  2. 關係數據庫一個重要的特點是可以對某一行或某些行的數據進行更新、刪除操作,hive不支持對某個具體行的操作,hive對數據的操作只支持覆蓋原數據和追加數據。Hive也不支持事務和索引。更新、事務和索引都是關係數據庫的特徵,這些hive都不支持,也不打算支持,原因是hive的設計是海量數據進行處理,全數據的掃描是常態,針對某些具體數據進行操作的效率是很差的,對於更新操作,hive是通過查詢將原表的數據進行轉化最後存儲在新表裏,這和傳統數據庫的更新操作有很大不同。
  3. Hive也可以在hadoop做實時查詢上做一份自己的貢獻,那就是和hbase集成,hbase可以進行快速查詢,但是hbase不支持類SQL的語句,那麼此時hive可以給hbase提供sql語法解析的外殼,可以用類sql語句操作hbase數據庫。
原文鏈接:
http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章