Yup, that's right. Sql takes away flexibility of NoSql. I have been battling with this tradeoff for a while. ;)
Sent from my iPhone > On Jul 7, 2015, at 6:46 AM, Sergey Malov <[email protected]> wrote: > > Thanks, Anil, that’s what I thought initially. I was a bit confused with what > James wrote, that I can create a view, but it wouldn’t be feasible. > Essentially, it seems, I need to impose a strict schema on Hbase table for > Phoenix to work on it directly, which defeats a purpose of schema-less db > imho. Not complaining, I understand that to marry SQL and non-SQL design, > sacrifices should be made. > > Thank you, > Sergey Malov > > From: anil gupta <[email protected]> > Reply-To: "[email protected]" <[email protected]> > Date: Tuesday, July 7, 2015 at 02:49 > To: "[email protected]" <[email protected]> > Subject: Re: create a view on existing production table ? > > Hi Sergey, > > You **can't** create a view that would work with dynamic columns. Dynamic > columns are specified along with query(you can specify one, two or three > columns, Phoenix will not complain) because Phoenix has no idea about > existence of these columns(otherwise they wont be called Dynamic columns). > Hope this clarifies further. > > Thanks, > Anil Gupta > >> On Mon, Jul 6, 2015 at 4:05 PM, Sergey Malov <[email protected]> wrote: >> Thanks for your replies, guys. >> I’m trying to understand that dynamic column feature, not sure how to apply >> it in my case. >> Let’s look at the concrete example : suppose I have an existing Hbase table >> “X", which has only one column family “A”. Each record has either one or two >> or three columns with qualifiers “A1”,”A2”, or “A3”, I.e. some records has >> only one column A.A1, or A.A2, or A.A3, some just two, some all three. >> How can I create a view using dynamic columns that I can query later ? >> >> Thank you, >> Sergey Malov >> >> From: anil gupta <[email protected]> >> Reply-To: "[email protected]" <[email protected]> >> Date: Friday, June 26, 2015 at 18:28 >> >> To: "[email protected]" <[email protected]> >> Subject: Re: create a view on existing production table ? >> >> Hi Sergey, >> >> Since you have hundreds of thousand of columns. You can query your data by >> using dynamic columns features of phoenix. In this way, you wont need to >> predefine 100's of thousands of columns. >> >> Thanks, >> Anil Gupta >> >>> On Fri, Jun 26, 2015 at 11:34 AM, James Taylor <[email protected]> >>> wrote: >>> Sergey, >>> It is possible, but maybe in your case it's not feasible. >>> Thanks, >>> James >>> >>> >>>> On Friday, June 26, 2015, Sergey Malov <[email protected]> wrote: >>>> Hi James, >>>> From you reply I understand that it is NOT possible to create such a view, >>>> because each family can have different number of columns, and it could be >>>> just one column per family for one PK, and hundreds of thousands for >>>> another PK. How can I possibly accommodate it in a view specification, if >>>> I need to explicitly define column by name ? >>>> Or I misunderstand something ? >>>> >>>> Thank you, >>>> Sergey >>>> >>>> From: James Taylor <[email protected]> >>>> Reply-To: "[email protected]" <[email protected]> >>>> Date: Friday, June 26, 2015 at 12:04 >>>> To: "[email protected]" <[email protected]> >>>> Subject: Re: create a view on existing production table ? >>>> >>>> Hi Sergey, >>>> Yes, you can create a Phoenix view over this HBase table, but you have to >>>> explicitly list columns by name (i.e. column qualifier) either at view >>>> creation time or at read time (using dynamic columns). Also, the row key >>>> must conform to what Phoenix expects if there are multiple columns in your >>>> PK. >>>> Thanks, >>>> James >>>> >>>>> On Wednesday, June 24, 2015, Sergey Malov <[email protected]> wrote: >>>>> My apologies if this info can be found somewhere, I don’t see it. >>>>> I have a production table “profile” with the following schema : >>>>> >>>>> {NAME => 'edge', BLOOMFILTER => 'ROW', VERSIONS => '2', IN_MEMORY => >>>>> 'false', KEEP_DELETED_CELLS => 'false', DATA_BLOCK_ENCODING => >>>>> 'FAST_DIFF', COMPRESSION => 'SNAPPY', TTL => ' >>>>> FOREVER', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => >>>>> '65536', REPLICATION_SCOPE => '1'} >>>>> >>>>> {NAME => 'export', BLOOMFILTER => 'ROW', VERSIONS => '2', IN_MEMORY => >>>>> 'false', KEEP_DELETED_CELLS => 'false', DATA_BLOCK_ENCODING => >>>>> 'FAST_DIFF', COMPRESSION => 'SNAPPY', TTL => >>>>> 'FOREVER', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => >>>>> '65536', REPLICATION_SCOPE => '1'} >>>>> >>>>> {NAME => 'visitor', BLOOMFILTER => 'ROW', VERSIONS => '2', IN_MEMORY => >>>>> 'false', KEEP_DELETED_CELLS => 'false', DATA_BLOCK_ENCODING => >>>>> 'FAST_DIFF', COMPRESSION => 'SNAPPY', TTL = >>>>> > 'FOREVER', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => >>>>> > '65536', REPLICATION_SCOPE => '1'} >>>>> > >>>>> >>>>> Each of these families can have variable number of column for a given >>>>> key, with some having hundreds of thousands columns. >>>>> Is it possible to create a Phoenix view for such a table ? >>>>> >>>>> Thank you, >>>>> Sergey Malov >> >> >> >> -- >> Thanks & Regards, >> Anil Gupta > > > > -- > Thanks & Regards, > Anil Gupta
