最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對(duì)標(biāo)mongodb存儲(chǔ)類JSON數(shù)據(jù)文檔統(tǒng)計(jì)分析詳解

 更新時(shí)間:2022年06月15日 09:57:47   作者:字母哥博客  
這篇文章主要介紹了對(duì)標(biāo)mongodb存儲(chǔ)類JSON數(shù)據(jù)文檔統(tǒng)計(jì)分析,只是介紹了簡(jiǎn)單的查詢,其實(shí)針對(duì)各種統(tǒng)計(jì)分析場(chǎng)景,clickhouse提供了超級(jí)多的統(tǒng)計(jì)分析函數(shù)、窗口函數(shù)等等,當(dāng)然針對(duì)數(shù)組的數(shù)據(jù)類型也有很多的統(tǒng)計(jì)分析函數(shù),需要的朋友可以參考下

一、文檔存儲(chǔ)的需求

很多的開(kāi)發(fā)者都使用過(guò)mongodb,在mongodb中數(shù)據(jù)記錄是以文檔的形式存在的(類似于一種多級(jí)嵌套SQL的形式)。比如下面的JSON數(shù)據(jù)結(jié)構(gòu):dev_ip表示某一臺(tái)服務(wù)器的ip、location字段存放經(jīng)緯度、meminfo.total和meminfo.userd分別代表內(nèi)存總量和使用量。

[{
  "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
  }
}]

二、建表

存儲(chǔ)文檔需要使用到Map這種數(shù)據(jù)類型,在某些比較舊的版本中,Map數(shù)據(jù)類型還是實(shí)驗(yàn)性的,不能直接使用。如果想使用,需要執(zhí)行set allow_experimental_map_type = 1;。
然后我們可以按照J(rèn)SON的數(shù)據(jù)結(jié)構(gòu)來(lái)建表,location是數(shù)組Array數(shù)據(jù)類型,meminfo是Map數(shù)據(jù)類型。

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

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

三、數(shù)據(jù)入庫(kù)

在linux環(huán)境下,我們可以將JSON數(shù)據(jù)保存為一個(gè)文檔,命名如:dev_meminfo.json。然后使用下面的命令行,完成文檔JSON數(shù)據(jù)的入庫(kù)。jq的作用是將JSON數(shù)組及Map從結(jié)構(gòu)中剝離出來(lái),從而符合JSONEachRow要求的輸入格式。

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

或者我們可以直接使用INSERT語(yǔ)句來(lái)完成數(shù)據(jù)的單條插入,如下:

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

四、查詢數(shù)據(jù)

select * 的方式查詢數(shù)據(jù):

#  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}

使用字段名稱方式查詢數(shù)據(jù),需要注意的是Ciickhouse的數(shù)組的下標(biāo)是從0開(kāi)始的,這與我們傳統(tǒng)編程開(kāi)發(fā)中的規(guī)范是不一致的。

# 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

五、總結(jié)

我們看到clickhouse可以代替mongodb進(jìn)行類JSON文檔數(shù)據(jù)的存儲(chǔ),而且支持SQL查詢統(tǒng)計(jì)分析,這一點(diǎn)是比較吸引人的。我只是介紹了簡(jiǎn)單的查詢,其實(shí)針對(duì)各種統(tǒng)計(jì)分析場(chǎng)景,clickhouse提供了超級(jí)多的統(tǒng)計(jì)分析函數(shù)、窗口函數(shù)等等,當(dāng)然針對(duì)數(shù)組的數(shù)據(jù)類型也有很多的統(tǒng)計(jì)分析函數(shù)。
更為值得注意的是:筆者看到一些測(cè)評(píng)文章,clickhouse的的統(tǒng)計(jì)分析性能是mongodb的近百倍之多(筆者自己尚未驗(yàn)證,請(qǐng)關(guān)注我的專欄后續(xù)文章)。但是也不是說(shuō)clickhouse可以代替mongodb的所有應(yīng)用場(chǎng)景,至少面向用戶的并發(fā)請(qǐng)求的場(chǎng)景clickhouse是不滿足的,因?yàn)閏lickhouse的定位是數(shù)據(jù)倉(cāng)庫(kù),主要是面向數(shù)據(jù)分析OLAP場(chǎng)景,而不是面向用戶高并發(fā)的聯(lián)機(jī)事務(wù)處理OLTP。

