This is a similar scenario that we encounter every day when querying tables in the hive. We divided our tables in the same way as you explained, and it helped a lot with the query. Here's how we break up:
CREATE TABLE IF NOT EXISTS table1 (col1 int, col2 int)
PARTITIONED BY (year bigint, month bigint, day bigint, hour int)
STORED AS TEXTFILE;
For sections, we assign the following values:
year = 2014, month = 201409, day = 20140924, hour = 01
, , :
select * from table1 where day >= 20140527 and day < 20140605
,