title: Hbase rowkey design for time range query
body: <p>I need to get page view of product from start date to end date. So i design Hbase rowkey like this.</p>
  
  <pre><code>ProductId(md5)_productId_dateKey(yyyymmdd)  d:pageview.
  </code></pre>
  
  <p>Example: productId is 1180560. The rowkey from 1st August to 30th August will be:</p>
  
  <pre><code>0f0e02e9e24c29ad2c2b28e37e4f250b_1180560_20150801
  
  .....
  
  0f0e02e9e24c29ad2c2b28e37e4f250b_1180560_20150830
  </code></pre>
  
  <p>So i will easily get product pageview for time range  by  scanning rowkey with start row, stop row</p>
  
  <p>My questions are:</p>
  
  <p>Does this design avoid hotspotting ?</p>
  
  <p>The length of rowkey seem too long. Will it effect the performance ?. </p>
  
  <p>Is there a way to shorten the rowkey and still ensure avoid hotspotting, collision.</p>
  
  <p>Is there better design for this case ?</p>