- Hive 教程
- Hive - 首頁
- Hive - 簡介
- Hive - 安裝
- Hive - 資料型別
- Hive - 建立資料庫
- Hive - 刪除資料庫
- Hive - 建立表
- Hive - 修改表
- Hive - 刪除表
- Hive - 分割槽
- Hive - 內建運算子
- Hive - 內建函式
- Hive - 檢視和索引
- HiveQL
- HiveQL - Select Where
- HiveQL - Select Order By
- HiveQL - Select Group By
- HiveQL - Select Joins
- Hive 有用資源
- Hive - 問答
- Hive - 快速指南
- Hive - 有用資源
Hive - 分割槽
Hive 將表組織成分割槽。這是一種根據分割槽列的值(例如日期、城市和部門)將表劃分為相關部分的方法。使用分割槽,可以輕鬆查詢資料的一部分。
表或分割槽細分為桶,為資料提供額外的結構,可用於更高效的查詢。桶化基於表中某些列的雜湊函式值。
例如,名為Tab1的表包含員工資料,例如 id、姓名、部門和 yoj(即加入年份)。假設您需要檢索所有 2012 年加入的員工的詳細資訊。查詢會搜尋整個表以查詢所需資訊。但是,如果您按年份對員工資料進行分割槽並將其儲存在單獨的檔案中,則可以縮短查詢處理時間。以下示例顯示如何分割槽檔案及其資料
以下檔案包含 employeedata 表。
/tab1/employeedata/file1
id, name, dept, yoj 1, gopal, TP, 2012 2, kiran, HR, 2012 3, kaleel,SC, 2013 4, Prasanth, SC, 2013
以上資料使用年份劃分為兩個檔案。
/tab1/employeedata/2012/file2
1, gopal, TP, 2012 2, kiran, HR, 2012
/tab1/employeedata/2013/file3
3, kaleel,SC, 2013 4, Prasanth, SC, 2013
新增分割槽
我們可以透過更改表來向表新增分割槽。讓我們假設我們有一個名為employee的表,其欄位如 Id、Name、Salary、Designation、Dept 和 yoj。
語法
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...; partition_spec: : (p_column = p_col_value, p_column = p_col_value, ...)
以下查詢用於向 employee 表新增分割槽。
hive> ALTER TABLE employee > ADD PARTITION (year=’2012’) > location '/2012/part2012';
重新命名分割槽
此命令的語法如下。
ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;
以下查詢用於重新命名分割槽
hive> ALTER TABLE employee PARTITION (year=’1203’) > RENAME TO PARTITION (Yoj=’1203’);
刪除分割槽
以下語法用於刪除分割槽
ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec, PARTITION partition_spec,...;
以下查詢用於刪除分割槽
hive> ALTER TABLE employee DROP [IF EXISTS] > PARTITION (year=’1203’);
廣告