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’);"
廣告

© . All rights reserved.