HCatalog - Tạo bảng

Chương này giải thích cách tạo bảng và cách chèn dữ liệu vào đó. Các quy ước tạo bảng trong HCatalog khá giống với tạo bảng bằng Hive.

Tạo Báo cáo Bảng

Create Table là một câu lệnh được sử dụng để tạo một bảng trong Hive di căn bằng cách sử dụng HCatalog. Cú pháp và ví dụ của nó như sau:

Cú pháp

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[ROW FORMAT row_format]
[STORED AS file_format]

Thí dụ

Giả sử bạn cần tạo một bảng có tên employee sử dụng CREATE TABLEtuyên bố. Bảng sau liệt kê các trường và kiểu dữ liệu của chúng trongemployee bàn -

Sr.No Tên trường Loại dữ liệu
1 Eid int
2 Tên Chuỗi
3 Tiền lương Phao nổi
4 Chỉ định chuỗi

Dữ liệu sau xác định các trường được hỗ trợ, chẳng hạn như Comment, Các trường được định dạng hàng chẳng hạn như Field terminator, Lines terminatorStored File type.

COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE

Truy vấn sau tạo một bảng có tên employee sử dụng dữ liệu trên.

./hcat –e "CREATE TABLE IF NOT EXISTS employee ( eid int, name String, 
   salary String, destination String) \
COMMENT 'Employee details' \
ROW FORMAT DELIMITED \
FIELDS TERMINATED BY ‘\t’ \
LINES TERMINATED BY ‘\n’ \
STORED AS TEXTFILE;"

Nếu bạn thêm tùy chọn IF NOT EXISTS, HCatalog bỏ qua câu lệnh trong trường hợp bảng đã tồn tại.

Khi tạo bảng thành công, bạn sẽ thấy phản hồi sau:

OK
Time taken: 5.905 seconds

Tải báo cáo dữ liệu

Nói chung, sau khi tạo bảng trong SQL, chúng ta có thể chèn dữ liệu bằng câu lệnh Insert. Nhưng trong HCatalog, chúng tôi chèn dữ liệu bằng câu lệnh LOAD DATA.

Trong khi chèn dữ liệu vào HCatalog, tốt hơn nên sử dụng LOAD DATA để lưu trữ các bản ghi hàng loạt. Có hai cách để tải dữ liệu: một là từlocal file system và thứ hai là từ Hadoop file system.

Cú pháp

Cú pháp cho TẢI DỮ LIỆU như sau:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
  • LOCAL là định danh để chỉ định đường dẫn cục bộ. Nó là tùy chọn.
  • OVERWRITE là tùy chọn để ghi đè dữ liệu trong bảng.
  • PHẦN THƯỞNG là tùy chọn.

Thí dụ

Chúng tôi sẽ chèn dữ liệu sau vào bảng. Nó là một tệp văn bản có tênsample.txt trong /home/user danh mục.

1201  Gopal        45000    Technical manager
1202  Manisha      45000    Proof reader
1203  Masthanvali  40000    Technical writer
1204  Kiran        40000    Hr Admin
1205  Kranthi      30000    Op Admin

Truy vấn sau tải văn bản đã cho vào bảng.

./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"

Khi tải xuống thành công, bạn sẽ thấy phản hồi sau:

OK
Time taken: 15.905 seconds