国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

NoSQL 技術(shù)在氣象傳感器數(shù)據(jù)處理中的應(yīng)用

2018-05-14 17:55王大冬
科技風(fēng) 2018年26期
關(guān)鍵詞:應(yīng)用

摘 要:氣象監(jiān)測技術(shù)的進(jìn)步,氣象參數(shù)的種類和數(shù)量越來越豐富,其中很多氣象參數(shù)需要進(jìn)行動態(tài)監(jiān)測,海量的非結(jié)構(gòu)型數(shù)據(jù)進(jìn)行存儲和處理問題亟待解決。傳統(tǒng)的關(guān)系數(shù)據(jù)庫針對海量的數(shù)據(jù)工作效率低,不能滿足工作需求,而新興的NoSQL技術(shù)則在應(yīng)對此類問題上具有很大的優(yōu)勢。本文將以MongoDB為代表的NoSQL技術(shù)設(shè)計(jì)應(yīng)用到氣象傳感器數(shù)據(jù)處理中,通過測試驗(yàn)證了該技術(shù)在應(yīng)對海量非結(jié)構(gòu)型數(shù)據(jù)的存儲與處理時(shí)具有優(yōu)良的性能。

關(guān)鍵詞:NoSQL技術(shù);MongoDB;氣象傳感器數(shù)據(jù);應(yīng)用

云計(jì)算時(shí)代的來臨引領(lǐng)著分布式非關(guān)系型數(shù)據(jù)存儲技術(shù)的快速發(fā)展,該技術(shù)對于海量數(shù)據(jù)具有很強(qiáng)的讀寫性能。NoSQL技術(shù)由于不需要為存儲數(shù)據(jù)建立字段,因此可隨時(shí)存儲各種格式的數(shù)據(jù),數(shù)據(jù)模型靈活。面向文檔的MongoDB,數(shù)據(jù)結(jié)構(gòu)松散,可對海量且復(fù)雜的數(shù)據(jù)類型進(jìn)行存儲,并可進(jìn)行快速查詢。在當(dāng)今的氣象參數(shù)監(jiān)測中,監(jiān)測獲得的氣象參數(shù)種類復(fù)雜,數(shù)據(jù)量大,且數(shù)據(jù)之間的一致性較弱,而且在數(shù)據(jù)管理中還要求具有一定的擴(kuò)展性,獲取數(shù)據(jù)也需要方便快捷。這些問題MongoDB技術(shù)均可有效應(yīng)對,因此本文將MongoDB應(yīng)用到氣象傳感器數(shù)據(jù)的處理中,以探究其性能。

1 NoSQL與MongoDB概述

1.1 NoSQL

NoSQL即非關(guān)系型數(shù)據(jù)庫系統(tǒng),它包括四種類型:鍵值存儲(Keyvalue)、面向文檔(DocumentOriented)、面向列表(ColumnFamily Databases)、面向圖論(GraphOriented Databases)。NoSQL與關(guān)系型數(shù)據(jù)庫的區(qū)別在于該系統(tǒng)不使用SQL查詢語言,在進(jìn)行數(shù)據(jù)存儲時(shí)可不采用固定式的表格形式,通常也不使用SQL的JOIN操作,橫向可擴(kuò)展性強(qiáng)。NoSQL在存儲和處理海量數(shù)據(jù)時(shí)性能表現(xiàn)優(yōu)異。[1]因此,NoSQL擁有良好的應(yīng)用前景。

1.2 MongoDB

MongoDB是NoSQL中的一種文檔型數(shù)據(jù)庫,采用C++語言編寫,性能優(yōu)良,可擴(kuò)展,開源。MongoDB同時(shí)具有關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的部分特點(diǎn)和功能,其所支持的數(shù)據(jù)結(jié)構(gòu)類型松散,因此可有效解決類型復(fù)雜的數(shù)據(jù)存儲問題。MongoDB的查詢語言功能強(qiáng)大,它與面向?qū)ο蟮牟樵冋Z言相似,具有類似關(guān)系型數(shù)據(jù)庫單表查詢的大多數(shù)功能,并可對數(shù)據(jù)庫創(chuàng)建索引。MongoDB由三個(gè)部分構(gòu)成,即數(shù)據(jù)庫、集合、文檔對象,由于集合中沒有行列以及關(guān)系的概念,因此表現(xiàn)出相對自由的模式。[2]

MongoDB的功能主要特點(diǎn)有:模式自由;支持查詢與動態(tài)查詢;可完全索引,包括內(nèi)部對象;可復(fù)制與故障的恢復(fù);面向集合進(jìn)行存儲,對對象類型的數(shù)據(jù)更易存儲;采用二進(jìn)制進(jìn)行數(shù)據(jù)存儲,較大的存儲對象也同樣采用二進(jìn)制;碎片自動處理,進(jìn)而支持云計(jì)算層次擴(kuò)展性;支持多種語言;通過網(wǎng)絡(luò)可以訪問。

2 MongoDB在氣象數(shù)據(jù)處理中的應(yīng)用

2.1 插入數(shù)據(jù)

采用Python構(gòu)建數(shù)據(jù)庫步驟如下所示:

client = MongoClient()

db = client.meteor_data

collection = db.res

mongo數(shù)據(jù)庫metor_data建立連接,并將集合res選中,需要注意的是,在此處并未真正創(chuàng)建集合,而是采用延時(shí)創(chuàng)建的方式,等有文檔插入時(shí)才建立相應(yīng)的集合和數(shù)據(jù)庫。

