hive 介紹

1.概述

  Hive是建立在Hadoop上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制

  Hive 定義了簡單的類SQL查詢語言HQL,它允許熟悉SQL的用戶查詢數據,也允許熟悉Map/Reduce的開發者開發自定義的mapperreducer來處理內建的mapperreducer無法完成的複雜的分析工作

  Hive不是一個完整的數據庫,受限於Hadoop和HDFS的約束和侷限性,Hive可以在HDFS上存儲的大規模數據集上運行查詢,但是不能提供實時查詢。Hive可以通過查詢或文件將數據導入表中,但是不支持記錄級別的更新、插入和刪除操作。

  Hive被設計用來處理大規模數據,因此提交查詢到返回結果所需的時間可能很長,所以,Hive最適合用來維護海量數據,對數據進行數據挖掘,給出意見和報告

  不同於其他傳統數據庫的寫時模式(即在數據寫入數據庫時對模式進行檢查),Hive在數據加載時不會進行數據模式檢查,而是在查詢時進行,也就是讀時模式


2.常用概念

1)內表、外表:

    關鍵字external 區分,外表無控制權,外表用Location 確定路徑;內表drop 會同時drop 元數據和關聯數據;外表只是drop 元數據;對於元數據有獨立的關係型數據庫維護(MYSQL)


3.使用

 - desc

 - hive strict

 - 調用Hive時,添加-S(大寫)參數,可以開啓靜默模式

 - 以--開頭的行會被註釋掉

mysqlsql執行順序,hive可以參考:

    1)FROM

    2)ON

    3)OUTER(JOIN)

    4)WHERE

    5)GROUPBY

    6)CUBE|ROLLUP

    7)HAVING

    8)SELECT

    9)DISTINCT

    10)ORDERBY

    11)TOP

4.數據加工

對數據進行深加工,一般使用transformudfreflectUDF三種方法

- Transform能在mapreduce階段運行,輸入爲mapreduce階段的所有數據,輸出即爲該階段的輸出。方便、快捷,只要一個程序能從標準輸入讀數據並輸出到標準輸出,就可以通過transform調用,能完成複雜的邏輯數據處理任務,成本低


- Reflect能夠直接調用java中已有的class和方法來完成數據的簡單處理,大大豐富了hive的簡單數據處理能力


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章