互聯(lián)網(wǎng)時代下,數(shù)據(jù)量的急劇增長,傳統(tǒng)的數(shù)據(jù)倉庫已經(jīng)無法滿足。Hive作為Hadoop生態(tài)圈中的數(shù)據(jù)倉庫解決方案隨著開源社區(qū)的快速發(fā)展而逐步成熟,慢慢的在某些場景下替代企業(yè)級數(shù)據(jù)倉庫,成為各大互聯(lián)網(wǎng)公司數(shù)據(jù)倉庫建設(shè)的必選方案,可以這么說,Hive已經(jīng)成為大數(shù)據(jù)數(shù)據(jù)倉庫的事實標(biāo)準(zhǔn)。
? ?? ?
本課程將從Hive的基本概念入手,深入解析Hive的使用方式、HQL語法以及常用的倉庫模式設(shè)計和Hive優(yōu)化方法,并對未來Hive的發(fā)展和高級特性做一些簡單介紹,并通過最后的案例實踐鞏固學(xué)習(xí)內(nèi)容。通過本課程的學(xué)習(xí),將能夠勝任大多數(shù)互聯(lián)網(wǎng)場景下的大數(shù)據(jù)分析和數(shù)據(jù)開發(fā)任務(wù)
第一節(jié) Hadoop與MapReduce
1) Hive在Hadoop Ecosystem中的地位
2) Hive的版本演進與目前現(xiàn)狀
3) 節(jié)程實踐環(huán)境說明
4) 實操: Hive/Hadoop預(yù)備環(huán)境安裝
第二節(jié) Hive的基本概念與QuickStart
1) Hive的安裝部署
2) Hive的基本架構(gòu)
3) 啟動Hive
4) Hive命令行
5) HiveServer與JDBC/ODBC
6) 實操: Hive命令行和ThriftServer基本使用
第三節(jié) 數(shù)據(jù)類型與文件格式
1) Hive支持的基本數(shù)據(jù)類型
2) Hive支持的集合數(shù)據(jù)類型
3) Hive支持的文件格式與優(yōu)劣對比
第四節(jié) HiveQL:數(shù)據(jù)定義
1) Hive數(shù)據(jù)模型
2) Database
3) Table
4) Partition
5) 自定義存儲格式
6) 自定義表屬性
7) 常用創(chuàng)建/刪除/修改表語法
8) 實操: HQL 創(chuàng)建/刪除/修改操作練習(xí)
第五節(jié) HiveQL:數(shù)據(jù)操作
1) 加載數(shù)據(jù)(LoadData)
2) 從查詢計算結(jié)果加載數(shù)據(jù)(Insert Table Select)
3) 動態(tài)分區(qū)(DynamicPartitioning)
4) CTAS(CreateTableAsSelect)
5) 導(dǎo)出數(shù)據(jù)
6) 實操: 練習(xí)以上數(shù)據(jù)加載計算和導(dǎo)出操作
第六節(jié) HiveQL:數(shù)據(jù)查詢
1) 從最簡單的開始
2) Select … From
3) Where條件
4) Group By條件
5) Join
6) 排序(OrderBy/SortBy)
7) ClusterBy/DistributeBy
8) 抽樣(Sampling)
9) Union
10) 實操: 練習(xí)以上各種查詢語法
第七節(jié) Hive函數(shù)與自定義函數(shù)
1) 查看與調(diào)用函數(shù)
2) 常用標(biāo)準(zhǔn)函數(shù)(UDF)
3) UDAF
4) UDTF
5) UDF/UDAF/UDTF開發(fā)
6) 實操: 練習(xí)并完成UDF Java開發(fā)的作業(yè)
第八節(jié) Hive常用模式設(shè)計
1) 按天做Partition
2) 分桶(Bucket)
3) 壓縮
4) 表Schema變更
5) 實操: 練習(xí)以上幾種倉庫設(shè)計模式
第九節(jié) Hive調(diào)優(yōu)
1) Hive參數(shù)說明
2) Explain查看執(zhí)行計劃
3) 控制Map/Reduce數(shù)
4) 并行執(zhí)行
5) 推測執(zhí)行
6) Join優(yōu)化
7) 數(shù)據(jù)傾斜問題
8) 動態(tài)分區(qū)優(yōu)化
9) 實操: 練習(xí)并理解不同優(yōu)化參數(shù)下的執(zhí)行邏輯
第十節(jié) Hive新特性與其他
1) Hive on Tez
2) Hive on Spark
3) Hive與HBase集成
4) HCatalog |