【物聯(lián)網(wǎng)架構(gòu)】最適合物聯(lián)網(wǎng)的開源數(shù)據(jù)庫(kù)

物聯(lián)網(wǎng)可以看作是一個(gè)網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)中,各種事物通過一個(gè)共同的平臺(tái)相互連接。只是想象一個(gè)場(chǎng)景,在該場(chǎng)景中,每一個(gè)設(shè)備在家里和工作場(chǎng)所的連接,和一個(gè)世界,空調(diào)在房間外面的溫度上升時(shí)自動(dòng)降低其溫度,當(dāng)在任何公共集會(huì)的人數(shù)很容易知道,當(dāng)一個(gè)人的健康可以每天監(jiān)控參數(shù)。這就是物聯(lián)網(wǎng)可能帶來的影響。

1.jpg

物聯(lián)網(wǎng)產(chǎn)生大量的數(shù)據(jù),包括流數(shù)據(jù)、時(shí)間序列數(shù)據(jù)、RFID數(shù)據(jù)、傳感數(shù)據(jù)等。要有效地管理這些數(shù)據(jù),就需要使用數(shù)據(jù)庫(kù)。物聯(lián)網(wǎng)數(shù)據(jù)的本質(zhì)需要一種不同類型的數(shù)據(jù)庫(kù)。以下是一些數(shù)據(jù)庫(kù),當(dāng)與物聯(lián)網(wǎng)一起使用時(shí),會(huì)給出非常好的結(jié)果。

物聯(lián)網(wǎng)可以看作是一個(gè)網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)中,各種事物通過一個(gè)共同的平臺(tái)相互連接。只是想象一個(gè)場(chǎng)景,在該場(chǎng)景中,每一個(gè)設(shè)備在家里和工作場(chǎng)所的連接,和一個(gè)世界,空調(diào)在房間外面的溫度上升時(shí)自動(dòng)降低其溫度,當(dāng)在任何公共集會(huì)的人數(shù)很容易知道,當(dāng)一個(gè)人的健康可以每天監(jiān)控參數(shù)。這就是物聯(lián)網(wǎng)可能帶來的影響。

物聯(lián)網(wǎng)目前的狀態(tài)是非常零散的。有不同的公司和組織正在為他們的客戶或他們的個(gè)人需求建立自己的平臺(tái)。但是,目前還沒有一種通用的平臺(tái),可以讓所有設(shè)備(無論它們是哪家公司的)通過用戶友好的界面相互連接。

據(jù)估計(jì),未來5年,物聯(lián)網(wǎng)設(shè)備的數(shù)量將達(dá)數(shù)萬億。

物聯(lián)網(wǎng)需要數(shù)據(jù)庫(kù)嗎?

物聯(lián)網(wǎng)帶來了許多繁瑣的挑戰(zhàn),尤其是在數(shù)據(jù)庫(kù)管理系統(tǒng)領(lǐng)域,比如實(shí)時(shí)整合海量數(shù)據(jù)、處理流中的事件以及處理數(shù)據(jù)的安全性。例如,應(yīng)用于智能城市的基于物聯(lián)網(wǎng)的交通傳感器可以實(shí)時(shí)生成大量的交通數(shù)據(jù)。

數(shù)據(jù)庫(kù)在充分處理物聯(lián)網(wǎng)數(shù)據(jù)方面扮演著非常重要的角色。因此,適當(dāng)?shù)臄?shù)據(jù)庫(kù)與適當(dāng)?shù)钠脚_(tái)同等重要。由于物聯(lián)網(wǎng)在世界上不同的環(huán)境中運(yùn)行,選擇合適的數(shù)據(jù)庫(kù)變得非常具有挑戰(zhàn)性。

在為物聯(lián)網(wǎng)應(yīng)用選擇數(shù)據(jù)庫(kù)之前應(yīng)該考慮的因素是:

1、大小、規(guī)模和索引

2、處理海量數(shù)據(jù)的有效性

3、用戶友好的模式

4、可移植性

5、查詢語言

6、流程建模和事務(wù)

7、異構(gòu)性和集成

8、時(shí)間序列聚合

9、歸檔

10、安全和成本

物聯(lián)網(wǎng)中的數(shù)據(jù)類型有:

1、RFID:射頻識(shí)別

2、地址/惟一標(biāo)識(shí)符

3、過程、系統(tǒng)和對(duì)象的描述性數(shù)據(jù)

4、普適環(huán)境數(shù)據(jù)和位置數(shù)據(jù)

5、傳感器數(shù)據(jù):多維時(shí)間序列數(shù)據(jù)

6、歷史數(shù)據(jù)

7、物理模型:作為現(xiàn)實(shí)模板的模型

