Вставить вложенную суперколонку - PullRequest
0 голосов
/ 30 марта 2012

Как вставить вложенную суперколонку (имеется в виду суперколонка в суперколонке) в Cassandra с помощью Hector API. Ниже приведен код для простого супер-столбца, и он работает нормально. Но я хочу добавить один супер столбец в этом тоже.

Mutator<String> mutator = HFactory.createMutator(keyspaceOperator, stringSerializer);
List<HColumn<String,String>> colsList = new ArrayList<HColumn<String,String>>();
colsList.add(HFactory.createStringColumn("name", "tarun"));
colsList.add(HFactory.createStringColumn("age", "25"));
mutator.insert("deviceId", CF_SUPER, HFactory.createSuperColumn("10000", 
               colsList,stringSerializer, stringSerializer, stringSerializer));

Ответы [ 2 ]

3 голосов
/ 05 апреля 2012

Вы не можете поместить SuperColumn в другой SuperColumn в Cassandra. Это не ограничение Гектора, это только то, как реализована Cassandra.

Когда я впервые начал работать с Cassandra, я часами читал текстовые описания модели данных, мои глаза застеклились, и я не понял этого. Затем я увидел изображение и мгновенно схватил его. Проверьте это: http://www.javageneration.com/wp-content/uploads/2010/05/Cassandra_DataModel_CheatSheet.pdf

1 голос
/ 30 марта 2012

Вы не можете поместить суперколонку в другую суперколонку. Вам нужно использовать SuperColumnFamily, которая содержит коллекцию суперколонок. См. эту замечательную статью одного из парней, которая основала Cassandra в Digg, для хорошего объяснения модели данных

...