此博文是自己學習hive的一些學習心得,可能有些地方理解的不對,如有不妥之後,忘能不吝賜教!!!
目錄
hive是什麼
資料操作
執行原理 分割槽
分桶hive從本質上來說是乙個倉庫,是乙個分析框架,它本身不儲存資料,連最起碼的元資料資訊也不儲存。
它可以通過mysql或(derby)對存放在hdfs上面的資料進行對映,其中元資訊存放在mysql或derby中。
它完全依賴hdfs和mapreduce。
經過對映後的資料,在hive看來就可以認為是一張類似資料庫中的一張表了,可以使用hql(類似sql)語言對資料進行操作。hive在0.14版本之前是不支援行級別的插入的,每次更新必須全量覆蓋;在0.14版本之後,預設行級別的插入、更新、刪除操作也是不支援的,需要更改配置實現。
hql執行時,是通過hive內建的hql解析引擎,將hql預計翻譯成乙個或多個mapreduce任務執行,mapreduce執行速度畢竟慢,由此可以看出,hive處理資料一般是在離線情況下對資料進行分析的,如果是要對資料進行實時的處理的任務,hive不能勝任。
在hive中執行select操作,一般會對整張表進行掃瞄,為了使查詢更高效,可以在根據資料表中的某一列進行分割槽操作,比如儲存的是使用者的日誌資料,可以根據日誌的時間按天分割槽,這樣在hdfs時間儲存的時候,每個分割槽的資料會存在單獨的資料夾中,對資料進行檢索時,可以指定分割槽進行檢索,這樣可以大大增加檢索效率。當然乙個表可以存在多個分割槽,也可以在某個分割槽的基礎上再進行分割槽,比如先按照國家分割槽,再按照時間分割槽。【分割槽字段不會在資料中實際儲存】
分桶是hive支援的另一種高效檢索資料的方式,分桶是對某列的資料求hash值,然後再對此值與分桶數n進行取餘數操作,比如餘數為0,則資料放在0號桶中。分桶字段在資料列中是實際存在的。
hive學習心得二
4.hiveql資料操作 a 像管理表中裝載資料 insert overwrite table table name partition column name 值1 column name2 值2 select column name from table name b 匯出資料 1 hadoop...
學習心得 python學習心得
自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...
學習心得 我的學習心得
我是乙個已經步入中年的70後,離開校園已經20年了,因為當年的政策因素而未能圓我的大學夢,在20年的工作過程中總是因為缺少一張大學文憑而失去了很多機會,曾經也考慮過自考,但是乙個人去面對的時候總感覺心有餘而力不足。2018年3月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...