個人大數據總結之hive(一)

    不知不覺從事大數據開發,這麼長的時間一直沒有將知識進行一個體系化,現在終於決定要將所學技能整理一下了,哈哈哈哈(多虧了有個賢內助督促,幫我調整格式)。話不多說,我要開始了~。如果寫的有不對的地方,歡迎大家指正,勿噴~。

 

目錄

我對數據倉庫和數據庫二者的理解:

通常所說的 ETL(提取轉化加載)

hive定義

hive數據的存儲

Hive的元數據倉庫

hive的運行方式

hive的訪問方式


一、我對數據倉庫和數據庫二者的理解:

     1.數據倉庫特點:

               ①存放的數據是靜態的、歷史的、不能進行隨意修改的,只能新增、查詢 

               ②數據倉庫更加註重的是一個OLAP(聯機分析處理----數據分析的目標則是探索並挖掘數據價值,作爲企業高層進行決策的參考)的操作

               ③數據倉庫不推薦執行事務操作

     2. 數據庫特點:

               ①更加註重的是在線、交易的、動態的數據

               ②數據庫更加註重的是一個OLTP(聯機事務處理 -----業務類系統主要供基層人員使用,進行一線業務操作)的操作

               ③數據庫的操作依賴更多的業務的事務操作

二、通常所說的 ETL(提取轉化加載):

E(Extract) :提取、採集

T(Transform) :轉化、標準化、格式化

       介紹:數據清洗Data clean:去除無用數據

                  數據脫敏Data desensitization:剔除敏感數據,將敏感數據隱藏(編程"*", 還有加密,還有做映射), 一般情況下都是通過mr來做

 L(Loading) :加載

介紹:把原始的數據轉化爲數據倉庫中建模好的格式或者標準的數據,然後在將標準化的數據加載到DW中的一個過程稱之爲ETL。(這裏的建模或者模型,說白了就是數據倉庫中表的定義,表和表之間的關係)

三、hive定義

Hive是建立在Hadoop上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在Hadoop中的海量數據的機制。Hive 定義了簡單的類SQL查詢語言,稱爲HQL,它允許熟悉SQL的用戶查詢數據。同時,這個語言也允許熟悉MapReduce開發者的開發自定義的mapper和 reducer來處理內建mapper和reducer無法完成的複雜的分析工作。

Hive是SQL解析引擎,它將SQL語句轉譯成M/R Job然後在Hadoop執行。hive中的表其實就是hdfs的目錄,按照表名把文件夾分開。如果是分區表,則分區值是子文件夾,我們可以直接在M/R的job中直接使用這些數據。

四、hive數據的存儲

1、Hive的數據存儲基於Hadoop HDFS

2、Hive沒有專門的數據存儲格式

3、存儲結構主要包括:數據庫、文件、表、視圖、索引

4、Hive默認可以直接加載文本文件(TextFile),還支持SequenceFile、RCFile 、ORCFile、Parquet

5、創建表時,指定Hive數據的列分隔符與行分隔符,Hive即可解析數據

6、 hive的元數據存在於mysql中,在mysql中會有一個hive庫,存放相應的表,一共53張表。(這是在hive配置文件中指定的)

五、Hive的元數據倉庫

1、metastore是hive元數據的集中存放地。

2、metastore默認使用內嵌的derby數據庫作爲存儲引擎

3、Derby引擎的缺點:一次只能打開一個會話

4、實踐中多使用MySQL作爲外置存儲引擎,多用戶同時訪問 

六、hive的運行方式

1、集羣模式:

         在生產中的運行方式,以mr、spark、tez作爲計算引擎,進行分佈式計算。

2、本地模式:

        set hive.exec.mode.local.auto=true,這就可以在hive中進行簡單的測試

七、hive的訪問方式

1、CLI(命令行)

           (1)通過hive的腳本

                    hive -e(接的是hql語句,可以是多條語句,用""引起來)

                    例如:hive -e "set hive.cli.print.header=true;use mydb1; show tables; select * from t;"

                   hive - f (接的是hql腳本)

                   例如:hive -f hive-script.hql

             這兩種方式,可以將最終的執行結果輸出重定向到某一個文件中,需要添加兩個參數-S

             hive -S -f hive-script.hql > resutl.csv(輸出重定向,有覆蓋功能)

            hive -S -f hive-script.hql >> resutl.csv (輸出重定向,有追加功能)

2、JAVA API:

           hive-jdbc

 

 

   今天就先總結到這裏,下面一篇文章,我會介紹一下hive的安裝以及hive表的一些概念以及hive中數據的類型~

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