亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將嵌套的 json 插入到 cassandra 中

將嵌套的 json 插入到 cassandra 中

慕哥9229398 2021-12-21 16:48:37
我試圖將這個嵌套對象插入到 cassandra 數據庫中,但無法弄清楚如何為此設計表。我希望這個對象的所有數據都存儲在 cassandra 中。下面我粘貼了我試圖插入的 json。有什么建議?{  "status": "success",  "data": {    "resultType": "vector",    "result": [      {        "metric": {          "__name__": "up",          "env": "demosite",          "instance": "localhost:9100",          "job": "node"        },        "value": [          1553849977.349,          "1"        ]      },      {        "metric": {          "__name__": "up",          "instance": "ub-lab-server:9090",          "job": "prometheus"        },        "value": [          1553849977.349,          "1"        ]      }    ]  }}
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

有多種方法可以做到這一點。


如果您的用例只是將 JSON 存儲為字符串,只需將整個 JSON 作為 blob 序列化為單個列創建一個表:


CREATE TABLE IF NOT EXISTS my_table(

  ID <text/bigint>

  DATA text,

  CREATEDATE timestamp

)

如果要將所有嵌套屬性表示為單獨的列,則必須從下往上開始。即首先為每個嵌套字段創建用戶定義類型。參考你的 json ,一個例子是:


CREATE TYPE metric (

      name text,

      env text,

      instance text,

      job text

);


CREATE TYPE value(

      field1 text,

      field2 text

);

創建基本 UDT 后,從創建復合 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

)

在根據查詢和存儲用例決定主鍵/分區鍵時要小心。


查看完整回答
反對 回復 2021-12-21
  • 1 回答
  • 0 關注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號