Support Questions

Find answers, ask questions, and share your expertise

HBase search using RowKey

New Contributor

Hi,

1. Can anybody suggest, why rowkey design is so important for create / retrieval of records?

 

2. Also, how cloudera search (SOLR) can be useful in such cases?

 

3. Is it mandatory to create secondary indices for retrieval?

 

Regards,

Deepak Sharma

4 REPLIES 4

Super Collaborator

Hi,

 

1/ These articles describe some usefull information about rowkey and its design :

- http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.8/book/rowkey.design.html

- https://www.linkedin.com/pulse/performance-tuning-hbase-part-1-rowkey-crux-kuldeep-deshpande/

 

2/ If you need to query your data in HBase by a cells value .. it will be totaly inefficient. Cloudera search can help you in these cases but you will need to index the data into Cloudera search.

 

3/ Well, I don't have the answer to that but I would recommend you to stick to querying by the "rowkey only" if you need some "performance".

 

 

Hope this helps.

 

 

 

New Contributor

Thanks Mathieu

Champion Alumni
If your search based on a subset of the data that is present in hbase table , you could create a solr schema and index the records to solr when it is inserted to hbase.I have used lily indexer/morphlines to do that a couple of years back . You could index the row key in this schema as a hidden value ,so if a user needs a detailed search information you could use that rowkey to query hbase . If the search informatin required is minimal it could be served from cloudera search itself

New Contributor

Hi Nishan,

Does it mean that, I will not have to bother anymore for the Row Key design, if I use solr?

Is there any specific java code, which I need to write inorder to support it ?

 

I was thinking to use Apache Pheonix, if it does take care of the Row Key design internally.

Any suggestions please ?

 

Thanks