新聞中心
PRESS CENTEREG8200邊緣計(jì)算網(wǎng)關(guān)插入SD卡,會(huì)自動(dòng)安裝influxDB數(shù)據(jù)庫,并自動(dòng)存儲(chǔ)在SD卡內(nèi)。如果未插入SD卡,則無法創(chuàng)建本地influxDB數(shù)據(jù)庫,讀寫時(shí)序數(shù)據(jù)庫節(jié)點(diǎn)自然也就無法使用。但是可以和遠(yuǎn)端的influxDB數(shù)據(jù)庫通信,例如局域網(wǎng)內(nèi)有influxDB數(shù)據(jù)庫。
設(shè)備在讀寫SD卡過程中,請(qǐng)勿頻繁斷電,否則SD卡容易出現(xiàn)讀寫保護(hù)或者文件損壞的情況。
influDB是一個(gè)專為存儲(chǔ)時(shí)間序列數(shù)據(jù)設(shè)計(jì)的高性能數(shù)據(jù)庫,因此非常適合存儲(chǔ)歷史數(shù)據(jù)。influDB的特點(diǎn)和優(yōu)勢(shì)這里不過多講解,大家有興趣可以自行搜索相關(guān)資料學(xué)習(xí),本章節(jié)著重講解如何使用讀寫時(shí)序數(shù)據(jù)庫節(jié)點(diǎn)來對(duì)influDB數(shù)據(jù)庫進(jìn)行操作。
influxDB和關(guān)系數(shù)據(jù)庫(如:MySQL)區(qū)別:
influxDB | 傳統(tǒng)數(shù)據(jù)庫概念 | |
database | 數(shù)據(jù)庫 | |
measurement | 數(shù)據(jù)庫中的表 | |
points | time | 每行記錄都有一列time,主索引,記錄時(shí)間戳,單位納秒 |
fields | 普通列,key-value結(jié)構(gòu),value數(shù)據(jù)支持多種數(shù)據(jù)類型(float、integer、string、boolean) | |
tags | 索引列,key-value結(jié)構(gòu),value數(shù)據(jù)類型只支持string | |
Retention policy | 數(shù)據(jù)保留策略,可以定義數(shù)據(jù)保留的時(shí)長,每個(gè)數(shù)據(jù)庫可以有多個(gè)數(shù)據(jù)保留策略,但只能有一個(gè)默認(rèn)策略 |
fields和tags的key嚴(yán)格區(qū)分大小寫
msg.payload #如果數(shù)據(jù)類型是string|number|boolean,則msg.payload將作為單獨(dú)的值寫入指定的measurement中,此時(shí)沒有fields和tags #如果是一個(gè)包含了多個(gè)屬性的對(duì)象,那么將按fields寫入到measurement中 #如果是一個(gè)包含了2個(gè)對(duì)象的數(shù)組,那么第一個(gè)對(duì)象作為fields寫入,第二個(gè)對(duì)象作為tags寫入 #如果是一個(gè)包含了多個(gè)數(shù)組的數(shù)組,那么將寫入多條數(shù)據(jù)
msg.measurement #如果未在節(jié)點(diǎn)中配置measurement,那么需在發(fā)送的數(shù)據(jù)中攜帶msg.measurement屬性來指定measurement |
#無輸出口 功能 版本:本地influxDB版本1.6,請(qǐng)選擇1.x HOST:127.0.0.1 Port:8086 Database:自定義 用戶名:默認(rèn)為空 密碼:默認(rèn)為空
Measurement:自定義 |
1. 如果msg.payload數(shù)據(jù)類型是string|number|boolean
msg.payload數(shù)據(jù)類型是string,存儲(chǔ)的內(nèi)容為"myvalue",多次點(diǎn)擊注入將數(shù)據(jù)寫入數(shù)據(jù)庫。然后查詢數(shù)據(jù)庫,觀察數(shù)據(jù)存儲(chǔ)情況:只有time和value兩個(gè)字段:
2. 如果msg.payload是一個(gè)包含了多個(gè)屬性的對(duì)象
msg.payload是一個(gè)包含了多個(gè)屬性的對(duì)象{"T":32,"H":54},T是溫度,H是濕度。點(diǎn)擊注入一次將數(shù)據(jù)寫入數(shù)據(jù)庫。然后查詢數(shù)據(jù)庫,觀察數(shù)據(jù)存儲(chǔ)情況:每條數(shù)據(jù)多了T和H兩個(gè)KEY,之前已經(jīng)存在的數(shù)據(jù)沒有值。新增的T和H都屬于fields,不建議使用索引。
3. 如果msg.payload是一個(gè)包含了2個(gè)對(duì)象的數(shù)組
msg.payload是一個(gè)包含了2個(gè)對(duì)象的數(shù)組[{"T":32,"H":54},{"model":"IOTRouter"}],第一個(gè)對(duì)象是fields,第二個(gè)對(duì)象是tags。點(diǎn)擊注入一次將數(shù)據(jù)寫入數(shù)據(jù)庫。然后查詢數(shù)據(jù)庫,觀察數(shù)據(jù)存儲(chǔ)情況:
4. 如果msg.payload是一個(gè)包含了多個(gè)數(shù)組的數(shù)組
msg.payload是一個(gè)包含了多個(gè)數(shù)組的數(shù)組[[{"T":32,"H":54},{"model":"EG8000"}],[{"T":32,"H":54},{"model":"EG8100"}],[{"T":32,"H":54},{"model":"EG8200"}]],簡(jiǎn)單理解為一次注入多個(gè)示例3,即一次性寫入多條數(shù)據(jù)。點(diǎn)擊注入一次將數(shù)據(jù)寫入數(shù)據(jù)庫。然后查詢數(shù)據(jù)庫,觀察數(shù)據(jù)存儲(chǔ)情況:
源碼/原文:https://iotrouter.yuque.com/zn3vdn/eg8000/mipo7daumu9ekxw5