大數據Hadoop之——數據倉庫Hive
- HIVE介紹
Hive是基于Hadoop的一個數據倉庫(Data Aarehouse,簡稱數倉、DW),可以將結構化的數據文件映射為一張數據庫表,并提供類SQL查詢功能。是用于存儲、分析、報告的數據系統。
在Hadoop生態系統中,HDFS用于存儲數據,Yarn用于資源管理,MapReduce用于數據處理,而Hive是構建在Hadoop之上的數據倉庫,包括以下方面:
- 使用HQL作為查詢接口;
- 使用HDFS存儲;
- 使用MapReduce或其它計算框架計算;
- 執行程序運行在Yarn上
- 本質上是: 將HIVE SQL 轉化成MapReduce程序,適合離線數據的處理
二、Hive工作原理
三、HIVE基本數據類型
- HIVE分區表和分桶表
在大數據處理過程中,Hive是一種非常常用的數據倉庫工具。Hive分區和桶是優化Hive性能的兩種方式,它們的區別如下:
- 分區表
Hive支持根據用戶指定的字段進行分區,分區的字段可以是日期、地域、種類等具有標識意義的字段。
Hive分區的主要作用是:
提高查詢效率: 使用分區對數據進行訪問時,系統只需要讀取和此次查詢相關的分區,避免了全表掃描,從而顯著提高查詢效率。
降低存儲成本: 分區可以更加方便的刪除過期數據,減少不必要的存儲。
(1)靜態分區
CREATE TABLE table_name (column1 data_type, column2 data_type)
PARTITIONED BY (partition1 data_type, partition2 data_type,….);
靜態分區是指通過手動指定分區列的值來創建分區
CREATE TABLE sales (
id int,
date string,
amount double