将嵌套的json插入cassandra

时间:2019-03-29 09:51:20

标签: python cassandra

我正在尝试将此嵌套对象插入cassandra数据库中,但无法弄清楚如何为此设计表。我希望将来自该对象的所有数据存储在cassandra中。

下面,我粘贴了要插入的json im。

有什么建议吗?

this.fcm.subscribeToTopic('people');

1 个答案:

答案 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
)

根据查询和存储来确定主键/分区键时要小心 用例。