HCatalog - Bảng thay đổi
Chương này giải thích cách thay đổi các thuộc tính của bảng như thay đổi tên bảng, thay đổi tên cột, thêm cột và xóa hoặc thay thế cột.
Tuyên bố bảng thay đổi
Bạn có thể sử dụng câu lệnh ALTER TABLE để thay đổi bảng trong Hive.
Cú pháp
Câu lệnh nhận bất kỳ cú pháp nào sau đây dựa trên các thuộc tính mà chúng ta muốn sửa đổi trong bảng.
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
Một số tình huống được giải thích dưới đây.
Đổi tên thành… Tuyên bố
Truy vấn sau đổi tên một bảng từ employee đến emp.
./hcat –e "ALTER TABLE employee RENAME TO emp;"
Thay đổi Tuyên bố
Bảng sau chứa các trường employee bảng và nó hiển thị các trường cần thay đổi (in đậm).
Tên trường | Chuyển đổi từ Loại dữ liệu | Thay đổi tên trường | Chuyển đổi sang kiểu dữ liệu |
---|---|---|---|
eid | int | eid | int |
Tên | Chuỗi | ename | Chuỗi |
tiền lương | Phao nổi | tiền lương | Gấp đôi |
sự chỉ định | Chuỗi | sự chỉ định | Chuỗi |
Các truy vấn sau đổi tên tên cột và kiểu dữ liệu cột bằng cách sử dụng dữ liệu trên:
./hcat –e "ALTER TABLE employee CHANGE name ename String;"
./hcat –e "ALTER TABLE employee CHANGE salary salary Double;"
Thêm tuyên bố cột
Truy vấn sau đây thêm một cột có tên dept đến employee bàn.
./hcat –e "ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');"
Thay thế Tuyên bố
Truy vấn sau sẽ xóa tất cả các cột khỏi employee bảng và thay thế nó bằng emp và name cột -
./hcat – e "ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);"
Tuyên bố bảng thả
Chương này mô tả cách bỏ một bảng trong HCatalog. Khi bạn xóa một bảng khỏi kho lưu trữ, nó sẽ xóa dữ liệu bảng / cột và siêu dữ liệu của chúng. Nó có thể là một bảng bình thường (được lưu trữ trong siêu thị) hoặc một bảng bên ngoài (được lưu trữ trong hệ thống tệp cục bộ); HCatalog xử lý cả hai theo cùng một cách, không phân biệt loại của chúng.
Cú pháp như sau:
DROP TABLE [IF EXISTS] table_name;
Truy vấn sau đây đưa ra một bảng có tên employee -
./hcat –e "DROP TABLE IF EXISTS employee;"
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
OK
Time taken: 5.3 seconds