- HCatalog 教程
- HCatalog - 首頁
- HCatalog - 簡介
- HCatalog - 安裝
- HCatalog - CLI
- HCatalog CLI 命令
- HCatalog - 建立表
- HCatalog - 修改表
- HCatalog - 檢視
- HCatalog - 顯示錶
- HCatalog - 顯示分割槽
- HCatalog - 索引
- HCatalog API
- HCatalog - 讀寫器
- HCatalog - 輸入輸出格式
- HCatalog - 載入器和儲存器
- HCatalog 有用資源
- HCatalog - 快速指南
- HCatalog - 有用資源
- HCatalog - 討論
HCatalog - 顯示分割槽
分割槽是用於表格資料的條件,用於建立單獨的表或檢視。SHOW PARTITIONS 列出了給定基本表的所有現有分割槽。分割槽按字母順序排列。在 Hive 0.6 之後,還可以指定分割槽規範的一部分來過濾結果列表。
您可以使用 SHOW PARTITIONS 命令檢視特定表中存在的分割槽。本章介紹如何在 HCatalog 中列出特定表的partitions。
Show Partitions 語句
語法如下:
SHOW PARTITIONS table_name;
以下查詢刪除名為 employee 的表:
./hcat –e "Show partitions employee;"
查詢成功執行後,您將看到以下響應:
OK Designation = IT Time taken: 5.3 seconds
動態分割槽
HCatalog 將表組織成分割槽。這是一種根據分割槽列(如日期、城市和部門)的值將表劃分為相關部分的方法。使用分割槽,可以輕鬆查詢資料的一部分。
例如,名為 Tab1 的表包含員工資料,如 id、name、dept 和 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 表新增分割槽。
./hcat –e "ALTER TABLE employee ADD PARTITION (year = '2013') location '/2012/part2012';"
重新命名分割槽
您可以使用 RENAME-TO 命令重新命名分割槽。其語法如下:
./hact –e "ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;"
以下查詢用於重新命名分割槽:
./hcat –e "ALTER TABLE employee PARTITION (year=’1203’) RENAME TO PARTITION (Yoj='1203');"
刪除分割槽
用於刪除分割槽的命令的語法如下:
./hcat –e "ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec,. PARTITION partition_spec,...;"
以下查詢用於刪除分割槽:
./hcat –e "ALTER TABLE employee DROP [IF EXISTS] PARTITION (year=’1203’);"
廣告