influxdb 中得 fields 與 tag 區別總結

2023-07-05 06:00:56

本位為博主原創,轉載請註明出處:

1.Field與Tag說明

  在 InfluxDB 表結構中,field 和 tag 是用於儲存資料的兩種不同型別。

  1. Field(欄位):

    • Field 用於儲存實際的數值資料,例如溫度、溼度等測量值。

    • Field 是可變的,可以隨時間的推移而改變其值。

    • Field 的值可以進行聚合計算,例如求平均值或總和等。

    • Field 不適合用於過濾和索引資料,因為它沒有後設資料資訊。

  2. Tag(標籤):

    • Tag 用於儲存後設資料資訊和標識資料的鍵值對,例如感測器名稱、地理位置等。

    • Tag 是不可變的,一旦設定就不能更改。

    • Tag 的值不能進行聚合計算,只能用於過濾和分組查詢。

    • Tag 是 InfluxDB 中的主要索引機制之一,可以提高查詢效能和資料過濾效率。

2.查詢場景區別:

2.1Field 的使用場景:

  • 儲存實際的測量值,例如感測器收集到的溫度、溼度等資料。

  • 對數值進行聚合計算,例如計算平均值、總和、最大值等。

  • 在時間序列資料分析中,Field 可以表示監測指標的具體數值,支援統計和彙總操作。

  範例 SQL 查詢語句:

SELECT temp FROM dev_temp_monitor WHERE time > now() - 1m

  在上面的查詢中,temp 是一個 Field,用於獲取感測器資料表中的溫度值。

                                      

 

2.2 Tag 的使用場景:

  • 儲存後設資料資訊,例如裝置名稱、感測器型別等。

  • 在查詢中用作過濾條件和分組依據,以進行更精確和詳細的資料查詢。

  • 支援按照標籤進行資料聚合和分組查詢,以便進行統計和分析。

  範例 SQL 查詢語句:

  SELECT mean(temp ) FROM dev_temp_monitor WHERE time > now() - 10m GROUP BY host

  在上述查詢中,host 是 Tags,用於過濾和分組感測器資料表中最近十分鐘的不同感測器的平均溫度值。

                           

   Field 更適合儲存實際測量值,並支援聚合計算,而 Tag 則用於儲存後設資料資訊和進行資料過濾、分組查詢。通過合理地使用 Field 和 Tag,可以更好地組織和查詢 InfluxDB 中的時序資料。