InfluxDB
以處理具有時間戳記的大數據資料、難以計數的資料來源為目的,所打造的時間序列資料庫。
在使用 InfluxDB 存取資料或查詢資料之前,讓我們先來了解資料在 InfluxDB
儲存時所包含的元素,這對於將來規劃寫入 InfluxDB
資料的架構和學習查詢語法都有很大的幫助。
這篇文章將簡述以下資料元素在 InfluxDB 中的意思:
- bucket
- measurement
- timestamp
- tag (key, value, set)
- field (key, value, set)
- series
- point
bucket
可簡單的把他解釋為關聯式資料庫的 database。但同時可透過對 bucket 的設定維護此
bucket 下的資料的所應存續時間。
measurement
欄位名稱顯示為_measurement,可以視為資料庫下的 table 名稱。 measurement
的值都為字串(通常應為對於資料的描述)。
timestamp
InfluxDB
是為時間序列資料打造的資料庫,每一筆資料當然必須包含時間戳記。時間戳記會以奈秒(nanosecond)格式存取,
其顯示的欄位名稱為`_time`,以RFC3339 UTC時間格式顯示。
tag (key, value, set)
tag
非必要元素。他屬於一種索引(index)欄位,可以幫助我們更快查詢到想要的資料。
其中在寫入資料時,每個 tag 都包含 key(欄位名稱)、value (值)。不論是 tag key
或 tag value 都會是字串型態。而每筆資料的所包含的所有 tags 則稱為 tag set。
field (key, value, set)
field 是資料的值,包含 key (名稱)、value(值)。不同於tag的是,field key
為字串且顯示的欄位名稱為 _field ,而該名稱對應的值(field
value)顯示的欄位名稱為 _value 。
series
相同的measurement, tag set, field key 的資料被稱為 series 。而一組measurement,
tag set, field key 可以稱為series key。
point
相同的 series key 下,同一個時間戳的 field value 稱為一個 point 。
以 telegraf 收集伺服器效能的資料為例,下圖為查詢介面中所看到的資料元素說明: