You wouldn't even need another table, just a single VARCHAR[] column to keep the column names. Its ideal to keep it in the same row (possibly in another cf if you expect it to be large) since you get ACID compliance on that row, which you wouldn't get from using another table. You then just upsert the names column at the same time you upsert the dynamic columns.
Phoenix does something similar for tracing where there is an unknown number of annotations - we keep a trace annotation count column which then can be used to figure out the dynamic annotation column names (which are things like annotations.a0, .a1, .a2, etc) The downside is that you then need to do two queries to get all the columns, but until we implement the cf.* logic for dynamic columns, that's the best you can do. - jesse On Tue, Jan 6, 2015, 9:23 AM Sumanta Gh <[email protected]> wrote: > Thanks Nicolas for replying. > I am already managing dynamic column names either putting them in a > separate column or keeping the names in cache. > But looking at the pace Phoenix is evolving, IMHO this cf.* query pattern > would be very much helpful for users. > The stock HBase client is capable of doing that. > Because my table is extremely sparsed and I allow quite a random schema in > every row of the table, getting the content of the dynamic column in a > single query will save lot of time. > Looking forward to your completion of the work... > > Regards > Sumanta > > > -----Nicolas Maillard <[email protected]> wrote: ----- > To: [email protected] > From: Nicolas Maillard <[email protected]> > Date: 01/06/2015 03:08PM > Subject: Re: Select dynamic column content > > > Hello Sumanta > > This is a last bit missing in the select cf.* query pattern that would > bring back not only known columns but all dynamic ones also. I never got > around to finishing that bit for different reasons. The best way would be > to finish that, other than that I do not see an easy way to retrieve > dynamic columns of which you have lost the column name. I guess if there > is a logic ti these column names you could try to reconstruct or keep a > second table of keys to dynamic column names to find them in the after math. > > regards > > On Tue, Jan 6, 2015 at 8:01 AM, Sumanta Gh <[email protected]> wrote: > >> Hi, >> It has been a puzzle for me to get the content of dynamic columns in a >> single SELECT * FROM query. >> Challenge is that I do not know the dynamic column names in advance so I >> can not mention a dynamic column in the SELECT query. >> Is there any way out? Please suggest. >> >> Regards >> Sumanta >> >> =====-----=====-----===== >> Notice: The information contained in this e-mail >> message and/or attachments to it may contain >> confidential or privileged information. If you are >> not the intended recipient, any dissemination, use, >> review, distribution, printing or copying of the >> information contained in this e-mail message >> and/or attachments to it are strictly prohibited. If >> you have received this communication in error, >> please notify us by reply e-mail or telephone and >> immediately and permanently delete the message >> and any attachments. Thank you >> >> > > > -- > Nicolas Maillard Solution Engineer > Phone: +33 (0)6 68 17 66 05 > Email: nmaillard*@hortonworks.com* <[email protected]> > Website: http://www.hortonworks.com > > > > CONFIDENTIALITY NOTICE > NOTICE: This message is intended for the use of the individual or entity > to which it is addressed and may contain information that is confidential, > privileged and exempt from disclosure under applicable law. If the reader > of this message is not the intended recipient, you are hereby notified that > any printing, copying, dissemination, distribution, disclosure or > forwarding of this communication is strictly prohibited. If you have > received this communication in error, please contact the sender immediately > and delete it from your system. Thank You. >