到此這篇關(guān)于對(duì)標(biāo)mongodb存儲(chǔ)類JSON數(shù)據(jù)文檔統(tǒng)計(jì)分析的文章就介紹到這了,更多相關(guān)mongodb存儲(chǔ)類JSON數(shù)據(jù)文檔統(tǒng)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MongoDB開(kāi)發(fā)規(guī)范與數(shù)據(jù)建模詳解

    MongoDB開(kāi)發(fā)規(guī)范與數(shù)據(jù)建模詳解

    在MongoDB中,遵循良好的開(kāi)發(fā)規(guī)范和數(shù)據(jù)建模技巧可以提升數(shù)據(jù)庫(kù)性能,簡(jiǎn)化數(shù)據(jù)管理,并減少潛在的錯(cuò)誤,這篇文章主要介紹了MongoDB開(kāi)發(fā)規(guī)范與數(shù)據(jù)建模,需要的朋友可以參考下
    2024-08-08
  • mongoDB使用投影剔除‘額外’字段的操作過(guò)程

    mongoDB使用投影剔除‘額外’字段的操作過(guò)程

    這篇文章主要給大家介紹了關(guān)于mongoDB使用投影剔除‘額外’字段的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • MongoDB學(xué)習(xí)筆記之分組(group)使用示例

    MongoDB學(xué)習(xí)筆記之分組(group)使用示例

    這篇文章主要介紹了MongoDB學(xué)習(xí)筆記之分組(group)使用示例,本文直接給出一組測(cè)試數(shù)據(jù),然后練習(xí)分組的基本使用,需要的朋友可以參考下
    2015-07-07
  • MongoDB??數(shù)據(jù)模型的設(shè)計(jì)模式及優(yōu)缺點(diǎn)

    MongoDB??數(shù)據(jù)模型的設(shè)計(jì)模式及優(yōu)缺點(diǎn)

    這篇文章主要介紹了MongoDB??數(shù)據(jù)模型的設(shè)計(jì)模式,在實(shí)際開(kāi)發(fā)中,大多數(shù)性能問(wèn)題都可以追溯到糟糕的模型設(shè)計(jì),官方也提供分享過(guò)文檔模型設(shè)計(jì)的進(jìn)階技巧,這里簡(jiǎn)單翻譯記錄一下,需要的朋友可以參考下
    2022-12-12
  • mongodb?數(shù)據(jù)塊的遷移流程分析

    mongodb?數(shù)據(jù)塊的遷移流程分析

    這篇文章主要介紹了mongodb?數(shù)據(jù)塊的遷移流程介紹,包括數(shù)據(jù)塊遷移對(duì)集群性能的影響,建議設(shè)置平衡器的活躍時(shí)間窗口,設(shè)置為業(yè)務(wù)低估時(shí)進(jìn)行,具體操作步驟文中有介紹,需要的朋友可以參考下
    2022-04-04
  • Windows安裝壓縮版MongoDB的教程

    Windows安裝壓縮版MongoDB的教程

    MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。這篇文章主要介紹了Windows安裝壓縮版MongoDB的教程,需要的朋友可以參考下
    2019-12-12
  • MongoDB中自動(dòng)增長(zhǎng)ID詳解(實(shí)現(xiàn)、應(yīng)用及優(yōu)化)

    MongoDB中自動(dòng)增長(zhǎng)ID詳解(實(shí)現(xiàn)、應(yīng)用及優(yōu)化)

    在MongoDB中,自動(dòng)增長(zhǎng)的功能主要通過(guò)使用數(shù)據(jù)庫(kù)的ObjectId或自定義的序列來(lái)實(shí)現(xiàn),ObjectId是MongoDB默認(rèn)的主鍵類型,它是唯一的并且具有一定的排序特性,本文給大家介紹了MongoDB中自動(dòng)增長(zhǎng)ID,需要的朋友可以參考下
    2024-06-06
  • MongoDB中多表關(guān)聯(lián)查詢($lookup)的深入講解

    MongoDB中多表關(guān)聯(lián)查詢($lookup)的深入講解

    NoSql的多表關(guān)聯(lián)一直是比較復(fù)雜的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于MongoDB中多表關(guān)聯(lián)查詢($lookup)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-12-12
  • MongoDB聚合運(yùn)算符$dateFromString詳解

    MongoDB聚合運(yùn)算符$dateFromString詳解

    $dateFromString聚合運(yùn)算符將日期時(shí)間字符串轉(zhuǎn)換為日期對(duì)象,本文給大家介紹MongoDB聚合運(yùn)算符$dateFromString的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Windows10安裝MongoDB4.0詳細(xì)步驟及啟動(dòng)配置教程

    Windows10安裝MongoDB4.0詳細(xì)步驟及啟動(dòng)配置教程

    這篇文章主要介紹了Windows10安裝MongoDB4.0詳細(xì)步驟及啟動(dòng)配置教程 ,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

威海市| 富宁县| 安新县| 冷水江市| 平乐县| 台北县| 林周县| 芷江| 福建省| 乌拉特前旗| 张家口市| 仁布县| 苍溪县| 博湖县| 白玉县| 枣阳市| 合江县| 本溪市| 长寿区| 黎城县| 老河口市| 临海市| 承德县| 固始县| 昌图县| 托里县| 绥中县| 祁阳县| 司法| 新竹市| 淮滨县| 皮山县| 新津县| 乌苏市| 大城县| 黄骅市| 清原| 泰宁县| 砀山县| 甘孜县| 晋宁县|