Raj: the super column indexing is a longstanding issue that we've been considering recently, and would like to fix. See https://issues.apache.org/jira/browse/CASSANDRA-674
On Fri, Jan 7, 2011 at 10:53 PM, Tyler Hobbs <ty...@riptano.com> wrote: > Not that I'm aware of. There are several other decent alternatives to > large amounts of subcolumns in a supercolumn, so I don't think it's a high > priority. > > - Tyler > > > On Fri, Jan 7, 2011 at 9:59 PM, Rajkumar Gupta <rajkumar....@gmail.com>wrote: > >> Hey Tyler, >> >> Is this limitation of supercolumns going to be removed anytime sooner ? >> >> Raj >> >> On Fri, Jan 7, 2011 at 8:51 PM, Tyler Hobbs <ty...@riptano.com> wrote: >> > 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." >> > >> > >> > >