Bạn chắc chắn có thể nối thêm dữ liệu vào bảng hiện có. (Nhưng nó thực sự không phải là một phụ thêm ở cấp HDFS). Nó chỉ là bất cứ khi nào bạn thực hiện một thao tác LOAD hoặc INSERT trên bảng Hive hiện có mà không có mệnh đề OVERWRITE
thì dữ liệu mới sẽ được đặt mà không thay thế dữ liệu cũ. Một tệp mới sẽ được tạo cho dữ liệu mới được chèn vào bên trong thư mục tương ứng với bảng đó. Ví dụ:
Tôi có một file có tên demo.txt trong đó có 2 dòng:
ABC
XYZ
Tạo một bảng và tải tập tin này vào nó
hive> create table demo(foo string);
hive> load data inpath '/demo.txt' into table demo;
Bây giờ, nếu tôi làm một SELECT trên bảng này nó sẽ cho tôi:
hive> select * from demo;
OK
ABC
XYZ
Giả sử, tôi có một tập tin hơn tên demo2.txt trong đó có:
PQR
Và tôi làm một LOAD một lần nữa trên bảng này mà không sử dụng ghi đè lên,
hive> load data inpath '/demo2.txt' into table demo;
Bây giờ, nếu tôi làm một SELECT bây giờ, nó sẽ cung cấp cho tôi,
hive> select * from demo;
OK
ABC
XYZ
PQR
HTH
Đây thực sự là câu trả lời hàng đầu (được chấp nhận). – xenocyon
@mattinbits: Tôi đang cố gắng chèn một số được tạo theo thứ tự cho một cột và một dấu thời gian cho một cột khác. Để có dấu thời gian, tôi đã thử "from_unixtime (unix_timestamp())" trong câu lệnh chèn. Tôi nhận "SemanticException [ERROR 10293]: Không thể tạo tệp tạm thời để chèn giá trị Biểu thức loại TOK_FUNCTION không được hỗ trợ trong chèn/giá trị". Tôi không nhận được một ý tưởng rõ ràng về cách tôi có thể đạt được thế hệ số chuỗi. Bạn có thể vui lòng cung cấp một số yếu tố đầu vào về cách tôi có thể đạt được cả hai? Tôi đang sử dụng Hive 1.1.0. Cảm ơn. – Marco99
@ Marco99 bạn nên nêu ra câu hỏi mới này – mattinbits