8、執(zhí)行器狀態(tài)及控制命令數(shù)據(jù)

適合物聯(lián)網(wǎng)的數(shù)據(jù)庫(kù)

InfluxDB

InfluxDB:流感數(shù)據(jù)庫(kù)首次發(fā)布于2013年,是最近的數(shù)據(jù)庫(kù)之一。該數(shù)據(jù)庫(kù)完全基于鍵值數(shù)據(jù)庫(kù)LevelDB,采用Go編程語言進(jìn)行開發(fā)。InfluxDB是一個(gè)時(shí)間序列數(shù)據(jù)庫(kù),用于優(yōu)化和處理時(shí)間序列數(shù)據(jù)。時(shí)間序列數(shù)據(jù)最早由Kdb在2000年發(fā)布,但隨著物聯(lián)網(wǎng)的興起,隨著NoSQL、NewSQL和大量增長(zhǎng)的數(shù)據(jù)的出現(xiàn),InfluxDB變得流行起來。

對(duì)物聯(lián)網(wǎng)數(shù)據(jù)使用InfluxDB的優(yōu)點(diǎn)包括:

●允許對(duì)序列進(jìn)行索引

●它有一個(gè)類似sql的查詢語言

●對(duì)缺失數(shù)據(jù)提供內(nèi)置的線性插值

●支持?jǐn)?shù)據(jù)自動(dòng)降采樣

●支持連續(xù)查詢計(jì)算聚合

CrateDB

CrateDB: CrateDB是一個(gè)分布式SQL數(shù)據(jù)庫(kù)管理系統(tǒng)。它是開源的,用Java編寫的,包含了來自Facebook Presto、Apache Lucene、Elasticsearch和Netty的組件——因此它是為高可伸縮性而設(shè)計(jì)的。CrateDB是為使物聯(lián)網(wǎng)數(shù)據(jù)工作而設(shè)計(jì)的。從工業(yè)互聯(lián)網(wǎng)、聯(lián)網(wǎng)汽車到可穿戴設(shè)備,CrateDB是新型物聯(lián)網(wǎng)解決方案創(chuàng)新者的首選數(shù)據(jù)庫(kù)。

將CrateDB用于物聯(lián)網(wǎng)數(shù)據(jù)的優(yōu)點(diǎn)包括:

●每秒百萬個(gè)數(shù)據(jù)點(diǎn):快速、線性可擴(kuò)展的數(shù)據(jù)攝取

●實(shí)時(shí)查詢:柱狀索引和字段緩存提供內(nèi)存中的SQL性能

●動(dòng)態(tài)模式:動(dòng)態(tài)添加和查詢新的傳感器數(shù)據(jù)結(jié)構(gòu)

●物聯(lián)網(wǎng)分析:快速、健壯的時(shí)間序列、人工智能、地理空間、文本搜索、連接、聚合

●Always on:內(nèi)置的數(shù)據(jù)復(fù)制和集群再平衡確保不間斷的性能

●ANSI SQL:無鎖定,易于任何開發(fā)人員使用和集成

●內(nèi)置的MQTT代理:直接將設(shè)備與數(shù)據(jù)庫(kù)集成

●物聯(lián)網(wǎng)生態(tài)系統(tǒng):使用Kafka、Grafana、NodeRED等流行的物聯(lián)網(wǎng)棧軟件

●可以在任何地方運(yùn)行,以便在邊緣或云中進(jìn)行高效處理

MongoDB

MongoDB: MongoDB是一個(gè)免費(fèi)的、開源的、跨平臺(tái)的、面向文檔的數(shù)據(jù)庫(kù)程序。它被歸類為一個(gè)NoSQL數(shù)據(jù)庫(kù)程序。MongoDB使用具有模式的類似json的文檔。它是物聯(lián)網(wǎng)組織的首選,因?yàn)樗梢宰屗麄兇鎯?chǔ)來自任何上下文的數(shù)據(jù),可以實(shí)時(shí)分析,也可以在他們進(jìn)行時(shí)改變模式。

MongoDB用于物聯(lián)網(wǎng)數(shù)據(jù)的優(yōu)點(diǎn)包括:

●強(qiáng)大的數(shù)據(jù)庫(kù)

●面向文檔的

●具有一般用途

●作為一個(gè)NoSQL數(shù)據(jù)庫(kù),它使用類似JSON的帶有模式的文檔

RethinkDB

