Tôi đang chạy hive 071, xử lý dữ liệu hiện có là có cách bố trí thư mục sau:
-TableName
- d = (ví dụ 2011/08/01)
- d = 2011-08-02
- d = 2011-08-03
... vv
dưới mỗi ngày tôi có tệp ngày.
nay đến nạp dữ liệu Tôi đang sử dụngHive: phân vùng động thêm vào bảng bên ngoài
CREATE EXTERNAL TABLE table_name (i int)
PARTITIONED BY (date String)
LOCATION '${hiveconf:basepath}/TableName';**
Tôi muốn kịch bản hive của tôi để có thể tải các phân vùng có liên quan theo một số ngày đầu vào, và số ngày. vì vậy nếu tôi vượt qua date = '2011/08/03' và ngày = '7'
Các kịch bản nên tải các phân vùng sau - d = 2011/08/03
- d = 2011-08 -04
- d = 2011/08/05
- d = 2011/08/06
- d = 2011/08/07
- d = 2011/08/08
- d = 2011-08 -09
Tôi không tìm thấy bất kỳ cách phân biệt nào để thực hiện CEPT explicitlly chạy:
ALTER TABLE table_name ADD PARTITION (d='2011-08-03');
ALTER TABLE table_name ADD PARTITION (d='2011-08-04');
ALTER TABLE table_name ADD PARTITION (d='2011-08-05');
ALTER TABLE table_name ADD PARTITION (d='2011-08-06');
ALTER TABLE table_name ADD PARTITION (d='2011-08-07');
ALTER TABLE table_name ADD PARTITION (d='2011-08-08');
ALTER TABLE table_name ADD PARTITION (d='2011-08-09');
và sau đó chạy truy vấn của tôi
select count(1) from table_name;
tuy nhiên điều này là dĩ nhiên không tự động theo ngày và những ngày đầu vào
Có cách nào tôi có thể xác định để bên ngoài bảng để tải phân vùng theo phạm vi ngày, hoặc ngày arithmetics?
Xin chào! Bạn có thể giải quyết vấn đề này không? Nếu có, bạn có thể chia sẻ giải pháp của mình không? Cảm ơn!! – eli
Khi tôi đang làm việc với Amazon EMR. nó apears rằng Amazon thực hiện lệnh sau: "thay đổi bảng X phục hồi phân vùng" mà thêm tất cả các thư mục con như phân vùng. điều này giải quyết một phần vấn đề bằng cách sử dụng "nơi d> bắt đầu và d <đến" nhưng có thể mất chút thời gian nếu bạn có vài nghìn phân vùng – Tomer
Cảm ơn. Tôi đã hy vọng tránh phải khôi phục phân vùng, vì nó mất khá nhiều thời gian. – eli