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 terminatorvà Stored 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