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