下面列出了一條測量數(shù)據(jù):

其中‘CH9表示通道9的測量數(shù)據(jù),101721.321為氣象傳感器的所測得的氣壓值,每條的測量所得數(shù)據(jù)對應(yīng)的通道數(shù)量可根據(jù)實(shí)際需要自行調(diào)整?!甌IME則表示數(shù)據(jù)的測定時(shí)間點(diǎn)。通過將數(shù)條測量數(shù)據(jù)作為文檔插入res中,進(jìn)行數(shù)據(jù)存儲,使用python插入文檔的操作為:collection.insert_one(data),data所在位置替代要插入的各種類型的氣象要素,例如氣溫、氣壓、相對濕度、風(fēng)向、風(fēng)速、降水量、能見度、跑道視程、云底高等監(jiān)測數(shù)據(jù)。插入后的文檔如下所示:

‘_id域是mongo自動添加,作為主鍵。

2.2 數(shù)據(jù)查詢

存儲的數(shù)據(jù)可以通過條件匹配或相等匹配快速查詢。采用相等匹配進(jìn)行查詢的格式為:{,,,...},例如:cursor= collection.find({“TIME”:‘20180307 16:12:9}),則會查找到時(shí)間域?yàn)?0180307 16:12:9的文檔。條件匹配查詢需要使用比較運(yùn)算符(“$lt”、“$gt”、“$in”),格式為{:{}},例如cursor= collection.find({‘CH7:{“$lt”:326}}),則會查找到‘CH7域值小于326的數(shù)據(jù)。查詢結(jié)果如圖所示:

2.3 集合更新

采用python進(jìn)行集合更新的方式有:update_one(),update_many(),更新操作是需要設(shè)定條件和對于的文檔要執(zhí)行的動作,例如:result= collection.update_one({‘TIME:‘20180307 16:12:9},{“$set”:{“discription”:“measure resistance”}}),首先則匹配到時(shí)間域?yàn)椤?0180307 16:12:9的數(shù)據(jù),然后更新“discription”域的值為“measure resistance”,如果該域缺省,則會自動添加。運(yùn)算符“$set”為設(shè)定域值,更新后的文檔為:

2.4 聚合

MongoDB具有聚合框架,包括過濾記錄($match)、解綁列表($unwind)、按照指定域聚合($group)等功能。聚合按照stage進(jìn)行,用各階段構(gòu)成的列表作為參數(shù),格式為:db.collection.aggregate([,,...]),各個(gè)階段按照管道順序執(zhí)行,從而實(shí)現(xiàn)數(shù)據(jù)聚合。另外,通過MongoDB的聚合框架,可處理一些返回的結(jié)果,以實(shí)現(xiàn)一些別名顯示、添加字段等特殊的功能,例如進(jìn)行數(shù)據(jù)處理是常需要返回通道未被測量的次數(shù),則操作步驟如下:

cursor= collection.aggregate([{“$match”:{“CH5”:None}},{“$group”:{“_id”:“$CH5”,“count”:{“$sum”:1}}}])

該聚合操作首先會匹配“CH5”域的缺省記錄,而后按照“CH5”域值進(jìn)行分組,同時(shí)將“_id”作為鍵,對各組記錄的數(shù)量進(jìn)行統(tǒng)計(jì),聚合統(tǒng)計(jì)結(jié)果如圖所示:

3 結(jié)語

MongoDB作為面向文檔的存儲系統(tǒng)具有強(qiáng)大的功能,模式的高度自修提高了文檔的靈活度,通過簡單的擴(kuò)展就可實(shí)現(xiàn)支持TB級數(shù)據(jù)。另外,插入數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)、聚合等的可操作性強(qiáng),支持的計(jì)算機(jī)語言種類豐富。本文將MongoDB應(yīng)用到氣象監(jiān)測數(shù)據(jù)的處理中,滿足氣象數(shù)據(jù)處理工作的各種要求,提高了數(shù)據(jù)處理的存儲和處理的效率。

參考文獻(xiàn):

[1]李紹俊,楊海軍,黃耀歡,等.基于NoSQL數(shù)據(jù)庫的空間大數(shù)據(jù)分布式存儲策略[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2017,42(2):163169.

[2]鐘麟,員建廈.一種基于MongoDB的大數(shù)據(jù)管理架構(gòu)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2016,42(5):6264.

作者簡介:王大冬(1984),男,漢族,本科,軟件工程師,從事氣象軟件數(shù)據(jù)處理和顯示方面的研究。

猜你喜歡
應(yīng)用
配網(wǎng)自動化技術(shù)的應(yīng)用探討
帶壓堵漏技術(shù)在檢修中的應(yīng)用
行列式的性質(zhì)及若干應(yīng)用
癌癥擴(kuò)散和治療研究中的微分方程模型
紅外線測溫儀在汽車診斷中的應(yīng)用
多媒體技術(shù)在小學(xué)語文教學(xué)中的應(yīng)用研究
微課的翻轉(zhuǎn)課堂在英語教學(xué)中的應(yīng)用研究
分析膜技術(shù)及其在電廠水處理中的應(yīng)用
GM(1,1)白化微分優(yōu)化方程預(yù)測模型建模過程應(yīng)用分析
煤礦井下坑道鉆機(jī)人機(jī)工程學(xué)應(yīng)用分析