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 empname 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