RethinkDB:在開放源碼數(shù)據(jù)庫(kù)列表中,RethinkDB位于頂部。它是一個(gè)可伸縮的實(shí)時(shí)Web JSON數(shù)據(jù)庫(kù),是從頭開始構(gòu)建的。RethinkDB通過改變傳統(tǒng)數(shù)據(jù)庫(kù)架構(gòu)引入了一種令人興奮的新訪問模型。當(dāng)開發(fā)人員向它發(fā)出命令時(shí),它可以不斷地將更新后的查詢結(jié)果實(shí)時(shí)推送到應(yīng)用程序。這是一個(gè)被開發(fā)人員稱為change feed的特性。RethinkDB充當(dāng)數(shù)據(jù)庫(kù)、實(shí)時(shí)存儲(chǔ)庫(kù)和系統(tǒng)狀態(tài)的消息代理,這是change feed允許的。它的實(shí)時(shí)推送架構(gòu)大大減少了構(gòu)建可伸縮實(shí)時(shí)應(yīng)用程序所需的時(shí)間和精力。

對(duì)物聯(lián)網(wǎng)傳感器數(shù)據(jù)使用RethinkDB的優(yōu)點(diǎn)包括:

●RethinkDB有一個(gè)可適應(yīng)的查詢語言來檢查API,非常容易設(shè)置和學(xué)習(xí)。

●如果主服務(wù)器出現(xiàn)故障,命令會(huì)自動(dòng)轉(zhuǎn)移到新服務(wù)器上。

●節(jié)點(diǎn)實(shí)時(shí)即插即用功能,無需停機(jī)一秒,方便添加節(jié)點(diǎn)。

●在Ruby和Tornado中通過Eventmachine提供異步查詢,提供異步應(yīng)用程序編程接口。

●它提供SSL訪問,只是為了通過公共互聯(lián)網(wǎng)安全訪問RethinkDB。

●Floor, ceil和round是RethinkDB提供的各種數(shù)學(xué)運(yùn)算符。

SQLite

SQLite數(shù)據(jù)庫(kù)引擎是一個(gè)進(jìn)程庫(kù),它提供了一個(gè)無服務(wù)器的(自包含的)事務(wù)性SQL數(shù)據(jù)庫(kù)引擎。由于其可移植性和較小的內(nèi)存占用,它對(duì)游戲和移動(dòng)應(yīng)用程序開發(fā)產(chǎn)生了重大影響。

SQLite適用于不需要任何人工支持的設(shè)備,因?yàn)閿?shù)據(jù)庫(kù)不需要管理權(quán)限。它非常適合用于手機(jī)、機(jī)頂盒、電視、游戲機(jī)、相機(jī)、手表、廚房電器、恒溫器、汽車、機(jī)床、飛機(jī)、遠(yuǎn)程傳感器、無人機(jī)、醫(yī)療設(shè)備和機(jī)器人,以及物聯(lián)網(wǎng)。

客戶端/服務(wù)器數(shù)據(jù)庫(kù)引擎被設(shè)計(jì)為駐留在網(wǎng)絡(luò)核心的數(shù)據(jù)中心內(nèi)。SQLite也在那里工作,但SQLite也在網(wǎng)絡(luò)的邊緣蓬勃發(fā)展,在為自己提供快速可靠的數(shù)據(jù)服務(wù)的同時(shí),為那些連接不可靠的應(yīng)用程序提供服務(wù)。

對(duì)物聯(lián)網(wǎng)數(shù)據(jù)使用SQLite的優(yōu)點(diǎn)包括:

●內(nèi)存占用小

●它是真實(shí)的

●使用前無需設(shè)置

●沒有依賴性

Cassandra

Apache Cassandra: Apache Cassandra是一個(gè)免費(fèi)的開源分布式NoSQL數(shù)據(jù)庫(kù)管理系統(tǒng),最初發(fā)布于2008年。它旨在通過許多商用服務(wù)器處理大量數(shù)據(jù),提供沒有單點(diǎn)故障的高可用性。

在物聯(lián)網(wǎng)中,由于連接的設(shè)備數(shù)量巨大,通過各種網(wǎng)絡(luò)產(chǎn)生、跟蹤和共享數(shù)據(jù)的規(guī)模非常大。Cassandra非常擅長(zhǎng)利用大量的時(shí)間序列數(shù)據(jù),這些數(shù)據(jù)直接來自于設(shè)備、用戶、傳感器以及存在于不同地理位置的類似機(jī)制。

在物聯(lián)網(wǎng)中使用Apache Cassandra的優(yōu)點(diǎn)

數(shù)據(jù)包括:

●容錯(cuò)

●展示了高性能

●去中心化:集群中的每個(gè)節(jié)點(diǎn)都是相同的

●可伸縮

●持久性

●確??煽?每次更新都可以選擇同步復(fù)制和異步復(fù)制

●彈性:讀寫都是實(shí)時(shí)執(zhí)行的,任何應(yīng)用都不存在停機(jī)

●專業(yè)支持:加強(qiáng)第三方提供的合同和服務(wù)。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無評(píng)論