數(shù)據(jù)倉庫:是一個面向主題的、集成的、不可更新的、隨時間不變化的數(shù)據(jù)集合,它用于支持企業(yè)或組織的決策分析處理。
數(shù)據(jù)倉庫結(jié)構(gòu) - 數(shù)據(jù)源:業(yè)務(wù)數(shù)據(jù)系統(tǒng)、文檔資料、其他數(shù)據(jù) - 數(shù)據(jù)存儲及管理:抽取、轉(zhuǎn)換、裝載 - 數(shù)據(jù)倉庫引擎:服務(wù)器 - 前端展示:數(shù)據(jù)查詢、數(shù)據(jù)報表、數(shù)據(jù)分析、各類應(yīng)用
數(shù)據(jù)倉庫中的數(shù)據(jù)模型:星型模型、雪花模型
Hive簡介 - Hive是建立在Hadoop HDFS上的數(shù)據(jù)倉庫基礎(chǔ)架構(gòu); - Hive可以用來進行數(shù)據(jù)提取轉(zhuǎn)換加載(ETL); - Hive定義了簡單的類似SQL查詢語言,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)。 - Hive允許熟悉MaPReduce開發(fā)者的開發(fā)自定義的mapper和reducer來處理內(nèi)建的mapper和reducer無法完成的復雜的分析工作; - Hive是SQL解析引擎,它將SQL語句轉(zhuǎn)移成M/R Job,然后在Hadoop執(zhí)行。Hive的表其實就是HDFS的目錄/文件。
Hive的體系結(jié)構(gòu) - Hive的元數(shù)據(jù):Hive將元數(shù)據(jù)存儲在數(shù)據(jù)庫中(metastore),支持MySQL、derby等數(shù)據(jù)庫。 - Hive中的元數(shù)據(jù)包括表的名字、表的列和分區(qū)及其屬性,表的屬性(是否為外部等),表的數(shù)據(jù)所在目錄等。 - Hadoop:用HDFS進行存儲,利用MapReduce進行計算; - 元數(shù)據(jù)存儲(MetaStore):通常是存儲在關(guān)系數(shù)據(jù)庫如mysql、derby中。
Hive的SQL執(zhí)行過程 - 解析器、編譯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃(Plan)的生成。生成的查詢計劃存儲在HDFS中,并在隨后由MapReduce調(diào)用執(zhí)行。
hadoop的安裝:單機環(huán)境、偽分布環(huán)境、集群環(huán)境。
Hive的安裝模式 - 嵌入模式、本地模式、遠程模式。 - 嵌入模式:元數(shù)據(jù)信息被存儲在Hive自帶的Derby數(shù)據(jù)庫中;只允許創(chuàng)建一個連接;多用于Demo。 - 本地模式:元數(shù)據(jù)信息被存儲在MySQL數(shù)據(jù)庫中;MySQL數(shù)據(jù)庫與Hive運行在同一臺物理機器上;多用于開發(fā)和測試。 - 遠程模式:Hive的元信息存儲在Mysql數(shù)據(jù)庫中,而Hive和Mysql數(shù)據(jù)庫運行不在同一臺物理機器上;多用于實際的生產(chǎn)運行環(huán)境。
Hive的管理 - **Hive的啟動方式:**CLI(命令行)方式;Web界面方式;遠程服務(wù)啟動方式。 - CLI(命令行方式):直接輸入#/bin/hive的執(zhí)行程序;或者輸入#hive –service cli - 常用的CLI命令: 1)清屏:Ctrl + L或者!clear 2)查看數(shù)據(jù)倉庫中的表:show tables 3)查看數(shù)據(jù)倉庫中內(nèi)置的函數(shù):show functions 4)查看表結(jié)構(gòu):desc 表名 5)查看HDFS上的文件:dfs -ls 目錄 6)執(zhí)行操作系統(tǒng)的命令:!命令 7)執(zhí)行HQL語句:select *** from *** 8)執(zhí)行HQL語句腳本:source *.sql
Hive的數(shù)據(jù)類型 - Hive - 數(shù)據(jù)倉庫 - 數(shù)據(jù)庫 : 創(chuàng)建表 - 列 - 類型 - 基本數(shù)據(jù)類型 1)tinyint/smallint/int/bigint:整數(shù)類型 2)float/double:浮點數(shù)類型 3)boolean:布爾類型 4)string:字符串類型 - 復雜數(shù)據(jù)類型 1)Array:數(shù)組類型,由一系列相同數(shù)據(jù)類型的元素組成 2)Map:集合類型,包含key-value鍵值對,可以通過可以來訪問元素 3)Struct:結(jié)構(gòu)類型,可以包含不同數(shù)據(jù)類型的元素。這些元素可以通過“點語法”的方式來得到所需要的元素 - 時間類型 1)Date:從Hive0.12.0開始支持 2)Timestamp:從Hive0.8.0開始支持
Hive的數(shù)據(jù)存儲 - 基于HDFS進行存儲
Hive的數(shù)據(jù)模型 - * 內(nèi)部表(Table)*:與數(shù)據(jù)庫中的Table在概念上是類似;每一個Table在Hive中都有一個相應(yīng)的目錄存儲數(shù)據(jù);所有的Table數(shù)據(jù)(不包括External Table)都保存在這個目錄中;刪除表時,元數(shù)據(jù)與數(shù)據(jù)都會被刪除。 - 分區(qū)表(Partition):Partition對應(yīng)于數(shù)據(jù)庫的Partition列的密集索引;在Hive中,表中的一個Partition對應(yīng)于表下的一個目錄,所有的Partition的數(shù)據(jù)都存儲在對應(yīng)的目錄中 - 外部表(External Table):指向已經(jīng)在HDFS中存在的數(shù)據(jù),可以創(chuàng)建Partition;它和內(nèi)部表在元數(shù)據(jù)的組織上是相同的,而實際數(shù)據(jù)的存儲則有較大的差異;外部表只有一個過程,加載數(shù)據(jù)和創(chuàng)建表同時完成,并不會移動到數(shù)據(jù)倉庫目錄中,只是與外部數(shù)據(jù)建立一個鏈接。但刪除一個外部表時,僅刪除該鏈接。 - 桶表(Bucket Table):是對數(shù)據(jù)進行哈希取值,然后放到不同文件中存儲。 - 視圖(View):是一種虛表,是一個邏輯概念,可以跨越多張表;視圖建立在已有表的基礎(chǔ)上,視圖賴以建立的這些表稱為基表;視圖可以簡化復雜的查詢。
參考文獻:http://www.imooc.com/learn/387學習總結(jié)
新聞熱點
疑難解答
圖片精選