2013-09-20 2 views
0

Можем ли мы иметь составные значения в каждом столбце в семействе колонок Cassandra?Композитные значения столбцов в Кассандре?

user-id column1-name 
123  (Column1-Value Column1-SchemaName Column1-LastModifiedDate) 

userId - это rowKey здесь. То же самое будет и для других столбцов.

Каждое значение в этом столбце содержится ниже трех вещей always-

ByteType for Column-Value 

UTF8Type for Column-SchemaName 

DateType for LastModifiedDate 

Если да, то может кто-нибудь мне помочь в разработке семейства столбцов для этого? Я буду использовать клиент Astyanax для вставки в это семейство столбцов.

ответ

0

Я не думаю, что это возможно в Кассандре. Либо вы должны де-нормализовать свою семейство колонок, либо ухаживать за Коллекция Cassandra. Если вы можете ограничить модели данных типа данных для Значения, SchemaName, LastModifiedDate к одному типу, то, возможно, Карта будет полезной в вашем случае.

+0

Thanks abhi. Тогда, если есть какой-либо другой способ разработать мой вариант использования. Мне просто нужны три значения для каждого из моих столбцов-имен .. – ferhan

+0

Я думаю, нет .. это невозможно – abhi

0

Вы, кажется, пытаетесь создать так называемую «супер колонку», которая в последнее время была очень «неосознанной» в Кассандре (Why are super columns in Cassandra no longer favoured?). Итак, я бы сказал, вы должны попытаться переосмыслить свой дизайн, и если вам действительно нужно иметь все эти значения в одном столбце, вы можете сделать маршалинг/демонтаж себя из приложения, в качестве альтернативы вы также можете подумать об использовании «составных клавиш», если это вам поможет.

1

Есть два пути:

  1. Использование CompositeType для ваших колонок. В этом случае будет 4 составных имени столбца компонента и пустое значение столбца.
  2. Используйте последовательный сериализатор astyanax. В этом случае имя столбца останется прежним. Пользовательский сериализатор конвертирует из байтового буфера в свой пользовательский объект и обратно.
Смежные вопросы