Cassandra DataModel Designing, Composite Key vs Super Column

при разработке модели данных в cassandra. Я застрял при разработке сценария ниже.

Например, один API/веб-сервис может иметь несколько параметров (ввод/вывод). Я не знаю количество параметров и имя столбца.

Как спроектировать свою модель данных cassandra. Я знаю, что суперстолбцы не подходят для использования, и альтернативным хорошим решением является использование составных ключей. Но для моего сценария у меня нет фиксированных имен столбцов и количества, которые я могу указать в качестве составных ключей.

Пожалуйста, посмотрите на картинку ниже, которую я хочу смоделировать

введите здесь описание изображения

Во-вторых, как написать оператор создания таблицы, чтобы я мог указать имя параметра в качестве имени столбца.

Пожалуйста, дайте мне знать, если что-то неясно.

Спасибо,


person Usman    schedule 27.11.2014    source источник


Ответы (1)


Почему бы не использовать карту?

http://www.datastax.com/documentation/cql/3.1/cql/cql_using/use_map_t.html

create table foo(
   name text,
   owner text,
   version text,
   params map<text, text>,
   primary key (name, owner, version)
);

Если вы используете 2.1, вы можете создавать вторичные индексы для ключей/значений карты, что при необходимости обеспечивает большую гибкость.

person ashic    schedule 27.11.2014
comment
Спасибо, моим требованием были вторичные индексы, и да, в версии 2.1 они поддерживаются. Не могли бы вы подтвердить мне размер коллекции, так как это 64K для одного предмета, верно? Всего в коллекции 64 тыс. элементов (datastax.com/documentation/ cql/3.0/cql/cql_using/), означает 64 КБ * 64 КБ для максимальной коллекции? - person Usman; 27.11.2014
comment
Я думаю, что это будет 64k ​​ключей для карты. Для большего, вы можете использовать несколько карт подряд. НО не храните много предметов в коллекциях... это не то, для чего они предназначены. Помните, что большие разделы будут влиять на производительность. Теоретические ограничения на самом деле не являются практическими ограничениями. - person ashic; 27.11.2014