DatabaseRetention PolicyShardShard groupsShard (group) durationMeasurementTimestampField (set)Tag (set)SeriesPoint參考
Database
對應 SQL 中的 database。不同的 database 資料存放在不同目錄。
Retention Policy
用來設定數據保留策略,過期的數據會被刪除。包含以下三個元素-
- duration:用來描述 influxDB 會保存數據多久。
- replication factor:數據存在
cluster裡面的副本數量,開源版本只會是 1。
- shard (group) duration:表示一個
shard (group)跨越了多少的時間。
範例:
Shard

類似於 MySQL 的
partition 在同一個實例上將一張 table 切為多個實體檔案。包含實際的數據,在 disk 上儲存為
TSM 文件,每一個 shard 都包含了一個彼此不重複的時間段。Shard groups
類似於
Mongo 的 sharding,將同個 table 的資料分散到不同的實例上。shard 的 logical containers,每個 shard 都只會屬於其中一個 shard group,InfluxDB 將數據進行 hash 寫入到不同的 server,每個 server 同一個時間區間的所有shard 就屬於同一個 shard group。此為付費版本的 cluster 功能,開源的單實例版本無此功能。
Shard (group) duration
表示一個
shard (group) 跨越了多少的時間,可以在 retention policy 中設定。Measurement
對應 SQL 中的 table,但不需要預先建立,insert 資料時自動建立。
Timestamp
數據關聯的時間點,在 InfluxDB 裡的所有時間都是 UTC。
Field (set)
儲存 metadata 和 真實數據。作為查詢條件不會被索引,只能全表掃描。
- field key:和 MySQL 中沒有建立 index 的 column 概念相似。
- field value:field key 所對應的值。
Tag (set)
選用,用於儲存常用的 metadata。作為查詢條件會被索引,查詢效率高。
- Tag key:和 MySQL 中有建立 index 的 column 概念相似。
- Tag value:tag key 所對應的值。
Series
擁有相同
measurement 和 tag set 的結果集。- series key: 由
measurement、tag set和field key定義。
Point
對應 MySQL 中一個完整的 Row,由
measurement、 tag set、 field set 和 timestamp組成。在同一個
series 底下時,同一個 timestamp 只會有一個 point ,因此 series + timestamp 可以視為 MySQL 的 Primary key。若在同一個
series + timestamp INSERT 資料,field 會合併,範例如下:series 為 cpu,host=A,因此在 cpu 裡面 host = A 且 time=1605592932144992788 只會有一筆紀錄。
新增 series 相同,但 field key 不同的資料,會發現資料合併。
新增 series 相同,且 field key 相同的資料,則會發現資料被覆蓋。