2015-04-29 15 views
5

Tôi đang trong quá trình cải thiện hiệu suất của một bảng.Impala có sử dụng hiệu quả các Xô trong bảng Hive Bucketed không?

Say bảng này:

CREATE TABLE user_info_bucketed(user_id BIGINT, firstname STRING, lastname STRING) 
COMMENT 'A bucketed copy of user_info' 
PARTITIONED BY(Year int, month int) 
STORED AS PARQUET; 

tôi đang lập kế hoạch để áp dụng bucketing bởi user_id, như các truy vấn liên quan đến việc thường user_id như một điều khoản.

như thế này

CREATE TABLE user_info_bucketed(user_id BIGINT, firstname STRING, lastname STRING) 
COMMENT 'A bucketed copy of user_info' 
PARTITIONED BY(Year int, month int) 
CLUSTERED BY(user_id) INTO 256 BUCKETS 
STORED AS PARQUET; 

bảng này sẽ được tạo ra và nạp với Hive, và truy vấn từ Impala ...

Những gì tôi muốn biết là, cho dù bucketing bảng này sẽ cải thiện hiệu suất của truy vấn impala - Tôi không chắc chắn impala hoạt động như thế nào với các nhóm.

+0

Thực tế là không có tài liệu nào của Impala đề cập đến các nhóm cho rằng có bất kỳ xử lý đặc biệt nào cho việc này. http://www.slideshare.net/cloudera/cloudera-impala-a-modern-sql-engine-for-hadoop (trang 6) cũng đề cập đến điều này. Tôi không thể tìm thấy bất kỳ vấn đề nào liên quan đến vấn đề này trong [Impala JIRA] (https://issues.cloudera.org/browse/IMPALA), vì vậy tôi muốn được xem câu trả lời dứt khoát. – Nickolay

+0

Cảm ơn thông tin @Nickolay, có vẻ như impala không xem xét các nhóm như trong các trang trình bày mà bạn đã chia sẻ ... (xem câu trả lời của tôi) –

+0

Cảm ơn bạn đã ping cho tôi kết quả thử nghiệm của bạn! – Nickolay

Trả lời

2

tôi đã cố gắng tạo ra một bảng bucketed và phi bucketed bảng thông qua Hive (đó là một bảng 6GB kích thước)

tôi đã cố gắng benchmarking kết quả từ cả hai. Có chút/không có sự khác biệt.

Tôi cũng đã thử phân tích tiểu sử của cả hai truy vấn, điều này không hiển thị nhiều sự khác biệt.

Vì vậy, câu trả lời là, Impala không biết liệu bảng có bị khóa hay không, do đó, nó không tận dụng lợi thế của nó (IMPALA-1990). Cách duy nhất để nhận biết các phân vùng và tệp trong bảng là với COMPUTE STATS

Bằng cách này, việc bỏ qua các bảng được Impala sử dụng không lãng phí. Nếu chúng tôi phải giới hạn số lượng tệp nhỏ trong bảng, chúng tôi có thể nhóm nó và bật Hive transactions (có sẵn từ Hive 0.13.0)

Các vấn đề liên quan