Как хранить ответы пользователей в Кассандре? - PullRequest
0 голосов
/ 01 мая 2020

Мы пытаемся хранить ответы пользователей на вопросы. Ответ основан на ид. Когда пользователь заходит на сайт, нам нужно получить все идентификаторы вопросов, чтобы знать, что он ответил. Количество вопросов может быть около 50000 или более. В настоящее время мы храним данные на сервере sql, используя добавляемый BLOB-объект (varbinary (max)). Но мы ищем базу данных, которая может справиться с этой ситуацией. Casandra может дать нам схему без блобов и репликацию мастер - мастер. Как правильно хранить его в казандре? Мне известные списки не рекомендуются для такой ситуации. Отдельная таблица дает нам подходящую производительность (<20-30мс) с композитным ключом? </p>

1 Ответ

0 голосов
/ 02 мая 2020

Я не уверен на 100%, что понимаю, как вы будете извлекать данные, но обычно, если в вашей таблице есть только один столбец, похожий на коллекцию, вы всегда можете реализовать его в качестве дополнительного столбца в качестве столбца кластеризации. - это решит проблему с доступом к части ответов, et c. - если у вас есть идентификатор ответа в качестве столбца кластеризации, вы можете выбрать только диапазон ответов, но когда вы используете set, вам нужно выбрать все ...

Например, если у вас есть таблица, например this:

create table answers (
  user_id text primary key,
  answers set<int>
)

его всегда можно преобразовать из коллекции в следующее:

create table answers (
  user_id text,
  answer_id int,
  primary key (user_id, answer_id));

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

PS Я рекомендую пройти курс DS220 по DataStax Academy , чтобы узнать больше о data modellng, или взять 3-е издание книги Cassandra, который был выпущен недавно - у него есть хорошая глава по моделированию данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...