新聞中心
PRESS CENTEREG8200邊緣計算網(wǎng)關插入SD卡,會自動安裝influxDB數(shù)據(jù)庫,并自動存儲在SD卡內(nèi)。如果未插入SD卡,則無法創(chuàng)建本地influxDB數(shù)據(jù)庫,讀寫時序數(shù)據(jù)庫節(jié)點自然也就無法使用。但是可以和遠端的influxDB數(shù)據(jù)庫通信,例如局域網(wǎng)內(nèi)有influxDB數(shù)據(jù)庫。
設備在讀寫SD卡過程中,請勿頻繁斷電,否則SD卡容易出現(xiàn)讀寫保護或者文件損壞的情況。
influDB是一個專為存儲時間序列數(shù)據(jù)設計的高性能數(shù)據(jù)庫,因此非常適合存儲歷史數(shù)據(jù)。influDB的特點和優(yōu)勢這里不過多講解,大家有興趣可以自行搜索相關資料學習,本章節(jié)著重講解如何使用讀寫時序數(shù)據(jù)庫節(jié)點來對influDB數(shù)據(jù)庫進行操作。
influxDB和關系數(shù)據(jù)庫(如:MySQL)區(qū)別:
influxDB |
| 傳統(tǒng)數(shù)據(jù)庫概念 |
database | 數(shù)據(jù)庫 | |
measurement | 數(shù)據(jù)庫中的表 | |
points | time | 每行記錄都有一列time,主索引,記錄時間戳,單位納秒 |
fields | 普通列,key-value結構,value數(shù)據(jù)支持多種數(shù)據(jù)類型(float、integer、string、boolean) | |
tags | 索引列,key-value結構,value數(shù)據(jù)類型只支持string | |
Retention policy | 數(shù)據(jù)保留策略,可以定義數(shù)據(jù)保留的時長,每個數(shù)據(jù)庫可以有多個數(shù)據(jù)保留策略,但只能有一個默認策略 |
fields和tags的key嚴格區(qū)分大小寫
在插入新數(shù)據(jù)時,tags、fields和time之間用空格分隔
msg.query
#查詢語句,如果配置頁面沒有設定查詢語句,必須使用該屬性攜帶查詢語句
msg.payload
#查詢結果
1. 保留策略
創(chuàng)建保留策略:CREATE RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]
<policy_name>:保留策略的名稱
<database_name>:要應用保留策略的數(shù)據(jù)庫名稱
<duration>:數(shù)據(jù)的保留期限,例如1d表示一天
<replication_factor>:數(shù)據(jù)的復制因子,指定數(shù)據(jù)在集群中的副本數(shù)量
<shard_duration>:可選,如果要自定義分片持續(xù)時間,則可以指定分片的持續(xù)時間
例如:CREATE RETENTION POLICY "2_hours" ON "mydb" DURATION 2h REPLICATION 1 DEFAULT
修改保留策略:ALTER RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]
例如:ALTER RETENTION POLICY "2_hours" ON "mydb" DURATION 4h DEFAULT
刪除保留策略:DROP RETENTION POLICY "<policy_name>" ON "<database_name>"
例如:DROP RETENTION POLICY "2_hours" ON "mydb"
查看保留策略:SHOW RETENTION POLICY ON "<database_name>"
例如:SHOW RETENTION POLICIES ON "mydb"
源碼:見文末
2. 常用指令
創(chuàng)建數(shù)據(jù)庫:create database myTestDB
刪除數(shù)據(jù)庫:drop database myTestDB
查看所有的表:show measurements
創(chuàng)建表:influxDB中沒有顯式的新建表的語句,寫入數(shù)據(jù)即建立新表,詳見寫時序數(shù)據(jù)庫
刪除表:drop measurement tableTset
查看某個表的數(shù)據(jù):select * from tableTset
查看所有的tag:show tag keys from tableTset
查看所有的field:show field keys from tableTset
條件查詢:select * from tableTset WHERE model = 'IOTRouter'
時間查詢:select * from tableTset WHERE time > now() - 5m
源碼/原文:https://iotrouter.yuque.com/zn3vdn/eg8000/latkczb4gvgg154y