An important bit to read about supercolumn limitations: http://www.riptano.com/docs/0.6/data_model/supercolumns#limitations
Don't make supercolumns with a huge number of subcolumns (or a few really large subcolumns) unless you plan to always read all of them at once. - Tyler On Fri, Jan 7, 2011 at 1:27 AM, Arijit Mukherjee <ariji...@gmail.com> wrote: > Thanx to both of you. I can now go ahead a bit more. > > Arijit > > On 7 January 2011 12:53, Narendra Sharma <narendra.sha...@gmail.com> > wrote: > > With raw thrift APIs: > > > > 1. Fetch column from supercolumn: > > > > ColumnPath cp = new ColumnPath("ColumnFamily"); > > cp.setSuper_column("SuperColumnName"); > > cp.setColumn("ColumnName"); > > ColumnOrSuperColumn resp = client.get(getByteBuffer("RowKey"), cp, > > ConsistencyLevel.ONE); > > Column c = resp.getColumn(); > > > > 2. Add a new supercolumn: > > > > SuperColumn superColumn = new SuperColumn(); > > superColumn.setName(getBytes("SuperColumnName")); > > cols = new ArrayList<Column>(); > > Column c = new Column(); > > c.setName(name); > > c.setValue(value); > > c.setTimestamp(timeStamp); > > cols.add(c); > > //repeat above 5 lines for as many cols you want in supercolumn > > superColumn.setColumns(cols); > > > > > > List<Mutation> mutations = new ArrayList<Mutation>(); > > ColumnOrSuperColumn csc = new ColumnOrSuperColumn(); > > csc.setSuper_column(superColumn); > > csc.setSuper_columnIsSet(true); > > Mutation m = new Mutation(); > > m.setColumn_or_supercolumn(csc); > > m.setColumn_or_supercolumnIsSet(true); > > mutations.add(m); > > > > > > Map<String, List<Mutation>> allMutations = new HashMap<String, > > List<Mutation>>(); > > allMutations.put("ColumnFamilyName", mutations); > > Map<ByteBuffer, Map<String, List<Mutation>>> mutationMap = new > > HashMap<ByteBuffer, Map<String, List<Mutation>>>(); > > mutationMap.put(getByteBuffer("RowKey"), mutations); > > client.batch_mutate(mutationMap, ConsistencyLevel.ONE); > > > > HTH! > > > > Thanks, > > Naren > > > > > > > > On Thu, Jan 6, 2011 at 10:42 PM, Arijit Mukherjee <ariji...@gmail.com> > > wrote: > >> > >> Thank you. And is it similar if I want to search a subcolumn within a > >> given supercolumn? I mean I have the supercolumn key and the subcolumn > >> key - can I fetch the particular subcolumn? > >> > >> Can you share a small piece of example code for both? > >> > >> I'm still new into this and trying to figure out the Thrift APIs. I > >> attempted to use Hector, but got myself into more confusion. > >> > >> Arijit > >> > >> On 7 January 2011 11:44, Roshan Dawrani <roshandawr...@gmail.com> > wrote: > >> > > >> > On Fri, Jan 7, 2011 at 11:39 AM, Arijit Mukherjee <ariji...@gmail.com > > > >> > wrote: > >> >> > >> >> Hi > >> >> > >> >> I've a quick question about supercolumns. > >> >> EventRecord = { > >> >> eventKey2: { > >> >> e2-ts1: {set of columns}, > >> >> e2-ts2: {set of columns}, > >> >> ... > >> >> e2-tsn: {set of columns} > >> >> } > >> >> .... > >> >> } > >> >> > >> >> If I want to append another "e2-tsp: {set of columns}" to the event > >> >> record keyed by eventKey2, do I need to retrieve the entire eventKey2 > >> >> map, and then append this new row and re-insert eventKey2? > >> > > >> > No, you can simply insert a new super column with its sub-columns with > >> > the rowKey that you want, and it will join the other super columns of > that > >> > row. > >> > > >> > A row have billions of super columns. Imagine fetching them all, just > to > >> > add one more super column into it. > >> > > >> > > >> > > >> > > >> > > >> > >> > >> -- > >> "And when the night is cloudy, > >> There is still a light that shines on me, > >> Shine on until tomorrow, let it be." > > > > > > > > -- > "And when the night is cloudy, > There is still a light that shines on me, > Shine on until tomorrow, let it be." >