我正在尝试将此嵌套对象插入cassandra数据库中,但无法弄清楚如何为此设计表。我希望将来自该对象的所有数据存储在cassandra中。
下面,我粘贴了要插入的json im。
有什么建议吗?
this.fcm.subscribeToTopic('people');
答案 0 :(得分:1)
有多种方法可以做到这一点。
如果您的用例只是将JSON存储为字符串,则只需将整个JSON作为Blob序列化为单个列即可 创建一个表为:
CREATE TABLE IF NOT EXISTS my_table(
ID <text/bigint>
DATA text,
CREATEDATE timestamp
)
如果要将所有嵌套属性表示为单独的列,则需要从下至上开始。 即首先为每个嵌套字段创建User Defined Types。 参考您的json,示例如下:
CREATE TYPE metric (
name text,
env text,
instance text,
job text
);
CREATE TYPE value(
field1 text,
field2 text
);
一旦创建了bas UDT,就开始创建Composite UDT,并引用基本UDT:
CREATE TYPE result(
metric metric,
value value,
);
CREATE TYPE data(
resultType text,
result set<result>,
);
然后最终如下引导表:
CREATE TABLE IF NOT EXISTS my_table (
ID <text/bigint>
status data
)
根据查询和存储来确定主键/分区键时要小心 用例。