91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何對mongodb存儲類JSON數據文檔統計分析

發布時間:2022-06-15 11:50:03 來源:億速云 閱讀:261 作者:iii 欄目:開發技術

今天小編給大家分享一下如何對mongodb存儲類JSON數據文檔統計分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、文檔存儲的需求

很多的開發者都使用過mongodb,在mongodb中數據記錄是以文檔的形式存在的(類似于一種多級嵌套SQL的形式)。比如下面的JSON數據結構:dev_ip表示某一臺服務器的ip、location字段存放經緯度、meminfo.total和meminfo.userd分別代表內存總量和使用量。

[{
  "dev_ip": "123.46.5.111",
  "location": [39.916527, 116.397128],
  "meminfo": {
    "total": 64,
    "used": 23.2
  }
},
{
  "dev_ip": "123.46.5.112",
  "location": [39.916144, 116.392582],
  "meminfo": {
    "total": 64,
    "used": 27.8
  }
}]

二、建表

存儲文檔需要使用到Map這種數據類型,在某些比較舊的版本中,Map數據類型還是實驗性的,不能直接使用。如果想使用,需要執行set allow_experimental_map_type = 1;
然后我們可以按照JSON的數據結構來建表,location是數組Array數據類型,meminfo是Map數據類型。

CREATE TABLE dev_meminfo (
  dev_ip String,  
  location Array(Float64),
  meminfo Map(String, Float32)
)
ENGINE = MergeTree()
ORDER BY dev_ip;

clickhouse提供了數組類型Array(T),數組類型由多個T元素組成。T可以是任意的基礎數據類型,或者也可以是數組類型。如果是數組類型就形成了多維數組,Cickhouse對多維數組的支持有限,所以不建議使用多維數組。數組里面所有的T元素的數據類型必須是一樣的,否則會拋出異常。

三、數據入庫

在linux環境下,我們可以將JSON數據保存為一個文檔,命名如:dev_meminfo.json。然后使用下面的命令行,完成文檔JSON數據的入庫。jq的作用是將JSON數組及Map從結構中剝離出來,從而符合JSONEachRow要求的輸入格式。

cat dev_meminfo.json |jq -c .[] | clickhouse-client --database acaidb -m -u acai --password '<你的密碼>'  \
--query="INSERT INTO dev_meminfo FORMAT JSONEachRow"

或者我們可以直接使用INSERT語句來完成數據的單條插入,如下:

INSERT  INTO dev_meminfo FORMAT JSONEachRow {"dev_ip": "123.46.5.112", "location": [39.916144, 116.392582],"meminfo": {"total": 64,"used": 27.8}};

四、查詢數據

select * 的方式查詢數據:

#  clickhouse-client --database acaidb -m -u acai --password '4rfv$RFV'  --query="SELECT * FROM dev_meminfo"
123.46.5.111    [39.916527,116.397128]  {'total':64,'used':23.2}
123.46.5.112    [39.916144,116.392582]  {'total':64,'used':27.8}

使用字段名稱方式查詢數據,需要注意的是Ciickhouse的數組的下標是從0開始的,這與我們傳統編程開發中的規范是不一致的。

# clickhouse-client --database acaidb -m -u acai --password '4rfv$RFV'  --query="SELECT dev_ip,location[1],location[2],meminfo['total'],meminfo['used'] FROM dev_meminfo"
123.46.5.111    39.916527       116.397128      64      23.2
123.46.5.112    39.916144       116.392582      64      27.8

以上就是“如何對mongodb存儲類JSON數據文檔統計分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荣昌县| 镇平县| 平顺县| 惠安县| 电白县| 潍坊市| 湾仔区| 汉源县| 宜兴市| 伽师县| 江西省| 南郑县| 曲阳县| 朝阳县| 大悟县| 资中县| 大兴区| 鄂托克前旗| 福泉市| 盈江县| 社会| 鲁山县| 巩义市| 都昌县| 万源市| 菏泽市| 股票| 志丹县| 阳西县| 郑州市| 深泽县| 澄城县| 盐城市| 乌苏市| 平顶山市| 松阳县| 双江| 三门县| 大足县| 邯郸县| 大田县|