|
jing wang
2012-08-24, 02:37
Sonal Goyal
2012-08-24, 03:45
jing wang
2012-08-24, 04:33
Sonal Goyal
2012-08-24, 04:53
Pamecha, Abhishek
2012-08-24, 04:56
jing wang
2012-08-24, 05:22
jing wang
2012-08-24, 05:29
|
-
hbase many-to-many designjing wang 2012-08-24, 02:37
Hi 'user',
This is a many-to-many question, I also infer the hbase design FAQ, http://wiki.apache.org/hadoop/Hbase/FAQ_Design. What I want to do is desinging a 'user' table, incluing 'user' basic infomations(columnFamily1), and team-name 'user' joined in(columnFamily2), When a user join in a new Team, I want to update the 'user' table to add a column to 'columnFamily2'. So when getting the user , I get all the team-names the user join in. Yet I don't want to put duplicate records, known as multi-versions, each user has only one record. What should I do? Any advice will be appreciated! Thanks & Best Regards Mike
-
Re: hbase many-to-many designSonal Goyal 2012-08-24, 03:45
If you are you adding a new column to the team column family, I dont think
multi version comes into picture. Multi Versioning is saving copies of values of a particular cell, but you are creating a new cell within the same row. Best Regards, Sonal Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> Nube Technologies <http://www.nubetech.co> <http://in.linkedin.com/in/sonalgoyal> On Fri, Aug 24, 2012 at 8:07 AM, jing wang <[EMAIL PROTECTED]>wrote: > Hi 'user', > > This is a many-to-many question, I also infer the hbase design FAQ, > http://wiki.apache.org/hadoop/Hbase/FAQ_Design. > What I want to do is desinging a 'user' table, incluing 'user' basic > infomations(columnFamily1), and team-name 'user' joined in(columnFamily2), > When a user join in a new Team, I want to update the 'user' table to > add a column to 'columnFamily2'. So when getting the user , I get all the > team-names the user join in. > Yet I don't want to put duplicate records, known as multi-versions, > each user has only one record. > What should I do? > > Any advice will be appreciated! > > > Thanks & Best Regards > Mike >
-
Re: hbase many-to-many designjing wang 2012-08-24, 04:33
Hi Sonal,
Thanks for your reply. How to add a new column to the existing columnFamily?The method I want to try is using 3 steps, first get the record, construct a new put, using the reocrd's( getted before) columnFamily2, then delete the old record in Hbase, finally put the new constructed 'put' into Hbase.I really don't think this is a good way. if another 'put', including a new column is put to Hbase, this is a 'update' action or another version? Would you please give me some reference for adding a column to a row? Thanks & Best Regards Mike 2012/8/24 Sonal Goyal <[EMAIL PROTECTED]> > If you are you adding a new column to the team column family, I dont think > multi version comes into picture. Multi Versioning is saving copies of > values of a particular cell, but you are creating a new cell within the > same row. > > > Best Regards, > Sonal > Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> > Nube Technologies <http://www.nubetech.co> > > <http://in.linkedin.com/in/sonalgoyal> > > > > > > On Fri, Aug 24, 2012 at 8:07 AM, jing wang <[EMAIL PROTECTED] > >wrote: > > > Hi 'user', > > > > This is a many-to-many question, I also infer the hbase design FAQ, > > http://wiki.apache.org/hadoop/Hbase/FAQ_Design. > > What I want to do is desinging a 'user' table, incluing 'user' basic > > infomations(columnFamily1), and team-name 'user' joined > in(columnFamily2), > > When a user join in a new Team, I want to update the 'user' table to > > add a column to 'columnFamily2'. So when getting the user , I get all the > > team-names the user join in. > > Yet I don't want to put duplicate records, known as multi-versions, > > each user has only one record. > > What should I do? > > > > Any advice will be appreciated! > > > > > > Thanks & Best Regards > > Mike > > >
-
Re: hbase many-to-many designSonal Goyal 2012-08-24, 04:53
Sorry, is this what you want? I created a table with two column families. I
added one row and column family cf1 with qualifier team1. Then I added new team cf1 with qualifier team2. hbase(main):001:0> create 'multi','cf1','cf2' 0 row(s) in 1.6240 seconds hbase(main):002:0> put 'multi','row1','cf1:team1','firstTeam' 0 row(s) in 0.0880 seconds hbase(main):003:0> scan 'multi' ROW COLUMN+CELL row1 column=cf1:team1, timestamp=1345783824219, value=firstTeam 1 row(s) in 0.0540 seconds hbase(main):004:0> put 'multi','row1','cf1:team2','secondTeam' 0 row(s) in 0.0060 seconds hbase(main):005:0> scan 'multi' ROW COLUMN+CELL row1 column=cf1:team1, timestamp=1345783824219, value=firstTeam row1 column=cf1:team2, timestamp=1345783846821, value=secondTea m 1 row(s) in 0.0250 seconds Best Regards, Sonal Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> Nube Technologies <http://www.nubetech.co> <http://in.linkedin.com/in/sonalgoyal> On Fri, Aug 24, 2012 at 10:03 AM, jing wang <[EMAIL PROTECTED]>wrote: > Hi Sonal, > > Thanks for your reply. > How to add a new column to the existing columnFamily?The method I want > to try is using 3 steps, first get the record, construct a new put, using > the reocrd's( getted before) columnFamily2, then delete the old record in > Hbase, finally put the new constructed 'put' into Hbase.I really don't > think this is a good way. > if another 'put', including a new column is put to Hbase, this is a > 'update' action or another version? > Would you please give me some reference for adding a column to a row? > > Thanks & Best Regards > Mike > > > 2012/8/24 Sonal Goyal <[EMAIL PROTECTED]> > > > If you are you adding a new column to the team column family, I dont > think > > multi version comes into picture. Multi Versioning is saving copies of > > values of a particular cell, but you are creating a new cell within the > > same row. > > > > > > Best Regards, > > Sonal > > Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> > > Nube Technologies <http://www.nubetech.co> > > > > <http://in.linkedin.com/in/sonalgoyal> > > > > > > > > > > > > On Fri, Aug 24, 2012 at 8:07 AM, jing wang <[EMAIL PROTECTED] > > >wrote: > > > > > Hi 'user', > > > > > > This is a many-to-many question, I also infer the hbase design > FAQ, > > > http://wiki.apache.org/hadoop/Hbase/FAQ_Design. > > > What I want to do is desinging a 'user' table, incluing 'user' > basic > > > infomations(columnFamily1), and team-name 'user' joined > > in(columnFamily2), > > > When a user join in a new Team, I want to update the 'user' table > to > > > add a column to 'columnFamily2'. So when getting the user , I get all > the > > > team-names the user join in. > > > Yet I don't want to put duplicate records, known as > multi-versions, > > > each user has only one record. > > > What should I do? > > > > > > Any advice will be appreciated! > > > > > > > > > Thanks & Best Regards > > > Mike > > > > > >
-
Re: hbase many-to-many designPamecha, Abhishek 2012-08-24, 04:56
Hi Jong
You can add a new column unannounced. This means your current 'put' does not have to recall which other columns are already present in the row or for that matter, in the table. You just issue a put command as if it was your first one, and the column will be added. Unlike rdbms, There are no update or alter table commands You need to execute to add a new column. If the column you are adding already existed,then a new version of value you put, is stored. Thanks Abhishek i Sent from my iPad with iMstakes On Aug 23, 2012, at 21:34, "jing wang" <[EMAIL PROTECTED]> wrote: > Hi Sonal, > > Thanks for your reply. > How to add a new column to the existing columnFamily?The method I want > to try is using 3 steps, first get the record, construct a new put, using > the reocrd's( getted before) columnFamily2, then delete the old record in > Hbase, finally put the new constructed 'put' into Hbase.I really don't > think this is a good way. > if another 'put', including a new column is put to Hbase, this is a > 'update' action or another version? > Would you please give me some reference for adding a column to a row? > > Thanks & Best Regards > Mike > > > 2012/8/24 Sonal Goyal <[EMAIL PROTECTED]> > >> If you are you adding a new column to the team column family, I dont think >> multi version comes into picture. Multi Versioning is saving copies of >> values of a particular cell, but you are creating a new cell within the >> same row. >> >> >> Best Regards, >> Sonal >> Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> >> Nube Technologies <http://www.nubetech.co> >> >> <http://in.linkedin.com/in/sonalgoyal> >> >> >> >> >> >> On Fri, Aug 24, 2012 at 8:07 AM, jing wang <[EMAIL PROTECTED] >>> wrote: >> >>> Hi 'user', >>> >>> This is a many-to-many question, I also infer the hbase design FAQ, >>> http://wiki.apache.org/hadoop/Hbase/FAQ_Design. >>> What I want to do is desinging a 'user' table, incluing 'user' basic >>> infomations(columnFamily1), and team-name 'user' joined >> in(columnFamily2), >>> When a user join in a new Team, I want to update the 'user' table to >>> add a column to 'columnFamily2'. So when getting the user , I get all the >>> team-names the user join in. >>> Yet I don't want to put duplicate records, known as multi-versions, >>> each user has only one record. >>> What should I do? >>> >>> Any advice will be appreciated! >>> >>> >>> Thanks & Best Regards >>> Mike >>> >>
-
Re: hbase many-to-many designjing wang 2012-08-24, 05:22
Hi Abhishek,
Got it. Thank you very much. Thanks & Best Regards Mike 2012/8/24 Pamecha, Abhishek <[EMAIL PROTECTED]> > Hi Jong > > You can add a new column unannounced. This means your current 'put' does > not have to recall which other columns are already present in the row or > for that matter, in the table. You just issue a put command as if it was > your first one, and the column will be added. > > Unlike rdbms, There are no update or alter table commands You need to > execute to add a new column. > > If the column you are adding already existed,then a new version of value > you put, is stored. > > Thanks > Abhishek > > > i Sent from my iPad with iMstakes > > On Aug 23, 2012, at 21:34, "jing wang" <[EMAIL PROTECTED]> wrote: > > > Hi Sonal, > > > > Thanks for your reply. > > How to add a new column to the existing columnFamily?The method I want > > to try is using 3 steps, first get the record, construct a new put, using > > the reocrd's( getted before) columnFamily2, then delete the old record in > > Hbase, finally put the new constructed 'put' into Hbase.I really don't > > think this is a good way. > > if another 'put', including a new column is put to Hbase, this is a > > 'update' action or another version? > > Would you please give me some reference for adding a column to a row? > > > > Thanks & Best Regards > > Mike > > > > > > 2012/8/24 Sonal Goyal <[EMAIL PROTECTED]> > > > >> If you are you adding a new column to the team column family, I dont > think > >> multi version comes into picture. Multi Versioning is saving copies of > >> values of a particular cell, but you are creating a new cell within the > >> same row. > >> > >> > >> Best Regards, > >> Sonal > >> Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> > >> Nube Technologies <http://www.nubetech.co> > >> > >> <http://in.linkedin.com/in/sonalgoyal> > >> > >> > >> > >> > >> > >> On Fri, Aug 24, 2012 at 8:07 AM, jing wang <[EMAIL PROTECTED] > >>> wrote: > >> > >>> Hi 'user', > >>> > >>> This is a many-to-many question, I also infer the hbase design FAQ, > >>> http://wiki.apache.org/hadoop/Hbase/FAQ_Design. > >>> What I want to do is desinging a 'user' table, incluing 'user' > basic > >>> infomations(columnFamily1), and team-name 'user' joined > >> in(columnFamily2), > >>> When a user join in a new Team, I want to update the 'user' table > to > >>> add a column to 'columnFamily2'. So when getting the user , I get all > the > >>> team-names the user join in. > >>> Yet I don't want to put duplicate records, known as multi-versions, > >>> each user has only one record. > >>> What should I do? > >>> > >>> Any advice will be appreciated! > >>> > >>> > >>> Thanks & Best Regards > >>> Mike > >>> > >> >
-
Re: hbase many-to-many designjing wang 2012-08-24, 05:29
Hi Sonal,
Thanks again.I have got a misunderstanding of Column-oriented Hbase. Said by Abhishek, solving my problem *You can add a new column unannounced. This means your current 'put' does not have to recall which other columns are already present in the row or for that matter, in the table. You just issue a put command as if it was your first one, and the column will be added. Unlike rdbms, There are no update or alter table commands You need to execute to add a new column.* * If the column you are adding already existed,then a new version of value you put, is stored.* Thanks, Mike 2012/8/24 Sonal Goyal <[EMAIL PROTECTED]> > Sorry, is this what you want? I created a table with two column families. I > added one row and column family cf1 with qualifier team1. Then I added new > team cf1 with qualifier team2. > > hbase(main):001:0> create 'multi','cf1','cf2' > 0 row(s) in 1.6240 seconds > > hbase(main):002:0> put 'multi','row1','cf1:team1','firstTeam' > 0 row(s) in 0.0880 seconds > > hbase(main):003:0> scan 'multi' > ROW COLUMN+CELL > > row1 column=cf1:team1, timestamp=1345783824219, > value=firstTeam > 1 row(s) in 0.0540 seconds > > hbase(main):004:0> put 'multi','row1','cf1:team2','secondTeam' > 0 row(s) in 0.0060 seconds > > hbase(main):005:0> scan 'multi' > ROW COLUMN+CELL > > row1 column=cf1:team1, timestamp=1345783824219, > value=firstTeam > row1 column=cf1:team2, timestamp=1345783846821, > value=secondTea > m > > 1 row(s) in 0.0250 seconds > > > Best Regards, > Sonal > Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> > Nube Technologies <http://www.nubetech.co> > > <http://in.linkedin.com/in/sonalgoyal> > > > > > > On Fri, Aug 24, 2012 at 10:03 AM, jing wang <[EMAIL PROTECTED] > >wrote: > > > Hi Sonal, > > > > Thanks for your reply. > > How to add a new column to the existing columnFamily?The method I want > > to try is using 3 steps, first get the record, construct a new put, using > > the reocrd's( getted before) columnFamily2, then delete the old record in > > Hbase, finally put the new constructed 'put' into Hbase.I really don't > > think this is a good way. > > if another 'put', including a new column is put to Hbase, this is a > > 'update' action or another version? > > Would you please give me some reference for adding a column to a row? > > > > Thanks & Best Regards > > Mike > > > > > > 2012/8/24 Sonal Goyal <[EMAIL PROTECTED]> > > > > > If you are you adding a new column to the team column family, I dont > > think > > > multi version comes into picture. Multi Versioning is saving copies of > > > values of a particular cell, but you are creating a new cell within the > > > same row. > > > > > > > > > Best Regards, > > > Sonal > > > Crux: Reporting for HBase <https://github.com/sonalgoyal/crux> > > > Nube Technologies <http://www.nubetech.co> > > > > > > <http://in.linkedin.com/in/sonalgoyal> > > > > > > > > > > > > > > > > > > On Fri, Aug 24, 2012 at 8:07 AM, jing wang <[EMAIL PROTECTED] > > > >wrote: > > > > > > > Hi 'user', > > > > > > > > This is a many-to-many question, I also infer the hbase design > > FAQ, > > > > http://wiki.apache.org/hadoop/Hbase/FAQ_Design. > > > > What I want to do is desinging a 'user' table, incluing 'user' > > basic > > > > infomations(columnFamily1), and team-name 'user' joined > > > in(columnFamily2), > > > > When a user join in a new Team, I want to update the 'user' > table > > to > > > > add a column to 'columnFamily2'. So when getting the user , I get all > > the > > > > team-names the user join in. > > > > Yet I don't want to put duplicate records, known as > > multi-versions, > > > > each user has only one record. > > > > What should I do? > > > > > > > > Any advice will be appreciated! > > > > > > > > > > > > Thanks & Best Regards > > > > Mike > > > > > > > > > > |