好的方案应该挺多的,比如:可以将【日、周、月】以3,2,1来表示(拼接到ROW_KEY中){离线跑job时候,可以分为月job(每月末run一下,周job(每周末run一下),日job(每天run一下)};然后在服务端对请求过来的日期时间段,做下计算:根据两个日期,计算出START_ROW_KEY以及END_ROW_KEY,比如:2014-09-15~2014-09-23(这个是跨周的,先计算出整周的那个周末日期,该日期类型为2;然后剩余的两个日期22及23号,作为天,类型为3;
最后分别进行查询,然后在程序里Merge下,最终的查询只有3次
我一直用的是上述的方式,说得有些啰嗦,不知道说明白没有