Как хранить динамические значения в Кассандре - PullRequest
0 голосов
/ 20 декабря 2018

Мне нужно хранить некоторые события в Таблице Кассандры.Я много работал с habse, и я новичок в моделировании данных cassandra.

события идентифицируются по типу и имеют некоторые атрибуты.атрибуты не имеют фиксированного типа и, возможно, не имеют фиксированной длины.

JSON, описывающий событие:

{
   obj_id: <identify the object that the event is related>
   timestamp: <timestamp of the event>
   type: <type of the event>
   attributes: {
       attribute1: value
       attribute2: value
       ......
   }
}

Запрос должен извлечь все событияконкретный тип со связанными атрибутами.

Я разобрался в двух сценариях:

  1. Сохранение атрибутов в формате Json (тип текста).Я буду десериализовать их при извлечении
  2. Хранить атрибуты как Map<String,Byte>.Я буду десериализовать тип при извлечении

Я не знаю, какой выбор из двух сценариев.

1 Ответ

0 голосов
/ 20 декабря 2018

вы можете иметь map<text, blob> attributes в вашей таблице, если вы хотите простое 1: 1 для вашего объекта.Тем не менее, я бы порекомендовал подумать, как вы собираетесь запрашивать ваши данные и модели.Тем не менее, если вы просто используете это как хранилище и поиск одного объекта, это может быть так просто:

CREATE TABLE object (
  obj_id text PRIMARY KEY,
  created timestamp,
  type text,
  attributes map<text, blob>
);
...