如何在cassandra中存储动态值

unhi4e5o  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(401)

我需要将一些事件存储在一个cassandra表中。我曾与哈伯斯有很多工作,我是新的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
       ......
   }
}

查询应提取具有相关属性的特定类型的所有事件。
我发现了两种情况:
将属性存储为json(键入文本)。我将在提取时反序列化它们
将属性存储为 Map<String,Byte> . 我将在提取时反序列化类型
我不知道这两种情况是哪一种。

nuypyhwy

nuypyhwy1#

你可以喝一杯
map<text, blob> attributes 在你的表中,如果你想要一个简单的1:1到你的对象。我建议您考虑如何查询数据和模型。也就是说,如果您只是将其用作单个对象存储和检索,它可以简单到:

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

相关问题