HBase数据查询之常规查询
简述
订单常规查询用到的字段可能有:店铺id、订单创建时间(不变量)、订单id、订单状态等等。
如下设计适用场景:a.dp_id+created段查询(+状态或者其他filter条件)
b.tid查询
表设计
分两张表:
1.用于常规查询表,rowkey:dp_id+created+tid cf:status:value cf:buyer_nick:value...。查询条件的必须输入项有:created开始时间和结束时间。可有可无项:cf(列簇)中的字段,用于filter过滤。该表属于长表,字段数不多,占存储不大。
当dp_id不均衡时,可使用hash(dp_id)%regions的方法解决rowkey:hash(dp_id)%regions+dp_id+created+tid。
建议输入的created时间段不要跨度太大,防止hbase scan的数据太多而影响查询效率。
2.订单详情表,rowkey:tid反转 cf:data:...。反转的目的是均衡region。
其他
建议使用spring for hadoop框架,该框架管理了hbase client资源,很多操作可以省略。参见http://projects.spring.io/spring-hadoop/Spring for Apache Hadoop