HCatalog - Hiển thị các phân vùng
Phân vùng là một điều kiện cho dữ liệu dạng bảng được sử dụng để tạo một bảng hoặc dạng xem riêng biệt. SHOW PARTITIONS liệt kê tất cả các phân vùng hiện có cho một bảng cơ sở nhất định. Các phần được liệt kê theo thứ tự bảng chữ cái. Sau Hive 0.6, cũng có thể chỉ định các phần của đặc tả phân vùng để lọc danh sách kết quả.
Bạn có thể sử dụng lệnh SHOW PARTITIONS để xem các phân vùng tồn tại trong một bảng cụ thể. Chương này mô tả cách liệt kê các phân vùng của một bảng cụ thể trong HCatalog.
Hiển thị Tuyên bố Phân vùng
Cú pháp như sau:
SHOW PARTITIONS table_name;
Truy vấn sau đây đưa ra một bảng có tên employee -
./hcat –e "Show partitions employee;"
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
OK
Designation = IT
Time taken: 5.3 seconds
Phân vùng động
HCatalog tổ chức các bảng thành các phân vùng. Đó là một cách chia bảng thành các phần liên quan dựa trên giá trị của các cột được phân vùng như ngày, thành phố và phòng ban. Sử dụng phân vùng, có thể dễ dàng truy vấn một phần dữ liệu.
Ví dụ, một bảng có tên Tab1chứa dữ liệu của nhân viên như id, tên, dept và yoj (tức là năm gia nhập). Giả sử bạn cần truy xuất thông tin chi tiết của tất cả nhân viên đã tham gia vào năm 2012. Một truy vấn tìm kiếm toàn bộ bảng cho thông tin cần thiết. Tuy nhiên, nếu bạn phân vùng dữ liệu nhân viên với năm và lưu trữ trong một tệp riêng biệt, nó sẽ giảm thời gian xử lý truy vấn. Ví dụ sau đây cho thấy cách phân vùng tệp và dữ liệu của nó:
Tệp sau đây chứa employeedata bàn.
/ tab1 / Employeedata / file1
id, name, dept, yoj
1, gopal, TP, 2012
2, kiran, HR, 2012
3, kaleel, SC, 2013
4, Prasanth, SC, 2013
Dữ liệu trên được phân chia thành hai tệp sử dụng năm.
/ tab1 / Employeedata / 2012 / file2
1, gopal, TP, 2012
2, kiran, HR, 2012
/ tab1 / Employeedata / 2013 / file3
3, kaleel, SC, 2013
4, Prasanth, SC, 2013
Thêm phân vùng
Chúng ta có thể thêm phân vùng vào bảng bằng cách thay đổi bảng. Giả sử chúng ta có một bảng được gọi làemployee với các trường như Id, Tên, Lương, Chức vụ, Bộ phận và yoj.
Cú pháp
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, ...)
Truy vấn sau được sử dụng để thêm phân vùng vào employee bàn.
./hcat –e "ALTER TABLE employee ADD PARTITION (year = '2013') location '/2012/part2012';"
Đổi tên phân vùng
Bạn có thể sử dụng lệnh RENAME-TO để đổi tên phân vùng. Cú pháp của nó như sau:
./hact –e "ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;"
Truy vấn sau được sử dụng để đổi tên phân vùng:
./hcat –e "ALTER TABLE employee PARTITION (year=’1203’) RENAME TO PARTITION (Yoj='1203');"
Bỏ phân vùng
Cú pháp của lệnh được sử dụng để thả một phân vùng như sau:
./hcat –e "ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec,.
PARTITION partition_spec,...;"
Truy vấn sau được sử dụng để thả phân vùng:
./hcat –e "ALTER TABLE employee DROP [IF EXISTS] PARTITION (year=’1203’);"